Prezentare generala a platformei Android

3,700 views

Published on

Published in: Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,700
On SlideShare
0
From Embeds
0
Number of Embeds
475
Actions
Shares
0
Downloads
61
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Prezentare generala a platformei Android

  1. 1. Android Sistem, platformă, tipuri de aplicații Drd. Ing. Alexandru RADOVICI
  2. 2. Bibliografie 1. Mark MURPHY, Beginning Android 2, Apress, 2010 2. Satya KOMATINENI, Sayed HASHIMI, Pro Android 2, Apress 2010 3. Android Application Fundamentals, http://developer.android.com/guide/topics/f undamentals.html 4. Google IO, http://code.google.com/intl/ro- RO/events/io/2010/ 2
  3. 3. Google Android 3
  4. 4. Platforma Android • Android – Sistem de operare – Platforma • Tipuri de aplicații – Activități – Servicii – Baze de conținut – Intenții – Receptori 4
  5. 5. NU doar un sistem de operare • Radio Firmware – Sistemul de telefonie • GSM/CDMA / UMTS • Linux – Kernel 2.6.36 • Android Cupcake (2.1) – Optimizat pentru ARM • Biblioteci User Space – Bionic – SQLite – WebKit • Platformă pentru aplicații 5
  6. 6. Schema Android 6
  7. 7. Kernel • Sistemul de operare • Nu se vede • Mașina extinsă – Abstractizare a hardware-ului • Conține driver-ele • Gestionarea – Proceselor – Perifericelor • Audio • Video • GPS • WiFi – Intrare/Ieșire – Stiva de rețea 7
  8. 8. Kernel - Optimizări • Gestionare de memorie – Fară swap – Sistem de inchidere de aplicații la nevoie • Gestionarea consumului – WAIT_LOCK • IPC specific – Binder • AIDL • Apeluri sincron între procese 8
  9. 9. Gestiunea consumului de putere 9
  10. 10. Biblioteci User Space • Biblioteci pentru programare – Fac legărura între kernel și program – Afișare pe ecran • printf (…) • scanf (…) – Acces la rețea • socket (…) • Bionic – Libc pentru Android 10
  11. 11. Biblioteci User Space • SQlite • WebKit • Surfaces • FreeType • Media Framework • OpenGL|ES • SSL • … 11
  12. 12. Dalvik - Android Runtime • Mașină virtuala (Java) – Java 1.5 SE • Aproximativ • Lipsesc – AWT / Swing – Imprimare – Alte componente speciale – Optimizată pentru mobile • Spațiu mic de memorie • Colectare de gunaoie rapidă – Format de fișiere diferit • .class -> .dex • Compilator JIT 12
  13. 13. Bibliotecile Android • Pentru Dalvik – Nu sunt biblioteciile user space! • Scrise în Java • Access la funcțiile telefonului – Telefonie – Mesaje – Senzori • Servicii – Manager de ferestre – Manager Audio 13
  14. 14. Schema Android 14
  15. 15. Facilități • API pentru dezvoltarea de • Sezori aplicații – Aparat foto – Dalvik – GPS / AGPS • Browser integrat – Magnetometru • Grafică – Accelerometru – 2D optimizată • Platformă de dezvoltare – 3D – OpenGL ES 1.0 – Linie de comandă • SQLite – Eclipse – Baza de date • Support Multimedia – Audio / Video • GSM • Conectivitate – Bluetooth – WiFi – GPRS / EDGE / 3G 15
  16. 16. Posibilități de programare • Dalvik (Aplicație) – În Java – Viteză medie – Acces la multe biblioteci • AJAX – În Browser (WebKit) – Lent – Programare JavaScript • Native Development Kit (NDK) – C/C++ – Număr limitat de biblioteci – Rapid – Suport JNI – Nerecomandat • Beta • C/C++ (direct pe sistem) 16
  17. 17. Securitatea Aplicațiilor • Implmentată in kernel – Politica din Linux • Sistem de fișiere ext3 • Utilizatorii pot scrie doar în directorul lor – Fiecare aplicație rulează sub alt utilizator • Determinat de semnătura digitală! • Grupuri de permisiuni • Verificare subsitemul de rețea – Poate scrie în • /data/nume.pachet.aplicație/ • /SDCard/ – Funcționează pentru orice tip de apliucație • Dalvik / AJAX / NDK / C/C++ 17
  18. 18. Securitatea Aplicațiilor • Implmentată in bibliotecile Android – Drepturi (Permission) • Declarate de aplicație în Manifest • Access la funcțiile telefonului – Rețea – Telefon / mesaje – Aparat foto – GPS • Access la componentele altei aplicații – Drepturi impuse de aplicația respectivă – Utilizatorul va fi avertizat la instalare – Funcționează doar pentru aplicațiile Dalvik 18
  19. 19. Programe (Dalvik) • Nu exista main() • Formate din componente – Activiăți – Servicii – Intenții – Baze de conținut – Receptori de evenimente • Componentele pot rula separat 19
  20. 20. Aplicație (Dalvik) • Fișier APK – JAR nearhivat • Componente – Fișier .dex • Resurse – Imagini – Fișiere XML • Manifest – Fișier de informații – Semnătura digitala • Pentru dezvoltare • Pentru producție – Autentică – Autosemnată 20
  21. 21. Componentele aplicației 21
  22. 22. Task (aplicație cu interfață grafică) • Rulează într-un process – în general! – există excepții • Stivă de activități – Activitate rădăcină • Root activity – Adăugarea • Afișare • push – Ștergerea • Ascundere • pop – Activiăți din altă aplicație 22
  23. 23. Task (aplicație cu interfață grafică) • Rulează într-un process – în general! – există excepții • Stivă de activități – Activitate rădăcină • Root activity – Adăugarea • Afișare • push – Ștergerea • Ascundere • pop – Activiăți din altă aplicație 23
  24. 24. Activitatea 24
  25. 25. Funcții importante • Clasa Activity – void onCreate (…); – void onStart (…); – void onRestart (…); – void onResume (…); – void onPause (…); – void onStop (…); – void onDestroy (…); • Trebuie apelate funcțiile și funcțiile din părinte – super.onCreate (…); –… 25
  26. 26. Activitatea • Fereastră • Supraviețuiește procesului – Serializarea – Parțial controlată de programator • Nu este pentru procesare multă 26
  27. 27. Servicii • Componentă Android • Specială pentru procesare • Rulează în fundal (background) • Proces – Prioritate mai mică – Mai stabil (în timp) 27
  28. 28. Implementarea serviciilor • Extinde clasa Service – Serviciu simplu • void onCreate (); • void onStart (Intent intent, int startID); • void onDestroy (); – Folosind AIDL • void onBind (Intent intent); • void onUnbind(); 28
  29. 29. Implmentarea unui serviciu 1. Extinderea clasei Service – Implmentarea funcțiilor – Crearea unor fire de execuție 2. Declararea în manifest 3. Pornirea / oprirea – startService (…) – stopService (…) 29
  30. 30. Baze de conținut / Receptori • Baze de conținut • Receptori – Oferire de informații – Observatori – Legătură cu SQLite – Sunt informați despre – Bazate pe URL-uri evenimente publice • SCREEN_ON • SCREEN_OFF • BATTER_STATUS_CHANGED 30
  31. 31. Dezvoltare • Android SDK – Compilator DEX – Simulator – Programe pentru depanare • Eclipse – Plugin Android • Telefon Android – Preferabil cu drept de root 31
  32. 32. Simulator vs. Telefon Real • Simulator – Real • Bootează Linux – Diferite versiuni • 1.5 • 1.6 • 2.1 – Se pornește separat! • Telefon real – USB Debugging • Applications/Developent 32
  33. 33. Depanare - DDMS 33
  34. 34. Scheletul unei aplicații • AndroidManifest.xml • build.xml • default.properties • bin – fișierele compilate • res – drawable – layout – values • assets – resurse • src – fișierele sursă 34
  35. 35. Resurse Automate în cod Java • Drawable – Imagini – R.drawable.nume • R.drawable.icon • R.drawable.img1 • R.drawable.img2 • Layout – Containere – R.layout.nume • R.layout.main • R.layout.people 35
  36. 36. Resurse Automate în XML • Drawable – Imagini – @drawable/nume • @drawable/icon • @drawable/img1 • @drawable/img2 • Layout – Containere – @layout/nume • @layout/main • @layout/people 36
  37. 37. Construcția GUI cu XML • Componentă complexă • Cod simplu • Fără cod Java • În codul activității – this.setContentView (R.layout.nume); 37
  38. 38. Exemplu de fișier GUI XML 38
  39. 39. Exemplu de fișier GUI XML • xmlns:android – Doar componenta rădăcină – necesar • android:layout_width • android:layout_height – necesare – Valori • fill_parent • wrap_content • n px • n cm 39
  40. 40. Exemplu de fișier GUI XML • android:id – Utilizarea componentei în codul Java – @+id/nume • R.id.nume – Exemplu • @+id/button1 – R.id.button1 40
  41. 41. Exemplu de fișier GUI XML XML Cod Jave 41
  42. 42. Concluzii • Paltforma Android – Sistem de operare Linux – Biblioteci de programare Android • Modalități de programare – Dalvik – Java – AJAX – Web – NDK – C/C++ • Aplicațiile Dalvik sunt compuse din componente – Activități – Servicii – Intenții – Baze de conșinut – Receptori de enimente – Nu există main() • Simulator real • Task - Aplicațiile cu interfață grafică – Compuse din Activități • Supraviețuiesc procesului 42
  43. 43. Application Inventor 43
  44. 44. Întrebări 44

×