http://emanueldinardo.com/wp/android-architettura-di-base/ Android – Architettura di base di Emanuel Di Nardo 3/04/2012 Tutti noi abbiamo sentito sicuramente parlare di Android, il sistema operativo mobile che oggigiorno è presente su una vastissima gamma di prodotti partendo da smartphone di fascia bassa/medio/alta fino ad una gamma completa di tablet. Questo sistema è stato sviluppato dall’Open Handset Alliance capitanata da Google, infatti, sentiremo molto più spesso dire che il distributore principale è proprio l’azienda di Mountain View. Voglio effettuare ora una panoramica un po più generale su Android. Concetti di base Android è definibile come un insieme software composto da un sistema operativo, middleware e applicazioni di base. Le applicazioni sono scritte utilizzando il linguaggio di programmazione Java e tutte le risorse del sistema sono utilizzabili dai developer senza restrizioni. L’architettura di Android può essere suddivisa nei seguenti livelli: • Applicazioni; • Framework delle applicazioni; • Librerie base; • Livello esecutivo; • Linux kernel; Ci si può fare un idea di tale suddivisione e di cosa avvenga in ogni livello dalla seguente immagine: Come possiamo notare il livello Applicazioni non rappresenta altro che le applicazioni che andiamo ad utilizzare sui dispositivi. Il Framework delle applicazioni ci fornisce gli strumenti adatti allo sviluppo delle applicazioni. Questo meccanismo rende semplice lo sviluppo e permette ai programmatori di accedere a tutte le risorse hardware del dispositivo ed utilizzarle al meglio. E’ doveroso far notare che gli sviluppatori hanno libero accesso a queste risorse che sono le stesse utilizzate per la creazione delle applicazioni di base del sistema, questo è un concetto molto importante di Android, infatti, uno dei suoi punti di forza è la libertà che viene data di utilizzare le librerie di base del sistema senza essere obbligati ad adattarsi a contesti di sviluppo non sempre chiari e di semplice comprensione. Scendendo ancora nella gerarchia abbiamo le librerie di base, sono scritte in C/C++ e sono accessibili tramite il livello precedente, pronte per essere usate semplicemente da tutti. Il Livello esecutivo permette l’esecuzione delle applicazioni, include una Virtual Machine modificata per permettere di adattarsi ai dispositivi mobili (poche risorse e [relativamente] poca potenza di calcolo), questa VM è chiamata Dalvik Virtual Machine (DVM). L’ultimo livello è il kernel del sistema operativo. Android è basato su kernel linux 2.6 e questo permette di sfruttare tutte le potenzialità offerte da un sistema linux-based: • Gestione della memoria; • Sicurezza; • Gestione dei processi; • Gestione delle connessioni; • Driver di dispositivo; Infine permette di astrarre l’hardware sottostante e metterlo a disposizione dell’intero sistema.