Google Android: la piattaforma per lo sviluppo mobile del futuro?

Google Android

Google ha recentemente rilasciato sotto licenza Apache la versione più aggiornata di Android SDK, una piattaforma che consente lo sviluppo di applicazioni per il settore della telefonia mobile.
Android è una piattaforma basata sul sistema operativo Linux, è un progetto open-source, ed il suo sviluppo è affidato alla Open Handset Alliance, un gruppo di circa cinquanta aziende tra le quali Google e diversi operatori del settore della telefonia mobile provenienti da diverse nazioni. Android SDK consente di effettuare lo sviluppo di applicazioni di telefonia mobile sui principali sistemi operativi (Linux, Mac OS e Windows sono tutti supportati) usando Java come linguaggio di programmazione; gli sviluppatori sono liberi di scegliere il proprio IDE preferito, anche se Eclipse è avvantaggiato dal momento che offre già un plug-in per Android (noto con il nome di Android Development Tools, o semplicemente ADT). L’SDK di Android include un sistema operativo, un insieme di librerie, ed un framework con varie applicazioni. Tutte le applicazioni fornite con l’SDK sono state scritte in Java, e comprendono un browser, un client di posta, un calendario, mappe, e contatti.
Android presenta tutte le più importanti caratteristiche che l’utente si aspetta di trovare in un moderno dispositivi mobile:

  • supporto per i più comuni tipi di connessione: WiFi, Bluetooth, EDGE, e 3G
  • supporto per la messaggistica MMS e SMS
  • supporto per I principali formati multimediali, come MP3, MPEG-4, JPG, PNG
  • supporto per videocamera, GPS, touch screen, bussola ed accelerometro, accelerazione grafica 3D basata sulle librerie OpenGL
  • una Java virtual machine: in questo caso è presente la versione creata appositamente da Google (Dalvik), ottimizzata per impieghi mobile
  • un database relazionale snello ed open-source, particolarmente adatto per applicazioni embedded (SQLite)
  • un browser integrato basato sul motore WebKit

Le origini di Android

Nel luglio 2005 Google ha acquisito negli Stati Uniti una piccola società startup, la Android Inc., con sede a Palo Alto, California. L’acquisizione era motivata dalla precisa volontà di Google di entrare nel settore della telefonia mobile con il progetto giusto e con le persone giuste: non a caso il leader del team di sviluppo di Android è proprio Andy Rubin, l’ex capo di Android Inc.

L’architettura di Android

L’architettura di Android è mostrata nella figura seguente. Al livello più basso (colorato di rosso) si trova il Linux kernel, con tutti i software drivers necessari per gestire le varie perfieriche (display, videocamera, audio, tastiera, Wi-Fi, memoria flash e alimentazione). Sopra al kernel si trovano le librerie (colorate di verde); questo livello mette a disposizione tutte le API e le librarie necessarie per implementare le funzionalità di più alto livello. Tra queste, possiamo notare la libreria libc (la libreria principale nel linguaggio C), la libreria SQLite (un database relazionale compatto con interfaccia SQL), la libreria OpenGL (accelerazione grafica 2D e 3D), la libreria WebKit (la stessa adottata da Safari, il browser di iPhone, e da alcuni telefoni di Nokia), ed il media framework, in grado di supportare la maggiorparte dei formati audio, video, e foto. Sopra di essi si colloca la Java virtual machine di Google, Dalvik (colorata di giallo), il motore in grado di eseguire il codice run-time di Android. I livelli più alti (colorati di blu) sono riservati per le applicazioni ed il framework di alto livello.

L’emulatore di Android

Una caratteristica molto importante dell’SDK di Android SDK è quella di disporre di un emulatore integrato nel pacchetto: si tratta di un vero e proprio dispositivo mobile virtuale che permette di sviluppare, eseguire, e debuggare un’applicazione Android senza dover disporre di un apparecchio reale. L’emulatore è in grado di modellare tutte le caratteristiche hardware e software del dispositivo reale: così esiste un display, un insieme di tasti e controlli che possono essere attivati tramite il mouse (la pressione simulata genera un evento che viene gestito dal simulatore stesso), e mette a disposizione tutti i servizi della piattaforma Android per eseguire altre applicazioni, riprodurre video e audio, memorizzare e recuperare informazioni in/dalla memoria, accedere alla rete. L’emulatore presenta anche alcune caratteristiche specifiche di debug in grado di aiutare lo sviluppatore durante le attività di test e integrazione; per esempio, è presente una console che cattura in un log tutti i messaggi di output del kernel, consente di inviare interrupt al motore del simulatore (simulando così una chiamata oppure l’arrivo di un SMS). La figura seguente visualizza il simulatore di Android fornito con l’SDK.

Android

L’emulatore di Android è in grado di supportare diverse caratteristiche hardware tipiche di un dispositivo mobile, come ad esempio:

  • una CPU ARMv5 con la corrispondente MMU (memory management unit)
  • un display LCD a 16-bit
  • tastiera e bottoni
  • scheda sonora con segnali sia di output che di input
  • partizioni di memoria flash, emulate tramite disk image file gestiti dall’emulatore
  • modem GSM e relativa SIM Card simulata

L’emulatore di Android SDK può essere eseguito come un’applicazione stand-alone, oppure dall’ambiente integrato di Eclipse. Inoltre, è possible attivare contemporaneamente più istanze dell’emulatore; le chiamate GSM, gli SMS, oppure il trasferimento di dati può così essere simulato tra diverse istanze dell’emulatore.
L’emulatore richiede tre tipi di disk image file: system image file, runtime image file, e temporary image file.

Il futuro di Android

Motorola Mobile crede fermamente in Android e nutre grandi aspettative da esso. Motorola ha pianificato il lancio di diversi telefoni cellulari basati sulla piattaforma Android nel terzo trimestre 2009, ed il loro costo dovrebbe aggirarsi tra i 50 ed i 200 dollari.
In questo momento Motorola sta utilizzando due tipi di sistema operative per I suoi dispositivi mobile: MOTOMAGX (basato su Linux), e UIQ (basato su Symbian); entrambi non stanno fornendo i risultati attesi, così Android viene considerata come un’occasione importante per supportare i telefoni cellulari della prossima generazione. Concentrandosi su un solo sistema operativo mobile, Motorola potrebbe riuscire a rafforzare e consolidare la propria posizione nell’affollato e molto competitivo mercato dei dispositivi mobile e smartphone. Oltre a Motorola, altri produttori hanno annunciato l’introduzione della piattaforma Android sui propri dispositivi: T-Mobile ha annunciato un nuovo terminale (HTC T-Mobile G1) basato su Android; la stessa intenzione è stata svelata da Sony-Ericsson, e pure Nokia sembra interessata ad Android (tuttavia, questa ha già investito parecchio sulla piattaforma Symbian). Se la pianificazione dichiarata sarà rispettata, saremo in grado di vedere entro la fine del 2009 un’applicazione commerciale di Android. Indipendentemente dai risultati tecnici e pratici che saranno raggiunti, siamo già in grado di affermare che Android costituisce uno sforzo encomiabile nella direzione delle piattaforme di sviluppo open-source.

Scarica subito una copia gratis

Una risposta

  1. Avatar photo slovati 19 Marzo 2009

Scrivi un commento

Seguici anche sul tuo Social Network preferito!

Send this to a friend