Transcript ppt

- Android OS -
Coordonator știintific
Stefan Stancescu
Student:
State Ana-Maria

Ce este Android OS-Arhitectura ,kernel ,librarii

Procese si fire de executie-thread-safe mode


Stocarea datelor la Android OS
Exemplu de aplicatie dezvoltata si instalata pe unelltele de
dezvoltare SDK Android-Accelerometer Play

Evolutie Android OS-variante, dezvoltare software,
comparatie cu un alt OS

Concluzii



Arhitectura, kernel-linux 2.6 si 3.x, librarii
Runtime si aplicatii framework-Dalvik virtual
machine






Arhitectura-stiva de layere, alcatuite din mai multe
componente de program
Layerele sunt:
•Applications layer
• Framework services and libraries layer
•Applications and most framework code executed
in a virtual machine layer
•Native libraries, daemons and services layer
•Kernel-ul Linux, care include drivere pentru
hardware, retea, accesul la de fișierul de sistem și
comunicarea inter-proces.




Runtime si aplicatii framework-Dalvik virtual
machine si biblioteci Core Java.
Bibliotecile Core Java-reprezinta un subset derivat
din implementarea Apache Harmony Java.
Dalvik virtual machine- execută fișiere cu extensia
.dex, provenite din fisiere cu extensia .class.
- permite crearea de instante multiple ale masinii
virtuale simultan,oferind securitate , izolarea
instantei, managementul memoriei si suport
pentru threading.






Aplicatii Framework- gestioneaza funcțiile de bază
ale telefonului, cum ar fi managementul resurselor,
managementul apelurilor de voce.Contine
urmatoarele blocuri:
•Activity
•Content Providers
•Telephony
•LocationManager
•Resource Manager






Executia proceselor-tipuri de procese:
Foreground
Visible
Background
Service
Empty

Realizarea firelor de executie- Threadurile
sunt create in cod folosind standard Java
Threads objects. Android oferă o serie de
clase pentru gestionarea firelor de executie Looper pentru a rula o buclă într-un
thread,Handler –utilizat pentru prelucrarea
mesajelor, și HandlerThread pentru
înființarea unui thread, cu o buclă


Metode pentru thread-safeAndroid oferă un mecanism pentru intercomunicare (IPC), folosind Remote Procedure
Calls (RPC), în care o metodă este apelata de
către o activitate sau o componentă a unei
aplicații, dar executata la distanță (într-un alt
proces), returnand orice rezultat înapoi la
apelant.

Baza de date - API-ul Android contine suport
pentru crearea și utilizarea bazelor de date
SQLite. Fiecare bază de date este asociata
aplicației care o creează.Obiectul
SQLiteDatabase reprezintă o bază de date ce
contine metode pentru a interacționa cu
acesta - de interogări și gestionarea a
datelor. Pentru crearea unei baza de date, se
apeleaza rutina SQLiteDatabase.create () și,
de asemenea, subclasa SQLiteOpenHelper.[9]


Tipuri de fisiere si preferences - Pentru a citi
date dintr-un fișier, se apeleaza
Context.openFileInput () și se trece numele și
pathul fișierului. Returnează un obiect
standard Java FileInputStream.
Pentru a scrie într-un fișier, se apeleaza
Context.openFileOutput () cu numele și
pathul fisierului. Returnează un obiect
FileOutputStream. Apelarea acestor metode
nu funcționeaza decat pentru fișierele locale





Network - Stocarea datelor pe web se poate
face folosind network serverul propriu.
Pentru a face operatiuni de retea se folosesc
urmatoarele clase:
java.net.*
android.net.*
Exemple:

Variante

Variante



Dezvoltare software
SDK-ul Android include un set cuprinzător de
instrumente de dezvoltare :program de
depanare, biblioteci, un emulator de receptor
(bazat pe QEMU), documentație, mostre de
cod, și tutoriale
Include, de asemenea, Java Development Kit,
Apache Ant, și Python 2.2 sau o versiune
ulterioară.Mediul IDE este Eclipse (3.2 sau o
versiune ulterioară);foloseste Android
Development Tools (ADT) Plugin.

public class AccelerometerPlayActivity extends Activity {
private SimulationView mSimulationView;
private SensorManager mSensorManager;
private PowerManager mPowerManager;
private WindowManager mWindowManager;
private Display mDisplay;
private WakeLock mWakeLock;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get an instance of the SensorManager
mSensorManager = (SensorManager) getSystemService(SENSOR_SERVICE);
// Get an instance of the PowerManager
mPowerManager = (PowerManager) getSystemService(POWER_SERVICE);
// Get an instance of the WindowManager
mWindowManager = (WindowManager) getSystemService(WINDOW_SERVICE);
mDisplay = mWindowManager.getDefaultDisplay();
// Create a bright wake lock
mWakeLock = mPowerManager.newWakeLock(PowerManager.SCREEN_BRIGHT_WAKE_LOCK,
getClass()
.getName());

Comparatie cu un alt OS




Este greu de precizat care dintre cele doua sisteme de
operare este mai bun, pentru ca fiecare dintre cele doua
beneficiaza de facilitati pe care celalalt sistem nu le are.
iOS are un sistem foarte bun de aplicatii ,cu pretul lipsei
customizarii insa.Androidul beneficiaza de un sistem de
multitasking mult mai flexibil, dar nu are anumite
peformante pe care iOS le poate atinge.Desi beneficiaza de
flash, se incarca mult mai greu decat iOS.
De aceea , alegerea unuia dintre sisteme depinde atat de
nevoile fiecarui utilizator in parte, cat si de ce performante
ne dorim sa atinga device-ul pe care ruleaza unul din
sisteme.
In testele de benchmark s-a dovedit ca diferentele intre
iOS si Android sunt destul de mici, dar fiecare are anumite
segmente pe care este lider
Va multmesc!