Sunteți pe pagina 1din 44

Android

Sistem, platform, tipuri de


aplicaii
Drd. Ing. Alexandru RADOVICI

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/roRO/events/io/2010/
2

Google Android

Platforma Android
Android
Sistem de operare
Platforma

Tipuri de aplicaii

Activiti
Servicii
Baze de coninut
Intenii
Receptori

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 aplicaii


5

Schema Android

Kernel
Sistemul de operare
Nu se vede
Maina extins
Abstractizare a hardware-ului

Conine driver-ele
Gestionarea
Proceselor
Perifericelor

Audio
Video
GPS
WiFi

Intrare/Ieire
Stiva de reea
7

Kernel - Optimizri
Gestionare de memorie
Far swap
Sistem de inchidere de
aplicaii la nevoie

Gestionarea consumului
WAIT_LOCK

IPC specific
Binder
AIDL
Apeluri sincron ntre procese

Gestiunea consumului de putere

Biblioteci User Space


Biblioteci pentru
programare
Fac legrura ntre kernel
i program
Afiare pe ecran
printf ()
scanf ()

Acces la reea
socket ()

Bionic
Libc pentru Android
10

Biblioteci User Space

SQlite
WebKit
Surfaces
FreeType
Media Framework
OpenGL|ES
SSL

11

Dalvik - Android Runtime


Main virtuala (Java)
Java 1.5 SE
Aproximativ
Lipsesc
AWT / Swing
Imprimare
Alte componente speciale

Optimizat pentru mobile


Spaiu mic de memorie
Colectare de gunaoie rapid

Format de fiiere diferit


.class -> .dex

Compilator JIT
12

Bibliotecile Android
Pentru Dalvik
Nu sunt biblioteciile user
space!

Scrise n Java
Access la funciile
telefonului
Telefonie
Mesaje
Senzori

Servicii
Manager de ferestre
Manager Audio

13

Schema Android

14

Faciliti
API pentru dezvoltarea de
aplicaii
Dalvik

Browser integrat
Grafic
2D optimizat
3D OpenGL ES 1.0

SQLite

Sezori

Aparat foto
GPS / AGPS
Magnetometru
Accelerometru

Platform de dezvoltare
Linie de comand
Eclipse

Baza de date

Support Multimedia
Audio / Video

GSM
Conectivitate
Bluetooth
WiFi
GPRS / EDGE / 3G
15

Posibiliti de programare
Dalvik (Aplicaie)
n Java
Vitez medie
Acces la multe biblioteci

AJAX
n Browser (WebKit)
Lent
Programare JavaScript

Native Development Kit (NDK)

C/C++
Numr limitat de biblioteci
Rapid
Suport JNI
Nerecomandat
Beta

C/C++ (direct pe sistem)


16

Securitatea Aplicaiilor
Implmentat in kernel
Politica din Linux
Sistem de fiiere ext3
Utilizatorii pot scrie doar n
directorul lor

Fiecare aplicaie ruleaz sub alt


utilizator
Determinat de semntura digital!

Grupuri de permisiuni
Verificare subsitemul de reea

Poate scrie n
/data/nume.pachet.aplicaie/
/SDCard/

Funcioneaz pentru orice tip de


apliucaie
Dalvik / AJAX / NDK / C/C++
17

Securitatea Aplicaiilor
Implmentat in bibliotecile Android
Drepturi (Permission)
Declarate de aplicaie n Manifest
Access la funciile telefonului

Reea
Telefon / mesaje
Aparat foto
GPS

Access la componentele altei aplicaii


Drepturi impuse de aplicaia respectiv

Utilizatorul va fi avertizat la instalare


Funcioneaz doar pentru aplicaiile
Dalvik
18

Programe (Dalvik)
Nu exista main()
Formate din componente

Activii
Servicii
Intenii
Baze de coninut
Receptori de evenimente

Componentele pot rula


separat
19

