SlideShare ist ein Scribd-Unternehmen logo
1 von 41
Downloaden Sie, um offline zu lesen
Android
       Threaduri, Servicii, AIDL

                      Vlad PETRE

               vlad@vladpetre.com
          http://twitter.com/vladpetre88
        http://facebook.com/vladpetre88
    http://www.linkedin.com/in/vladpetre88


1     Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Intai, cateva informatii preliminare



2           Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Ierarhia de memorii
                  Creste marimea




                        Creste viteza


3    Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Multitasking




4   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Starile proceselor




5   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Schimbarea de context
    • Schimbarea programului curent de pe procesor
      – Salvarea registrilor
      – Salvarea setarilor de memorie




6                 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Fire de executie (Threads)
    • Forma de impartire a programului
      – Mai multe cai de procesare
      – Partajarea memoriei intre acestea
         • Variabilele sunt comune
    • Tipuri de fire de executie
      – User
      – Kernel



7                   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Implementarea in Java
    • Prin extinderea clasei Thread
      – Si suprascrierea metodei run()
    • Prin implementarea interfetei Runnable
      – Si implmentarea metodei run()




8                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Metoda 1: extinderea clasei Thread




9        Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Clasa Thread
     class FirExecutie extends Thread
     {
         // … constructori, functii, etc.
         public void run()
         {
             // setul de instructiuni ce trebuie sa fie
             // executat de firul de executie
         }
     }
10                      Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Utilizarea clasei FirExecutie
     class FirExecutie extends Thread
     {
        // … constructori, functii, etc.
        public void run()
        {
             // setul de instructiuni ce trebuie sa fie
             // executat de firul de executie
        }
     }
     FirExecutie fe = new FirExecutie(…);
     fe.start(); <-nu apelam direct metoda run()!!!


11                           Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Metoda 2: implementarea interfetei Runnable




12            Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Interfata Runnable
     class FirExecutie implements Runnable
     {
         // … constructori, functii, etc.
         public void run()
         {
             // codul firului de executie separat
         }
     }

13                      Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Utilizarea clasei FirExecutie
     class FirExecutie implements Runnable
     {
         // … constructori, functii, etc.
         public void run()
         {
              // codul firului de executie separat
         }
     }

     Thread fir = new Thread(new FirExecutie());
     fir.start(); <-nu apelam direct metoda run()!!!

14                           Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Diferenta intre Runnable si Thread




15           Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Diferenta intre Runnable si Thread
     Runnable                                   Thread
     •Interfata                                 •Clasa
     •Obiectul poate extinde                    •Obiectul trebuie sa extinda
     orice alta clasa                           clasa Thread
     •Doar implmenteaza                         •Mai putin flexibil
     interfata Runnable                         •Cod mai simplu
     •Mai flexibil
     •Cod putin mai complicat


16                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Oprirea unui fir de executie



     Doar cand se termina de executat setul de
           instructiuni din metoda run()




17            Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Revenim la Android



18   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Procesarea în Activități
     • Procesarea in activitati are loc in:
        – Functiile activitatii
            • onCreate(…)
            • onStart(…)
            • …
        – Funcțiile observatorilor
            • onClick(…)
     • Procesare putina!!!
        – Trebuie sa evitam starea de Not Responding
     • Solutia
        – Fire de executie
        – Servicii
        – AsyncTask
19                          Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Servicii
     •   Componenta Android
     •   Speciala pentru procesare
     •   Ruleaza in fundal (background)
     •   Prioritate mai mica
     •   Mai stabil (in timp)
     •   Un serviciu ruleaza in threadul principal (threadul in care
         ruleaza si activitatile) in cadrul procesului aplicatiei sale.
         Componenta Service NU isi creaza propriul sau thread daca
         noi nu explicitam acest lucru.

20                      Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Evenimente




  21         Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Implementarea serviciilor
     • Extinde clasa Service
       – Serviciu simplu
          • void onCreate();
          • int onStartCommand(Intent intent, int flags, int startId);
          • void onDestroy();
       – Folosind AIDL
          • void onBind(Intent intent);
          • void onUnbind();




22                     Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Servicii simple



