Android
Sistem, platformă, tipuri de
aplicații
Drd. Ing. Alexandru RADOVICI
Bibliografie
1. Mark MURPHY, Beginning Android 2, Apress,
2010
2. Satya KOMATINENI, Sayed HASHIMI, Pro
Android 2, A...
Google Android
3
Platforma Android
• Android
– Sistem de operare
– Platforma
• Tipuri de aplicații
– Activități
– Se...
NU doar un sistem de operare
• Radio Firmware
– Sistemul de telefonie
• GSM/CDMA / UMTS
• Linux
– Kernel...
Schema Android
6
Kernel
• Sistemul de operare
• Nu se vede
• Mașina extinsă
– Abstractizare a hardware-ului
• Conține driver-ele
•...
Kernel - Optimizări
• Gestionare de memorie
– Fară swap
– Sistem de inchidere de
aplicații la nevoie
• Ge...
Gestiunea consumului de putere
9
Biblioteci User Space
• Biblioteci pentru
programare
– Fac legărura între kernel
și program
– Afișare p...
Biblioteci User Space
• SQlite
• WebKit
• Surfaces
• FreeType
• Media Framework
• OpenGL|ES
• SSL
•...
Dalvik - Android Runtime
• Mașină virtuala (Java)
– Java 1.5 SE
• Aproximativ
• Lipsesc
– A...
Bibliotecile Android
• Pentru Dalvik
– Nu sunt biblioteciile user
space!
• Scrise în Java
• Access la funcți...
Schema Android
14
Facilități
• API pentru dezvoltarea de • Sezori
aplicații – Aparat foto
– Dalvik ...
Posibilități de programare
• Dalvik (Aplicație)
– În Java
– Viteză medie
– Acces la multe biblioteci
• AJ...
Securitatea Aplicațiilor
• Implmentată in kernel
– Politica din Linux
• Sistem de fișiere ext3
• Util...
Securitatea Aplicațiilor
• Implmentată in bibliotecile Android
– Drepturi (Permission)
• Declarate de aplicaț...
Programe (Dalvik)
• Nu exista main()
• Formate din componente
– Activiăți
– Servicii
– Intenții
– B...
Aplicație (Dalvik)
• Fișier APK
– JAR nearhivat
• Componente
– Fișier .dex
• Resurse
...
Componentele aplicației
21
Task (aplicație cu interfață grafică)
• Rulează într-un process
– în general!
– există excepții
• Stivă de activ...
Task (aplicație cu interfață grafică)
• Rulează într-un process
– în general!
– există excepții
• Stivă de activ...
Activitatea
24
Funcții importante
• Clasa Activity
– void onCreate (…);
– void onStart (…);
– void onRestart (…);
...
Activitatea
• Fereastră
• Supraviețuiește
procesului
– Serializarea
– Parțial controlată de
programato...
Servicii
• Componentă Android
• Specială pentru
procesare
• Rulează în fundal
(background)
• Proces
– Prior...
Implementarea serviciilor
• Extinde clasa Service
– Serviciu simplu
• void onCreate ();
• void onStart (In...
Implmentarea unui serviciu
1. Extinderea clasei Service
– Implmentarea funcțiilor
– Crearea unor fire de execu...
Baze de conținut / Receptori
• Baze de conținut • Receptori
– Oferire de informații – Observatori
– L...
Dezvoltare
• Android SDK
– Compilator DEX
– Simulator
– Programe pentru depanare
• Eclipse
– Plugin Android
• Tel...
Simulator vs. Telefon Real
• Simulator
– Real
• Bootează Linux
– Diferite versiuni
• 1.5
• ...
Depanare - DDMS
33
Scheletul unei aplicații
• AndroidManifest.xml
• build.xml
• default.properties
• bin
– fișierele compil...
Resurse Automate în cod Java
• Drawable
– Imagini
– R.drawable.nume
• R.drawable.icon
• R.drawable.img...
Resurse Automate în XML
• Drawable
– Imagini
– @drawable/nume
• @drawable/icon
• @drawable/img1
...
Construcția GUI cu XML
• Componentă complexă
• Cod simplu
• Fără cod Java
• În codul activității
– this.s...
Exemplu de fișier GUI XML
38
Exemplu de fișier GUI XML
• xmlns:android
– Doar componenta rădăcină
– necesar
• android:layout_width
• androi...
Exemplu de fișier GUI XML
• android:id
– Utilizarea componentei
în codul Java
– @+id/nume
• R.id.nu...
Exemplu de fișier GUI XML
XML Cod Jave
41
Concluzii
• Paltforma Android
– Sistem de operare Linux
– Biblioteci de programare Android
• Modalități de program...
Application Inventor
43
Întrebări
44
of 44

Prezentare generala a platformei Android

Published on: Mar 4, 2016
Published in: Education      
Source: www.slideshare.net


Transcripts - Prezentare generala a platformei Android

  • 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