Run Time
Dalvik
La Dalvik è una Virtual Machine sviluppata da Dan Bornstein (sviluppatore Google), per i dispositivi mobile. Questa Virtual Machine è una VM Registered-based, cioè il codice generato è orientato all'uso dei registri. Il bytecode utilizzato non è quello java ma è un file .dex generato dai files .class e dai .jar ottimizzati eliminando parti ripetute.
Il bytecode .dex generato dalla compilazione ottimizza l'uso della memoria e della batteria dei device. Inoltre le ultime versioni della Dalvik implementano un Just In Time compiler, che traduce il codice Java in codice nativo C o C++ in modo da rendere più veloce l'esecuzione.
Il nome Dalvik fu scelto da Bornstein perchè i suoi parenti erano di Dalvik, Islanda.
Application Framework
Tutte le librerie presenti nel layer Linux Kernel a nella sezione Run Time possono essere usate da componenti di livello successivo detti Application Framework. Si tratta di un insieme di API e componenti per creare le nostre applicazione Android. Tutte le Application Framework possono essere estese, modificate o sostituite, da qui il motto “All applications are equals”.
Analizziamo alcune di queste API
- Activity Manager: In Android assume fondamentale importanza il concetto di Activity. Un'activity è un'entità astratta che possiamo associare a una schermata, uno strumento per interagire con il sitema. Compito dell'Activity Manager e di gestire il life cylce di ciascuna activity. Questo componente organizzerà le varie activity in uno stack, in modo da permettere la navigazione agli utenti.
- Content Provider: l Content Provider hanno la responsabilità di gestire la condivisione di informazioni tra le varie applicazioni.
- Resource Manager: gestisce un insieme di file, quali immagini, file di configurazione, file di definizione del layout e così via tramite API di semplice utilizzo. Si tratta di un componente che ottimizza le risorse. All'interno di un device mobile, anche per le risorse esiste un processo di trasformazione in contenuti binari in modo da ottimizzare il loro utilizzo (parsing).
- Location Manager: Le applicazioni che gestiscono la localizzazione si chiamano Location Based Application e possono essere realizzare utilizzando le API messe a disposizione dal Location Manager.
- Notification Manager: informa l'utente di un particolare evento lanciato da un activity. Un’applicazione può notificare questo evento tramite una vibrazione, facendo lampeggiare i led, visualizzando un’icona o altro.
Applications e Widgets
L'ultimo layer dell'architettura Android riguarda le applicazione e i widgets. Questi sono programmi che interagiscono con gli utenti al fine di creare l'ambiente Android.
- Applications: sono tutti i programmi presenti nello smartphone o acquistabili dal Google Play
- Widgest: sono programmi che occupano solo un riquadro dello schermo e la maggior parte delle volte fungono da notifica di un Activity principale.