Sei sulla pagina 1di 4

SISTEMA OPERATIVO

ANDROID

CARATTERISTICHE

Compattezza (soprattutto del kernel), portabilit, diversit del prodotto, open source (offre
interfacce (header .c) per consentire l'implementazione di alcune componenti piuttosto che di altre),
affidabilit e connettivit.

Architettura
un sistema operativo a strati, dal pi alto:
Application
Applicazioni utente o di default, scritte in Java. Ogni applicazione ha una propria istanza di
Virtual Machine e corrisponde ad un singolo processo Linux.
Application Framework
Layer utilizzato da tutte le applicazioni (Java) per interfacciarsi con gli strati inferiori (in
C/C++). Offre gestori di alto livello per notifiche, ciclo di vita delle attivit, risorse, servizi
di telefonia ecc..
Librerie native
Librerie in C/C++ usate attraverso l'application framework che forniscono la maggior parte
delle funzionalit di Android quali l'utilizzo di database SQLite, o di gestione dell'interfaccia
grafica.
Runtime
Core libraries
Offrono le funzioni delle core libraries di Java escluse quelle di interfaccia grafica che
android consente di gestire con un proprio framework.
Dalvik Virtual Machine
Macchina virtuale di cui viene eseguita una istanza per ogni applicazione, ha come
obiettivo quello di girare su dispositivi con prestazioni limitate. Esegue applicazioni in
formato .dex ovvero bitecode Java ottimizzato riducendo la ridondanza.
Linux kernel
Basato sulla versione 2.6 del kernel Linux, offre funzioni per la gestione energetica
attraverso i wake locks , la IPC attraverso l'Open binder, l'ottimizzazione della memoria
attraverso meccanismi di terminazione delle applicazioni in caso di memoria insufficiente.

1 di 4
ACTIVITY

Una activity una componente dotata di interfaccia utente.


Se pi activity compongono un'app, tutte saranno trattate come parte del processo principale e non
come thread a parte.
Le activity presenti nel sistema sono gestite attraverso un activity stack e solo l'activity in cima sar
in foreground, se l'utente preme il tasto indietro la successiva activity nello stack verr portata in
foreground.

Activity Lifecyle

Foreground lifetime:
Tempo tra onResume() e onPause(),
al di sopra di tutte le altre.

Visible lifetime:
Tempo tra onStart() e onStop().

Stati in cui l'app pu essere


terminata dal SO:
onPause(), onStop(), onDestroy().

2 di 4
SERVICE

Un servizio una componente senza interfaccia utente ed eseguito in background.


Due tipi di servizio:
Bounded
Legato ad una o pi activity o ad uno o pi servizi attraverso l'oggetto restituito da
bindService(). Quando tutti i componenti a cui legato sono terminati, termina.
Unbounded
Avviato e lasciato eseguire computazione in background, indipendente dal creante e
rimane in esecuzione anche se questo viene distrutto.

Service Lifecyle
L'intero ciclo di vita tra onCreate() e onDestroy()..

3 di 4
ALTRI COMPONENTI

Broadcast receiver
Componente che riceve e risponde ai messaggi inviati in broadcast. Ogni app dichiara tramite il
manifest a quali broadcast interssata. Quando viene generato un broadcast il framework controlla
quali activity hanno un receiver interessato e attiva il corrispondente broadcast riceveiver
passandogli l'internet. I broadcast receiver ricevono e gestiscono l'intent attraverso il metodo
onReceive().

Content provider
Un content provider rende disponibile un insieme specifico di dati di una applicazione disponibile
per le altre applicazioni, serve dunque come meccanismo di scambio di dati tra le applicazioni. Per
interfacciarsi con un content provider viene usato un content resolver.
I content provider organizzano i dati come tabelle e sono localizzabili attraverso un URI. Una query
ad un content provider restituisce un cursor.

INTENT

Meccanismo eseguito per spostarsi tra activity e usato per la comunicazione e lo scambio dati tra
queste.
Un intent composto da Azioni e Dati.
Esistono due tipi di intent:
Espliciti: individuano direttamente il componente target.
Impliciti: non utilizzano un nome per il componente target.

4 di 4

Potrebbero piacerti anche