SL4A - Architettura Android
Lo stack del software Android comprende diversi livelli, ciascuno dei quali manifesta un comportamento ben definito e fornisce servizi specifici al livello superiore. La figura seguente presenta un'ampia architettura di Android con i suoi componenti principali.
Kernel Linux
Android è basato sul codice del kernel Linux modificato per funzionare su sistemi embedded rispetto al sistema Linux tradizionale. I driver hardware per molti dispositivi comuni sono integrati nel kernel, garantendo così la portabilità del dispositivo. Si basa su un modello di autorizzazione basato sull'utente sicuro, che impedisce a un'applicazione di leggere le informazioni di un'altra applicazione o di interferire con la sua esecuzione (ad esempio CPU, memoria, dispositivi ecc.).
L'accesso basato sull'ID di gruppo alle funzionalità di rete e Bluetooth, logger, allarmi, gestione dell'alimentazione, killer della memoria insufficiente, meccanismi Binder IPC sono alcuni miglioramenti noti al kernel.
Librerie e runtime
Questo costituisce il secondo strato dell'architettura. Include una serie di librerie C, C ++ ottimizzate per l'hardware, note anche come livello nativo. Gli esempi includono Media Libraries, SQLite, SSL, Bionic, WebKit ecc.
Il runtime Android comprende due diversi componenti: Dalvik VM e Core Libraries. La Dalvik VM fornisce un ambiente di esecuzione per le applicazioni sulla piattaforma Android. Il set di librerie di base fornisce la maggior parte delle funzionalità disponibili nelle API Java.
Framework dell'applicazione
Questo livello rende disponibili le Librerie come servizi per le applicazioni. Alcuni componenti più importanti all'interno di questo livello includono Location Manager, Resource Manager, Activity Manager e Notification Manager.
Applicazioni
Per impostazione predefinita, Android viene fornito con un ricco set di applicazioni, tra cui il browser, il programma SMS, il calendario, il gestore dei contatti, le mappe ecc. Google Play fornisce alternative a queste applicazioni, se l'utente lo desidera.
Costruzioni
Un'applicazione può interfacciarsi con il sistema con quattro blocchi funzione. Sono i seguenti:
Activities- Le attività rappresentano una singola schermata che l'utente vede o con cui interagisce visivamente. Ad esempio, un'app di posta elettronica potrebbe avere un'attività che mostra un elenco di nuove email, un'altra attività per comporre un'email e un'altra attività per leggere le email.
Services- La maggior parte dell'elaborazione viene eseguita da questi servizi per la tua applicazione. È la logica alla base dell'interfaccia utente. Ad esempio, un servizio potrebbe riprodurre musica in sottofondo mentre l'utente si trova in un'app diversa o potrebbe recuperare i dati sulla rete senza bloccare l'interazione dell'utente con un'attività.
Broadcast Receivers- Un componente che può essere registrato per ascoltare gli eventi di sistema o dell'applicazione e inviare notifiche sugli stessi. Un'istanza per la trasmissione proveniente dal sistema è un 'low battery notification'mentre una trasmissione a livello di applicazione potrebbe essere una'download successful'notifica.
Content Providers- Un fornitore di contenuti gestisce e aiuta a condividere i dati tra più applicazioni. Ad esempio, un fornitore di contenuti può essere utilizzato per condividere i dati dei contatti.
Questi componenti interagiscono tra loro tramite messaggi chiamati Intents.