44
Android Sistem, platformă, tipuri de aplicații Drd. Ing. Alexandru RADOVICI

Prezentare generala a platformei Android

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: Prezentare generala a platformei Android

Android

Sistem, platformă, tipuri de aplicații

Drd. Ing. Alexandru RADOVICI

Page 2: Prezentare generala a platformei Android

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/fundamentals.html

4. Google IO, http://code.google.com/intl/ro-RO/events/io/2010/

2

Page 3: Prezentare generala a platformei Android

Google Android

3

Page 4: Prezentare generala a platformei Android

Platforma Android

• Android

– Sistem de operare

– Platforma

• Tipuri de aplicații

– Activități

– Servicii

– Baze de conținut

– Intenții

– Receptori

4

Page 5: Prezentare generala a platformei Android

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

Page 6: Prezentare generala a platformei Android

Schema Android

6

Page 7: Prezentare generala a platformei Android

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

Page 8: Prezentare generala a platformei Android

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

Page 9: Prezentare generala a platformei Android

Gestiunea consumului de putere

9

Page 10: Prezentare generala a platformei Android

Biblioteci User Space

• Biblioteci pentruprogramare– Fac legărura între kernel

și program

– Afișare pe ecran• printf (…)

• scanf (…)

– Acces la rețea• socket (…)

• Bionic– Libc pentru Android

10

Page 11: Prezentare generala a platformei Android

Biblioteci User Space

• SQlite

• WebKit

• Surfaces

• FreeType

• Media Framework

• OpenGL|ES

• SSL

• …

11

Page 12: Prezentare generala a platformei Android

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

Page 13: Prezentare generala a platformei Android

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

Page 14: Prezentare generala a platformei Android

Schema Android

14

Page 15: Prezentare generala a platformei Android

Facilități

• API pentru dezvoltarea de aplicații– Dalvik

• Browser integrat• Grafică

– 2D optimizată– 3D – OpenGL ES 1.0

• SQLite– Baza de date

• Support Multimedia– Audio / Video

• GSM• Conectivitate

– Bluetooth– WiFi– GPRS / EDGE / 3G

• Sezori– Aparat foto– GPS / AGPS– Magnetometru– Accelerometru

• Platformă de dezvoltare– Linie de comandă– Eclipse

15

Page 16: Prezentare generala a platformei Android

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

Page 17: Prezentare generala a platformei Android

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

Page 18: Prezentare generala a platformei Android

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țiileDalvik

18

Page 19: Prezentare generala a platformei Android

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

Page 20: Prezentare generala a platformei Android

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

Page 21: Prezentare generala a platformei Android

Componentele aplicației

21

Page 22: Prezentare generala a platformei Android

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

Page 23: Prezentare generala a platformei Android

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

Page 24: Prezentare generala a platformei Android

Activitatea

24

Page 25: Prezentare generala a platformei Android

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

Page 26: Prezentare generala a platformei Android

Activitatea

• Fereastră

• Supraviețuiește procesului

– Serializarea

– Parțial controlată de programator

• Nu este pentru procesare multă

26

Page 27: Prezentare generala a platformei Android

Servicii

• Componentă Android

• Specială pentru procesare

• Rulează în fundal (background)

• Proces

– Prioritate mai mică

– Mai stabil (în timp)

27

Page 28: Prezentare generala a platformei Android

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

Page 29: Prezentare generala a platformei Android

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

Page 30: Prezentare generala a platformei Android

Baze de conținut / Receptori

• Baze de conținut

– Oferire de informații

– Legătură cu SQLite

– Bazate pe URL-uri

• Receptori

– Observatori

– Sunt informați despre evenimente publice• SCREEN_ON

• SCREEN_OFF

• BATTER_STATUS_CHANGED

30

Page 31: Prezentare generala a platformei Android

Dezvoltare

• Android SDK

– Compilator DEX

– Simulator

– Programe pentru depanare

• Eclipse

– Plugin Android

• Telefon Android

– Preferabil cu drept de root

31

Page 32: Prezentare generala a platformei Android

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

Page 33: Prezentare generala a platformei Android

Depanare - DDMS

33

Page 34: Prezentare generala a platformei Android

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

Page 35: Prezentare generala a platformei Android

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

Page 36: Prezentare generala a platformei Android

Resurse Automate în XML

• Drawable

– Imagini

– @drawable/nume• @drawable/icon

• @drawable/img1

• @drawable/img2

• Layout

– Containere

– @layout/nume• @layout/main

• @layout/people

36

Page 37: Prezentare generala a platformei Android

Construcția GUI cu XML

• Componentă complexă

• Cod simplu

• Fără cod Java

• În codul activității

– this.setContentView (R.layout.nume);

37

Page 38: Prezentare generala a platformei Android

Exemplu de fișier GUI XML

38

Page 39: Prezentare generala a platformei Android

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

Page 40: Prezentare generala a platformei Android

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

Page 41: Prezentare generala a platformei Android

Exemplu de fișier GUI XML

XML Cod Jave

41

Page 42: Prezentare generala a platformei Android

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

Page 43: Prezentare generala a platformei Android

Application Inventor

43

Page 44: Prezentare generala a platformei Android

Întrebări

44