Android: scopriamo cosa nasconde il robottino sotto la scocca metallica

3 Giu

Android è ormai il sistema operativo mobile più diffuso al mondo, vale quindi la pena analizzarlo e scoprirne meglio l’architettura.

(da gizmodo.it)

(da gizmodo.it)

 

Prima di tutto, cos’è Android? Inizialmente era un sistema operativo per soli telefoni cellulari; ora viene usato anche per tablet, Android TV (breve descrizione su lffl.org), moltissimi tipi di dispositivi di riproduzione multimediale e addirittura esiste una versione del robottino per computer (qui il link ad html.it per la guida all’installazione in Multiboot, di cui ho già parlato in un precedente articolo). Comprata e controllata da Google, Android garantisce un OS open-source e una piattaforma gratuita per confezionare applicazioni (SDK, developer.android.com). 

(logo sdk da developer.android.com)

(logo SDK da developer.android.com)

 

Android è basato su kernel Linux, appositamente riadattato alla diversa architettura hardware degli smartphone e tablet. Sono infatti stati implementati alcuni driver aggiuntivi: Binder, un meccanismo che mette in comunicazione i processi tra loro, Ashmem, memoria condivisa ottimizzata per piccole memorie, Viking killer, ossia un low memory killer, che “uccide” le applicazioni che consumano più risorse al fine di preservare quest’ultime (in un OS desktop ciò non sarebbe minimamente attuabile, perché è più importante portare a termine i processi), il Power Management, che gestisce appunto l’energia residua attraverso il wakelock, il cambiamento più invasivo al kernel Linux, che consiste nell’impostare di default lo stato sleep e di “svegliare” il dispositivo quando necessario con specifici comandi.

 

(Architettura Android, da elinux.org)

(Architettura Android, da elinux.org)

Un gradino sopra il Kernel ci sono le librerie. Prima di tutto la Bionic libc, più piccola e veloce rispetto alla libreria di GNU in linguaggio c perché ottimizzata per dispositivi mobili; poi le librerie di Utility come Webkit, Media Framework e SQLite, quelle di astrazione Hardware come Graphics, Camera, Bluetooth, GPS, Radio, Wi-Fi etc. ed infine i server nativi, come ad esempio Surface Manager e Audio Manager.

libraries

Allo stesso livello abbiamo l’Android Runtime, che viene usato quando un’applicazione è in esecuzione. Attraverso files convertiti nel formato .dex la Dalvik Virtual Machine gestisce le applicazioni in maniera performante. 

 L‘application Framework fornisce invece alcuni servizi alle applicazioni, come ad esempio la gestione di telefonate, di risorse, della posizione, delle notifiche e così via. Il tutto avviene sempre attraverso oggetti Java che collegano le applicazioni Android al Native layer.

application framework

 

Infine abbiamo le applicazioni che possono essere integrate nel dispositivo e quindi installate dalla casa produttrice, oppure installate attraverso il Google Play Store o con l’utilizzo di memorie esterne come schede SD o ancora con l’Android Debug Bridge (senza che Google sappia cosa avete installato! Qui una guida su androidgeek.it).

adb-275x190

(immagine da androidgeek.it)

Questa è solo un’introduzione per orientarsi nel sistema operativo più affascinante del momento, ora esploratelo in lungo e largo e condividete le vostre scoperte!

Federico Fallace

Annunci

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...

%d blogger hanno fatto clic su Mi Piace per questo: