1 / 7

Android Interface Definition Language

Irina Presa irina.presa@gmail.com. Android Interface Definition Language. De ce AIDL ?. Android nu ofera memorie partajata pentru comunicarea intre procese Procesele trebuie sa-si descompuna obiectele in primitive ce vor fi transferate de sistemul de operare

birch
Download Presentation

Android Interface Definition Language

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Irina Presa irina.presa@gmail.com Android Interface Definition Language

  2. De ce AIDL ? Android nu ofera memorie partajata pentru comunicarea intre procese Procesele trebuie sa-si descompuna obiectele in primitive ce vor fi transferate de sistemul de operare Daca implementam “manual” aceste transferuri => overhead prea mare :(

  3. AIDL Limbaj IDL ce genereaza cod prentru comunicarea intre doua procese Android => IPC :) Ex : - daca avem un proces ce doreste sa apeleze metode pe obiecte din alt proces, vom folosi AIDL pentru a genera codul ce transmite a parametrii Este un mecanism IPC interface-based, similar cu Corba sau COM Foloseste o clasa Proxy pentru a pasa valori intre client si implementare

  4. Implementarea unui IPC folosind AIDL 1. Cream fisier .aidl - defineste interfata (metodele si campurile disponibile clientului) 2. Adaugam fisierul in makefile (in Eclipse cu ADT Plugin) 3. Implementam metodele interfetei (pornind de la acestea, compilatorul AIDL va crea o interfata in Java ce contine o clasa abstracta numita Stub) => cream o clasa ce extinde MyInterface.Stub si implementam metodele declarate in fisierul .aidl 4. Expunem interfata catre clienti

  5. Fisier .aidl • Are o interfata simpla ce suporta urmatoarele tipuri : • Primitive ale limbajului Java (int, boolean, etc) • String • List – elementele trebuie sa fie unul din tipurile din aceasta lista • Map – aceasi restrictie legata de tipul elementelor • CharSequence • Alte interfere generate de AIDL, pasate prin referinta • Clase personalizabile ce implementeaza Parcelable si sunt pasate prin valoare

  6. AIDL Publicarea interfetei extindem Service + implementam Service.onBind(Intent) = o instanta clasei ce implementeaza interfata Interfata Parcelable pentru a trimite o clasa altui proces prin aid Apel metode IPC folosim ServiceConnection pentru a ne conecta la interfata, iar apoi comunicare prin metode/callback-uri,etc (ex: model client-server)

  7. Resurse http://developer.android.com/guide/developing/tools/aidl.html

More Related