23   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Implementarea unui serviciu
     1.Extinderea clasei Service
       – Implementarea metodelor
       – Crearea unor fire de execuție
     2.Declararea componentei Service in Manifest
     3.Pornirea/oprirea
       – startService(…)
       – stopService(…)



24                   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Exemplu
     • Afiseaza un numar prim pe secunda
       – Serviciul nu porneste automat
       – Serviciul nu se opreste automat




25                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Numere Prime - Serviciu




26     Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Numere Prime–Thread efectiv




     27                       Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Pornirea serviciului
     • Intent starter = new Intent(context,
                                      ClasaServiciu.class);
     • context.startService(starter);




28                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Oprirea serviciului
     • Doua metode:
       – Intent intent = new Intent(context, ClasaServiciu.class);
         context.stopService(intent);


       – stopSelf();




29                     Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Servicii cu AIDL




30   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
AIDL
     • Android Interface Definition Language
       – RPC pentru Android
     • Conexiune intre activitate si serviciu




31                  Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Remote Procedure Call




     • RPC este un mod de comunicare intre diferite procese, ce permit ca un program sa
     apeleze subrutine ale altui program.

32                         Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
AIDL
     •   Seamana cu Java
     •   Declaratii identice
     •   Tipuri de variabile limitate
     •   Primare (int, long, float, double, char, boolean)
         –   String
         –   List*
         –   Map*
         –   Tipuri special construite

         * Trebuie sa contina doar tipuri pentru AIDL

33                          Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Exemplu: IServiciuFilme.aidl
     package pdm.filme;

     interface IServiciuFilme
     {
         Int numarFilme();
         String titluFilm(intnumar);
         String regizorFilm(intnumar);
     }

34                     Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
AIDL => clasa
     • IServiciuFilme.aidl
       – IServiciuFilme.Stub
          • Clasa abstracta cu functiile din Interfata




35                     Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
ListaFilme - Serviciu




36   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
ListaFilme – serviciul efectiv




      37                         Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Conectare folosind AIDL




38     Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Conectare folosind AIDL




39     Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Bibliografie
     •   http://pdm.ipworkshop.ro
     •   http://download.oracle.com/javase/tutorial/essential/concurrency/
     •   http://developer.android.com/guide/topics/fundamentals/services.html
     •   http://developer.android.com/guide/developing/tools/aidl.html
     •   http://developer.android.com/reference/android/app/Service.html




40                       Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
Întrebări?


41   Scoala de Vara IP Workshop 2011 – Calimanesti Valcea

Weitere ähnliche Inhalte

Mehr von Vlad Petre

SSD pe intelesul tuturor!
SSD pe intelesul tuturor!SSD pe intelesul tuturor!
SSD pe intelesul tuturor!Vlad Petre
 
The 3-D Secure Protocol
The 3-D Secure ProtocolThe 3-D Secure Protocol
The 3-D Secure ProtocolVlad Petre
 
Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Vlad Petre
 
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)Vlad Petre
 
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)Vlad Petre
 
[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)Vlad Petre
 
[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)Vlad Petre
 
[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)Vlad Petre
 
[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)Vlad Petre
 
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareDiploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareVlad Petre
 
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizareDiploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizareVlad Petre
 
Eneco: Energy Economy
Eneco: Energy EconomyEneco: Energy Economy
Eneco: Energy EconomyVlad Petre
 
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLKickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLVlad Petre
 
Critica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingCritica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingVlad Petre
 
Critica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeCritica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeVlad Petre
 
Aplicare Filtre pe Imagini
Aplicare Filtre pe ImaginiAplicare Filtre pe Imagini
Aplicare Filtre pe ImaginiVlad Petre
 
Voicenger - Software Design Document
Voicenger - Software Design DocumentVoicenger - Software Design Document
Voicenger - Software Design DocumentVlad Petre
 
Voicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVoicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVlad Petre
 
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIAOptimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIAVlad Petre
 

Mehr von Vlad Petre (20)

SSD pe intelesul tuturor!
SSD pe intelesul tuturor!SSD pe intelesul tuturor!
SSD pe intelesul tuturor!
 
