Android - Architettura

Il sistema operativo Android è una pila di componenti software che è divisa approssimativamente in cinque sezioni e quattro livelli principali, come mostrato di seguito nel diagramma dell'architettura.

Kernel Linux

In fondo agli strati c'è Linux - Linux 3.6 con circa 115 patch. Questo fornisce un livello di astrazione tra l'hardware del dispositivo e contiene tutti i driver hardware essenziali come fotocamera, tastiera, display ecc. Inoltre, il kernel gestisce tutte le cose in cui Linux è veramente bravo come il networking e una vasta gamma di driver di dispositivo , che elimina il problema dell'interfacciamento con l'hardware periferico.

Biblioteche

Oltre al kernel Linux c'è una serie di librerie che includono il motore del browser Web open source WebKit, la ben nota libreria libc, il database SQLite che è un utile repository per l'archiviazione e la condivisione dei dati dell'applicazione, le librerie per riprodurre e registrare audio e video, SSL biblioteche responsabili della sicurezza in Internet, ecc.

Librerie Android

Questa categoria comprende quelle librerie basate su Java specifiche per lo sviluppo Android. Esempi di librerie in questa categoria includono le librerie del framework dell'applicazione oltre a quelle che facilitano la creazione dell'interfaccia utente, il disegno grafico e l'accesso al database. Di seguito è riportato un riepilogo di alcune librerie Android chiave di base disponibili per lo sviluppatore Android:

  • android.app - Fornisce l'accesso al modello dell'applicazione ed è la pietra angolare di tutte le applicazioni Android.

  • android.content - Facilita l'accesso ai contenuti, la pubblicazione e la messaggistica tra applicazioni e componenti dell'applicazione.

  • android.database - Utilizzato per accedere ai dati pubblicati dai fornitori di contenuti e include le classi di gestione del database SQLite.

  • android.opengl - Un'interfaccia Java per l'API di rendering della grafica 3D OpenGL ES.

  • android.os - Fornisce alle applicazioni l'accesso ai servizi del sistema operativo standard, inclusi messaggi, servizi di sistema e comunicazione tra processi.

  • android.text - Utilizzato per eseguire il rendering e manipolare il testo sul display di un dispositivo.

  • android.view - Gli elementi costitutivi fondamentali delle interfacce utente dell'applicazione.

  • android.widget - Una ricca raccolta di componenti dell'interfaccia utente predefiniti come pulsanti, etichette, visualizzazioni elenco, gestori di layout, pulsanti di opzione ecc.

  • android.webkit - Un insieme di classi intese a consentire l'inserimento di capacità di navigazione web nelle applicazioni.

Avendo coperto le librerie core basate su Java nel runtime Android, è ora il momento di rivolgere la nostra attenzione alle librerie basate su C / C ++ contenute in questo livello dello stack software Android.

Runtime Android

Questa è la terza sezione dell'architettura e disponibile sul secondo livello dal basso. Questa sezione fornisce un componente chiave chiamatoDalvik Virtual Machine che è una sorta di Java Virtual Machine appositamente progettata e ottimizzata per Android.

La Dalvik VM fa uso di funzionalità di base di Linux come la gestione della memoria e il multi-threading, che è intrinseco nel linguaggio Java. La VM Dalvik consente a ogni applicazione Android di essere eseguita nel proprio processo, con la propria istanza della macchina virtuale Dalvik.

Il runtime Android fornisce anche una serie di librerie di base che consentono agli sviluppatori di applicazioni Android di scrivere applicazioni Android utilizzando il linguaggio di programmazione Java standard.

Framework dell'applicazione

Il livello Application Framework fornisce molti servizi di livello superiore alle applicazioni sotto forma di classi Java. Gli sviluppatori di applicazioni possono utilizzare questi servizi nelle loro applicazioni.

Il framework Android include i seguenti servizi chiave:

  • Activity Manager - Controlla tutti gli aspetti del ciclo di vita dell'applicazione e dello stack di attività.

  • Content Providers - Consente alle applicazioni di pubblicare e condividere dati con altre applicazioni.

  • Resource Manager - Fornisce accesso a risorse non incorporate nel codice come stringhe, impostazioni del colore e layout dell'interfaccia utente.

  • Notifications Manager - Consente alle applicazioni di visualizzare avvisi e notifiche all'utente.

  • View System - Un insieme estensibile di viste utilizzate per creare interfacce utente dell'applicazione.

Applicazioni

Troverai tutte le applicazioni Android nel livello superiore. Scriverai la tua applicazione per essere installata solo su questo livello. Esempi di tali applicazioni sono Rubriche, Browser, Giochi ecc.