Uno dei problemi di Android è quello della frammentazione delle versioni, esistono più versioni rilasciate e purtroppo non tutti i device vengono aggiornati in tempi brevi. Dal punto di vista dello sviluppatore questo complica le cose perchè da un lato non si vuole ridurre il possibile bacino di utenti non supportando alcune versioni, dall’altro si vorrebbe utilizzare le feature disponibili solo nelle ultime versioni.
Storia delle versioni di Android
Ogni versione di Android a partire dalla 1.5 ha un nome in codice che rappresenta un dolce:
- Android 1.0 e 1.1: prima versione di Android disponibile su un solo telefono (HTC G1). Attualmente usata da pochissime persone, non è più supportata da nessuna applicazione;
- Android 1.5 Cupcake: prima versione di Android ad essere utilizzata su più telefoni venduti anche in Italia (HTC Magic, Samsung Galaxy). Supporta una sola risoluzione 320×480;
- Android 1.6 Donut: evoluzione della 1.5, supporta risoluzioni multiple e corregge diversi bug della versione precedente (per esempio nel RelativeLayout e nella gestione dei dialog);
- Andorid 2.0 e 2.1 Eclair: disponibile inizialmente solo sul Motorola Droid (uscito in Italia come Milestone). Rappresenta un bel passo in avanti aggiungendo un miglior supporto al Bluetooth, i live wallpapers e una gestione dei contatti migliorata;
- Android 2.2 Froyo: aggiunge il JIT (just in time compiler) migliorando le prestazioni del sistema e il tethering usb/hotspot wifi;
- Android 2.3 Gingerbread: supporto a NFC (near field communication) e restyling dell’interfaccia dell’interfaccia;
- Android 3.0 Honeycomb: prima versione pensata esclusivamente per i tablet, contiene molte novità anche nello sviluppo come i fragment e l’action bar.
Questa lista è aggiornata a Marzo 2011, si parla già di Android Ice Cream, anche se ancora non sappiamo che novità porterà.
Che versione supportare?
Sul sito ufficiale di Android ci sono delle statistiche interessanti aggiornate ogni 15 giorni che mostrano la distribuzione delle varie versioni. Attualmente la versione più usata è la 2.2 e più del 90% dei device ha una versione superiore alla 2.1.
Dopo l’uscita della versione 3.0 è stata rilasciata per la prima volta una libreria per la retrocompatibilità, utilizzandola è possibile sfruttare i fragments (introdotti nella versione 3.0) anche nelle versione a partire dalla 1.6.
Considerando le statistiche di utilizzo, la presenza di diversi bug e l’assenza del supporto per i fragments il consiglio per chi inizia a sviluppare adesso un’applicazione è quello di non supportare Android 1.5. Così facendo si perde una parte di utenti ma lo sviluppo è più semplice, in pratica, secondo me, considerando la percentuale di utenti che usa Android 1.5 il gioco non vale la candela.
Anche la diffusione di Android 1.6 è abbastanza bassa ma scrivere codice per supportarlo di solito non complica troppo le cose. Ovviamente se c’è la necessità di sfruttare feature di Android 2.0 questo discorso non è più vero; per esempio se una applicazione interagisce pesantemente con i contatti non è conveniente supportare la versione 1.6, visto che la gestione dei contatti è cambiata radicalmente in Android 2.0.
Come già visto in un precedente post il supporto a una versione si imposta specificando un tag nel manifest dell’applicazione, per esempio per indicare che la versione minima supportata è la 1.6 c’è da aggiungere:
1 | <uses-sdk android:minSdkVersion="4" /> |
Questo tag è usato dall’Android Market per decidere se mostrare un’applicazione a seconda della versione di Android presente sul device che si connette.
Ho un dubbio se io ho una applicazione per android 1.5 , girerà bene su una versione 2.2??
Domanda da un milione di dollari… Dipende da come è fatta l’applicazione e da cosa intendi quando dici “per Android 1.5”!
Ciao, Fabio
Vi consiglio di aggiornare questo sito web, perché ad oggi siamo arrivati alla versione 4.3 di android, e voi siete fermi alla 3.0 😉