The 3-D Secure Protocol
The 3-D Secure ProtocolThe 3-D Secure Protocol
The 3-D Secure Protocol
 
Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.Founding a startup. DOs and DON'Ts.
Founding a startup. DOs and DON'Ts.
 
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
[Curs Android] C08 - Intents & Broadcast Receivers (IPW 2011)
 
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)[Curs Android] C06 - DDMS & LogCat (IPW 2011)
[Curs Android] C06 - DDMS & LogCat (IPW 2011)
 
[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)[Curs Android] C05 - Emulator (IPW 2011)
[Curs Android] C05 - Emulator (IPW 2011)
 
[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)[Curs Android] C04 - User Interface (IPW 2011)
[Curs Android] C04 - User Interface (IPW 2011)
 
[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)[Curs Android] C02 - Aplicatii (IPW 2011)
[Curs Android] C02 - Aplicatii (IPW 2011)
 
[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)[Curs Android] C01 - Introducere (IPW 2011)
[Curs Android] C01 - Introducere (IPW 2011)
 
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizareDiploma Project: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Project: Friloc - Retea de socializare bazata pe geolocalizare
 
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizareDiploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare
Diploma Presentation: Friloc - Retea de socializare bazata pe geolocalizare
 
Eneco: Energy Economy
Eneco: Energy EconomyEneco: Energy Economy
Eneco: Energy Economy
 
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQLKickstart Project: Android+Restlet+Hibernate+PostgreSQL
Kickstart Project: Android+Restlet+Hibernate+PostgreSQL
 
Critica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive ComputingCritica asupra lucrarii Proactive Computing
Critica asupra lucrarii Proactive Computing
 
Critica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor VingeCritica asupra Singularitatii lui Vernor Vinge
Critica asupra Singularitatii lui Vernor Vinge
 
Aplicare Filtre pe Imagini
Aplicare Filtre pe ImaginiAplicare Filtre pe Imagini
Aplicare Filtre pe Imagini
 
Voicenger - Software Design Document
Voicenger - Software Design DocumentVoicenger - Software Design Document
Voicenger - Software Design Document
 
Voicenger - System Requirements Specification
Voicenger - System Requirements SpecificationVoicenger - System Requirements Specification
Voicenger - System Requirements Specification
 
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIAOptimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA
Optimizarea metodelor de sortare SIMD pentru GPU-uri NVIDIA
 
Nvidia Tegra
Nvidia TegraNvidia Tegra
Nvidia Tegra
 

