Prezentare generala a platformei Android
Upcoming SlideShare
Loading in...5
×
 

Prezentare generala a platformei Android

on

  • 3,214 views

 

Statistics

Views

Total Views
3,214
Views on SlideShare
2,766
Embed Views
448

Actions

Likes
0
Downloads
35
Comments
0

2 Embeds 448

http://www.androider.ro 447
http://webcache.googleusercontent.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Prezentare generala a platformei Android Presentation Transcript

  • 1. Android Sistem, platformă, tipuri de aplicații Drd. Ing. Alexandru RADOVICI
  • 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. Google Android 3
  • 4. Platforma Android • Android – Sistem de operare – Platforma • Tipuri de aplicații – Activități – Servicii – Baze de conținut – Intenții – Receptori 4
  • 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. Schema Android 6
  • 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. 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. Gestiunea consumului de putere 9
  • 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. Biblioteci User Space • SQlite • WebKit • Surfaces • FreeType • Media Framework • OpenGL|ES • SSL • … 11
  • 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. 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. Schema Android 14
  • 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. 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. 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. 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. 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. 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. Componentele aplicației 21
  • 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. 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. Activitatea 24
  • 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. Activitatea • Fereastră • Supraviețuiește procesului – Serializarea – Parțial controlată de programator • Nu este pentru procesare multă 26
  • 27. Servicii • Componentă Android • Specială pentru procesare • Rulează în fundal (background) • Proces – Prioritate mai mică – Mai stabil (în timp) 27
  • 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. 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. 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. Dezvoltare • Android SDK – Compilator DEX – Simulator – Programe pentru depanare • Eclipse – Plugin Android • Telefon Android – Preferabil cu drept de root 31
  • 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. Depanare - DDMS 33
  • 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. 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. Resurse Automate în XML • Drawable – Imagini – @drawable/nume • @drawable/icon • @drawable/img1 • @drawable/img2 • Layout – Containere – @layout/nume • @layout/main • @layout/people 36
  • 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. Exemplu de fișier GUI XML 38
  • 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. 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. Exemplu de fișier GUI XML XML Cod Jave 41
  • 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. Application Inventor 43
  • 44. Întrebări 44