Aplicaie (Dalvik)
Fiier APK
JAR nearhivat
Componente
Fiier .dex

Resurse
Imagini
Fiiere XML

Manifest
Fiier de informaii

Semntura digitala
Pentru dezvoltare
Pentru producie
Autentic
Autosemnat
20

Componentele aplicaiei

21

Task (aplicaie cu interfa grafic)


Ruleaz ntr-un process
n general!
exist excepii

Stiv de activiti
Activitate rdcin
Root activity

Adugarea
Afiare
push

tergerea
Ascundere
pop

Activii din alt aplicaie


22

Task (aplicaie cu interfa grafic)


Ruleaz ntr-un process
n general!
exist excepii

Stiv de activiti
Activitate rdcin
Root activity

Adugarea
Afiare
push

tergerea
Ascundere
pop

Activii din alt aplicaie


23

Activitatea

24

Funcii importante
Clasa Activity

void onCreate ();


void onStart ();
void onRestart ();
void onResume ();
void onPause ();
void onStop ();
void onDestroy ();

Trebuie apelate funciile


i funciile din printe
super.onCreate ();

25

Activitatea
Fereastr
Supravieuiete
procesului
Serializarea
Parial controlat de
programator

Nu este pentru
procesare mult

26

Servicii
Component Android
Special pentru
procesare
Ruleaz n fundal
(background)
Proces
Prioritate mai mic
Mai stabil (n timp)

27

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

Implmentarea unui serviciu


1. Extinderea clasei Service

Implmentarea funciilor
Crearea unor fire de execuie

2. Declararea n manifest
3. Pornirea / oprirea

startService ()
stopService ()

29

Baze de coninut / Receptori


Baze de coninut
Oferire de informaii
Legtur cu SQLite
Bazate pe URL-uri

Receptori
Observatori
Sunt informai despre
evenimente publice
SCREEN_ON
SCREEN_OFF
BATTER_STATUS_CHANGED

30

Dezvoltare
Android SDK
Compilator DEX
Simulator
Programe pentru depanare

Eclipse
Plugin Android

Telefon Android
Preferabil cu drept de root
31

Simulator vs. Telefon Real


Simulator
Real
Booteaz Linux

Diferite versiuni
1.5
1.6
2.1

Se pornete separat!

Telefon real
USB Debugging
Applications/Developent

32

Depanare - DDMS

33

Scheletul unei aplicaii

AndroidManifest.xml
build.xml
default.properties
bin
fiierele compilate

res
drawable
layout
values

assets
resurse

src
fiierele surs
34

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

Resurse Automate n XML


Drawable
Imagini
@drawable/nume
@drawable/icon
@drawable/img1
@drawable/img2

Layout
Containere
@layout/nume
@layout/main
@layout/people
36

Construcia GUI cu XML

Component complex
Cod simplu
Fr cod Java
n codul activitii
this.setContentView (R.layout.nume);

37

Exemplu de fiier GUI XML

38

Exemplu de fiier GUI XML


xmlns:android
Doar componenta rdcin
necesar

android:layout_width
android:layout_height
necesare
Valori

fill_parent
wrap_content
n px
n cm
39

Exemplu de fiier GUI XML


android:id
Utilizarea componentei
n codul Java
@+id/nume
R.id.nume

Exemplu
@+id/button1
R.id.button1

40

Exemplu de fiier GUI XML


XML

Cod Jave

41

Concluzii
Paltforma Android
Sistem de operare Linux
Biblioteci de programare Android

Modaliti de programare
Dalvik Java
AJAX Web
NDK C/C++

Aplicaiile Dalvik sunt compuse din componente

Activiti
Servicii
Intenii
Baze de coninut
Receptori de enimente
Nu exist main()

Simulator real
Task - Aplicaiile cu interfa grafic
Compuse din Activiti
Supravieuiesc procesului
42

Application Inventor

43

ntrebri

44

S-ar putea să vă placă și