Cos'è Android
Android è una piattaforma per dispositivi mobili che include sistema operativo, middleware e applicazioni di base. Questa prima panoramica sull'Android SDK, il kit per lo sviluppo del software, offre gli strumenti e le API necessarie per iniziare a sviluppare applicazioni per la piattaforma utilizzando il linguaggio Java.
Caratteristiche
- Framework per applicazioni che consente il riutilizzo e la sostituzione delle componenti
- Dalvik, la virtual machine ottimizzata per dispositivi mobili
- Browser integrato basato sul motore del browser open source WebKit.
- Grafiche ottimizzate alimentate da una library grafica 2D personalizzata; grafiche 3D basate sulla specificazione OpenGL ES 1.0 (hardware acceleration opzionale)
- SQLite per l'immagazzinamento dei dati
- Media support per comuni formati audio, video, e immagini (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
- Telefonia GSM (dipendente dall'hardware)
- Bluetooth, EDGE, 3G, e WiFi (dipendente dall'hardware)
- Fotocamera, GPS, bussola, ed accelerometro (dipendente dall'hardware)
- Ricco ambiente di sviluppo, che include un emulatore, strumenti per debugging, profiling della memoria e delle prestazioni e un plugin per l'IDE Eclipse.
L'architettura di Android
Il diagramma seguente mostra le componenti principali del sistema operativo di Android. Ogni sezione è descritta più dettagliatamente di seguito.

Applicazioni
Android funzionerà con un set di applicazioni di base, che comprende un email client, un programma SMS, calendario, mappe, browser, contatti e altro. Tutte le applicazioni sono scritte in linguaggio Java.
Framework per applicazioni
Gli sviluppatori hanno pieno accesso alle stesse framework API usate dalle applicazioni di base. L'architettura delle applicazioni è progettata per semplificare il riutilizzo dei componenti; ogni applicazione può rendere pubbliche le sue capacità e tutte le altre applicazioni possono quindi farne uso (sono soggette ai limiti imposti dalla sicurezza del framework). Questo stesso meccanismo consente all'utente di sostituire i componenti standard con versioni personalizzate.
Alla base di ogni applicazione si trova un set di servizi e sistemi, tra cui:
- Un gruppo ricco ed estensibile di Viste che possono essere usate per costruire un'applicazione; contiene liste, caselle di testo, pulsanti, e addirittura un browser web integrato
- Dei Content Providers che permettono alle applicazioni di accedere a dati da altre applicazioni (come i Contatti), o di condividere i propri dati
- Un Manager delle risorse, che offre l'accesso a risorse non-code come strings localizzate, grafica, files di layout
- Un Manager delle notifiche, che permette a tutte le applicazioni di mostrare avvisi personalizzati nella status bar
- Un Manager delle attività, che gestisce il ciclo di vita delle applicazioni e fornisce un backstack di navigazione comune.
Per maggiori informazioni e spiegazioni sulle applicazioni, guarda anche Scrivere un'applicazione Android.
Librerie
Android comprende un set di librerie C/C++ usate da varie componenti del sistema di Android. Questi elementi sono presentati allo sviluppatore attraverso il framework per applicazioni di Android. Queste sono alcune delle librerie principali:
- System C library - un'implementazione BSD-derived della libreria standard C system (libc), disegnata per dispositivi basati su Linux
- Media Libraries - basate sull'OpenCORE di PacketVideo; le librerie supportano la riproduzione e la registrazione di molti popolari formati audio e video, compresi file di immagini, inclusi MPEG4, H.264, MP3, AAC, AMR, JPG, e PNG
- Surface Manager - gestisce l'accesso al display subsystem e compone layer grafici 2D e 3D da applicazioni multiple
- LibWebCore - un motore di browser moderno che fa funzionare sia il browser Android sia la visualizzazione web implementata
- SGL - il motore grafico 2D sottostante
- 3D libraries - un'implementazione basata su APIs OpenGL ES 1.0; le librerie usano sia accelerazione hardware 3D (quando disponibile) sia quella inclusa, un rasterizer software 3D altamente ottimizzato
- FreeType - rendering di bitmap e vector font
- SQLite - un motore di database relazionale potente e leggero disponibile per tutte le applicazioni
Runtime
Android comprende un set di librerie centrali che forniscono la maggior parte delle funzionalità disponibili nelle librerie di base del linguaggio di programmazione Java.
Ogni applicazione di Android gira col suo proprio processo, con la sua propria istanza sulla virtual machine Dalvik. Dalvik è stata scritta in modo che un dispositivo possa eseguire VMs multiple in modo efficiente. La VM Dalvik esegue i files nel formato Dalvik Executable (.dex), che è ottimizzato per utilizzare un minimo spazio di memoria. La Vm è register-based, e funziona con classi compilate da un compilatore Java, trasformate in un formato .dex dallo strumento interno "dx".
La VM Dalvik si appoggia sul kernel Linux per funzioni di base come la gestione di threading e situazioni di livelli minimi di memoria.
Kernel Linux
Android si appoggia sulla versione 2.6 di Linux per servizi del sistema centrale come sicurezza, gestione della memoria, esecuzione, network stack, e driver model. Il kernel funziona anche da abstraction layer tra l'hardware e il resto del software.
Cos'è Android?
È nato come progetto open source, quindi in questa documentazione che abbiamo tradotto si parla principalmente del kit messo a disposizione per gli sviluppatori che vogliono contribuire al progetto.
Se hai bisogno di spiegare in modo molto semplice cos'è Android, forse possono essere utili dei video, ad esempio quello che trovi nella terza news proposta nella colonna di destra di questa pagina (ma su YouTube ne troverai molti altri che possono fare al caso tuo).
piattaforma android