[Curs Android] C10 - Threaduri & Servicii (IPW 2011)

  • 1. Android Threaduri, Servicii, AIDL Vlad PETRE vlad@vladpetre.com http://twitter.com/vladpetre88 http://facebook.com/vladpetre88 http://www.linkedin.com/in/vladpetre88 1 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 2. Intai, cateva informatii preliminare 2 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 3. Ierarhia de memorii Creste marimea Creste viteza 3 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 4. Multitasking 4 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 5. Starile proceselor 5 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 6. Schimbarea de context • Schimbarea programului curent de pe procesor – Salvarea registrilor – Salvarea setarilor de memorie 6 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 7. Fire de executie (Threads) • Forma de impartire a programului – Mai multe cai de procesare – Partajarea memoriei intre acestea • Variabilele sunt comune • Tipuri de fire de executie – User – Kernel 7 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 8. Implementarea in Java • Prin extinderea clasei Thread – Si suprascrierea metodei run() • Prin implementarea interfetei Runnable – Si implmentarea metodei run() 8 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 9. Metoda 1: extinderea clasei Thread 9 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 10. Clasa Thread class FirExecutie extends Thread { // … constructori, functii, etc. public void run() { // setul de instructiuni ce trebuie sa fie // executat de firul de executie } } 10 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 11. Utilizarea clasei FirExecutie class FirExecutie extends Thread { // … constructori, functii, etc. public void run() { // setul de instructiuni ce trebuie sa fie // executat de firul de executie } } FirExecutie fe = new FirExecutie(…); fe.start(); <-nu apelam direct metoda run()!!! 11 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 12. Metoda 2: implementarea interfetei Runnable 12 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 13. Interfata Runnable class FirExecutie implements Runnable { // … constructori, functii, etc. public void run() { // codul firului de executie separat } } 13 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 14. Utilizarea clasei FirExecutie class FirExecutie implements Runnable { // … constructori, functii, etc. public void run() { // codul firului de executie separat } } Thread fir = new Thread(new FirExecutie()); fir.start(); <-nu apelam direct metoda run()!!! 14 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 15. Diferenta intre Runnable si Thread 15 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 16. Diferenta intre Runnable si Thread Runnable Thread •Interfata •Clasa •Obiectul poate extinde •Obiectul trebuie sa extinda orice alta clasa clasa Thread •Doar implmenteaza •Mai putin flexibil interfata Runnable •Cod mai simplu •Mai flexibil •Cod putin mai complicat 16 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 17. Oprirea unui fir de executie Doar cand se termina de executat setul de instructiuni din metoda run() 17 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 18. Revenim la Android 18 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 19. Procesarea în Activități • Procesarea in activitati are loc in: – Functiile activitatii • onCreate(…) • onStart(…) • … – Funcțiile observatorilor • onClick(…) • Procesare putina!!! – Trebuie sa evitam starea de Not Responding • Solutia – Fire de executie – Servicii – AsyncTask 19 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 20. Servicii • Componenta Android • Speciala pentru procesare • Ruleaza in fundal (background) • Prioritate mai mica • Mai stabil (in timp) • Un serviciu ruleaza in threadul principal (threadul in care ruleaza si activitatile) in cadrul procesului aplicatiei sale. Componenta Service NU isi creaza propriul sau thread daca noi nu explicitam acest lucru. 20 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 21. Evenimente 21 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 22. Implementarea serviciilor • Extinde clasa Service – Serviciu simplu • void onCreate(); • int onStartCommand(Intent intent, int flags, int startId); • void onDestroy(); – Folosind AIDL • void onBind(Intent intent); • void onUnbind(); 22 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 23. Servicii simple 23 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 24. Implementarea unui serviciu 1.Extinderea clasei Service – Implementarea metodelor – Crearea unor fire de execuție 2.Declararea componentei Service in Manifest 3.Pornirea/oprirea – startService(…) – stopService(…) 24 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 25. Exemplu • Afiseaza un numar prim pe secunda – Serviciul nu porneste automat – Serviciul nu se opreste automat 25 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 26. Numere Prime - Serviciu 26 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 27. Numere Prime–Thread efectiv 27 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 28. Pornirea serviciului • Intent starter = new Intent(context, ClasaServiciu.class); • context.startService(starter); 28 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 29. Oprirea serviciului • Doua metode: – Intent intent = new Intent(context, ClasaServiciu.class); context.stopService(intent); – stopSelf(); 29 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 30. Servicii cu AIDL 30 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 31. AIDL • Android Interface Definition Language – RPC pentru Android • Conexiune intre activitate si serviciu 31 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 32. Remote Procedure Call • RPC este un mod de comunicare intre diferite procese, ce permit ca un program sa apeleze subrutine ale altui program. 32 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 33. AIDL • Seamana cu Java • Declaratii identice • Tipuri de variabile limitate • Primare (int, long, float, double, char, boolean) – String – List* – Map* – Tipuri special construite * Trebuie sa contina doar tipuri pentru AIDL 33 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 34. Exemplu: IServiciuFilme.aidl package pdm.filme; interface IServiciuFilme { Int numarFilme(); String titluFilm(intnumar); String regizorFilm(intnumar); } 34 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 35. AIDL => clasa • IServiciuFilme.aidl – IServiciuFilme.Stub • Clasa abstracta cu functiile din Interfata 35 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 36. ListaFilme - Serviciu 36 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 37. ListaFilme – serviciul efectiv 37 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 38. Conectare folosind AIDL 38 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 39. Conectare folosind AIDL 39 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 40. Bibliografie • http://pdm.ipworkshop.ro • http://download.oracle.com/javase/tutorial/essential/concurrency/ • http://developer.android.com/guide/topics/fundamentals/services.html • http://developer.android.com/guide/developing/tools/aidl.html • http://developer.android.com/reference/android/app/Service.html 40 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea
  • 41. Întrebări? 41 Scoala de Vara IP Workshop 2011 – Calimanesti Valcea