Android: differenze tra le versioni

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Contenuto cancellato Contenuto aggiunto
"Sono un sysop semplice. Correggo errori ortografici senza conoscere l'ortografia corretta."
non è né(nè) >== o..o
Riga 24: Riga 24:
[[File:Galaxy Nexus smartphone.jpg|thumb|Android [[Ice Cream Sandwich]] su [[Galaxy Nexus]].]]
[[File:Galaxy Nexus smartphone.jpg|thumb|Android [[Ice Cream Sandwich]] su [[Galaxy Nexus]].]]


'''Android''' è un [[sistema operativo per dispositivi mobili]] sviluppato da [[Google Inc.]] e basato sul [[Linux (kernel)|kernel Linux]]; non è però da considerarsi propriamente un sistema [[unix-like]] una [[distribuzione GNU/Linux]],<ref>{{Cita news|autore=[[Richard Stallman]]|lingua=en|url=http://www.theguardian.com/technology/2011/sep/19/android-free-software-stallman|titolo=Is Android really free software?|data=19 settembre 2011|accesso=15 dicembre 2015|pubblicazione=[[The Guardian]]}}</ref><ref>{{Cita web|http://www.gnu.org/gnu/gnu-linux-faq.html#linuxsyswithoutgnu|Domande ricorrenti su GNU/Linux|15 dicembre 2015}}</ref> dato che la quasi totalità delle utilità [[GNU]] è sostituita da [[software]] in [[Java (linguaggio di programmazione)|Java]].<ref>{{cita web|autore=Chris Hoffman|editore=How-To Geek|data=12 maggio 2014|lingua=en|accesso=23 gennaio 2017|http://www.howtogeek.com/189036/android-is-based-on-linux-but-what-does-that-mean/|Android is Based on Linux, But What Does That Mean?}}</ref>
'''Android''' è un [[sistema operativo per dispositivi mobili]] sviluppato da [[Google Inc.]] e basato sul [[Linux (kernel)|kernel Linux]]; non è però da considerarsi propriamente un sistema [[unix-like]] o una [[distribuzione GNU/Linux]],<ref>{{Cita news|autore=[[Richard Stallman]]|lingua=en|url=http://www.theguardian.com/technology/2011/sep/19/android-free-software-stallman|titolo=Is Android really free software?|data=19 settembre 2011|accesso=15 dicembre 2015|pubblicazione=[[The Guardian]]}}</ref><ref>{{Cita web|http://www.gnu.org/gnu/gnu-linux-faq.html#linuxsyswithoutgnu|Domande ricorrenti su GNU/Linux|15 dicembre 2015}}</ref> dato che la quasi totalità delle utilità [[GNU]] è sostituita da [[software]] in [[Java (linguaggio di programmazione)|Java]].<ref>{{cita web|autore=Chris Hoffman|editore=How-To Geek|data=12 maggio 2014|lingua=en|accesso=23 gennaio 2017|http://www.howtogeek.com/189036/android-is-based-on-linux-but-what-does-that-mean/|Android is Based on Linux, But What Does That Mean?}}</ref>


È un [[sistema embedded]] progettato principalmente per [[smartphone]] e [[Tablet computer|tablet]], con interfacce utente specializzate per televisori ([[Android TV]]), automobili ([[Android Auto]]), orologi da polso ([[Android Wear]]), occhiali ([[Google Glass]]), e altri.
È un [[sistema embedded]] progettato principalmente per [[smartphone]] e [[Tablet computer|tablet]], con interfacce utente specializzate per televisori ([[Android TV]]), automobili ([[Android Auto]]), orologi da polso ([[Android Wear]]), occhiali ([[Google Glass]]), e altri.

Versione delle 20:21, 1 lug 2017

Android
sistema operativo
Logo
Logo
Schermata principale di Android 7.1.2 Nougat con alcune applicazioni Google.
SviluppatoreGoogle Inc.
Open Handset Alliance
FamigliaUnix-like
Release iniziale1.0 (23 settembre 2008[1])
Release corrente7.1.2 (3 aprile 2017)
Tipo di kernelLinux kernel (monolitico)
Piattaforme supportate32 bit ARM, 64 bit (a partire da Android Lollipop) MIPS, x86
Metodo di aggiornamentoOTA (disponibile dalla OS 1)[2] e PC
Tipo licenzaSoftware libero con controparti proprietarie
LicenzaApache 2.0
Stadio di sviluppoIn produzione
Sito webwww.android.com/
Logo usato fino al 2014
Logo usato dal 2014
Android Ice Cream Sandwich su Galaxy Nexus.

Android è un sistema operativo per dispositivi mobili sviluppato da Google Inc. e basato sul kernel Linux; non è però da considerarsi propriamente un sistema unix-like o una distribuzione GNU/Linux,[3][4] dato che la quasi totalità delle utilità GNU è sostituita da software in Java.[5]

È un sistema embedded progettato principalmente per smartphone e tablet, con interfacce utente specializzate per televisori (Android TV), automobili (Android Auto), orologi da polso (Android Wear), occhiali (Google Glass), e altri.

Ad aprile 2017 Android è il sistema operativo per dispositivi mobili più diffuso al mondo, con una fetta di mercato attestatasi a quota 62,94% sul totale, seguito da iOS con il 33,9%.[6] Nello stesso mese supera anche il marketshare come OS più utilizzato per navigare in rete, superando di fatto il sistema operativo Windows che, fino ad allora, aveva il più alto marketshare al mondo.[7]

Lo sviluppo di Android prosegue attraverso l'Android Open Source Project il quale è software libero ad esclusione di diversi firmware non-liberi inclusi per i produttori di dispositivi e delle cosiddette "Google Apps" come ad esempio Google Play. È distribuito sotto i termini della licenza libera Apache 2.0[8] riservandosi di non-includere software coperto da licenze copyleft.[9]

Storia

Nell'ottobre 2003 Andy Rubin (cofondatore di Danger)[10], Rich Miner (cofondatore di Danger e di Wildfire Communications)[11], Nick Sears (vicepresidente di T-Mobile)[12] e Chris White (principale autore dell'interfaccia grafica di Web TV)[13], fondarono una società, la Android Inc. per lo sviluppo di quello che Rubin definì «... dispositivi cellulari più consapevoli della posizione e delle preferenze del loro proprietario».

Inizialmente la società operò in segreto, rivelando solo di progettare software per dispositivi mobili. Durante lo stesso anno il budget iniziale si esaurì, motivo per cui fu fondamentale un finanziamento di 10 000 dollari da parte di Steve Perlman (amico intimo di Rubin) per poter continuare lo sviluppo. Steve Perlman consegnò a Rubin il denaro in una busta ma rifiutò ogni proposta di partecipazione al progetto.

Il 17 agosto 2005 Google ha acquisito l'azienda[14], in vista del fatto che la società di Mountain View desiderava entrare nel mercato della telefonia mobile. È in questi anni che il team di Rubin comincia a sviluppare un sistema operativo per dispositivi mobili basato sul kernel Linux. La presentazione ufficiale del "robottino verde" avvenne il 5 novembre 2007 dalla neonata OHA (Open Handset Alliance), un consorzio di aziende del settore Hi Tech che include Google, produttori di smartphone come HTC e Samsung, operatori di telefonia mobile come Sprint Nextel e T-Mobile, e produttori di microprocessori come Qualcomm e Texas Instruments Incorporated. Il primo dispositivo equipaggiato con Android che venne lanciato sul mercato fu l'HTC Dream, il 22 ottobre del 2008[15].

Dal 2008 gli aggiornamenti di Android per migliorarne le prestazioni e per eliminare eventuali problemi di sicurezza delle precedenti versioni sono stati molti.

Dalla versione 1.5 ogni aggiornamento o release, similmente a quanto accade per molte versioni di Linux, segue una precisa convenzione alfabetica per i nomi, che in questo caso sono quelli di dolci: la versione 1.0 e 1.1 non hanno un nome di dolce e sono identificate col solo numero di versione[16] (tuttavia la seconda, durante lo sviluppo, fu nominata in via ufficiosa Petit Four, in omaggio agli omonimi dolcetti), la 1.5 venne chiamata Cupcake, la 1.6 Donut, la 2.1 Eclair, la 2.2 Froyo (yogurt gelato), la 2.3 Gingerbread (pan di zenzero), la 3.0 Honeycomb, la 4.0 Ice Cream Sandwich, la 4.1 Jelly Bean, la 4.4 Kit Kat in seguito ad un accordo con la Nestlé poi la 5.0 Lollipop. Il 5 ottobre 2015, tocca alla 6.0, col nome Marshmallow. Google lancia la possibilità di far scegliere agli utenti il nome della prossima versione. Molti italiani votarono per Android nutella ma non sarà poi quello il nome. Il 30 giugno 2016 viene annunciato ufficialmente il nome della versione successiva e il 22 agosto è pronta ad apparire sugli smartphone android con il nome di 7.0 Nougat (torrone)[17].

Nel marzo 2013 Larry Page annuncia che Andy Rubin ha lasciato la presidenza di Android per dedicarsi ad altri progetti di Google. Viene rimpiazzato da Sundar Pichai.

Descrizione

Android adotta una politica di licenza di tipo open source (escluse alcune versioni intermedie),[18][19] e si basa sul kernel Linux. La licenza (Licenza Apache) sotto cui è distribuito consente di modificare e distribuire liberamente il codice sorgente. Inoltre, Android dispone di una vasta comunità di sviluppatori che realizzano applicazioni con l'obiettivo di aumentare le funzionalità dei dispositivi. Queste applicazioni sono scritte soprattutto in linguaggio di programmazione Java.

Nell'ottobre 2012 le applicazioni disponibili presenti sul market ufficiale Android (Google Play) hanno raggiunto le 700.000 unità.[20] Questi fattori hanno permesso ad Android di diventare il sistema operativo più utilizzato in ambito mobile, oltre a rappresentare, per le aziende produttrici, la migliore scelta in termini di bassi costi, personalizzazione e leggerezza del sistema operativo stesso, senza dover scrivere un proprio sistema operativo da zero.[21]

Android Open Source Project

Il progetto Open Source Android è guidato da Google e, con il compito di mantenimento e allo sviluppo di Android[22] secondo il progetto "l'obiettivo è quello di creare un vero e proprio successo, in modo da migliorare l'esperienza mobile per gli utenti"[23], AOSP mantiene anche la compatibilità dei programmi per Android, la definizione di un dispositivo "Android compatibile", per esempio "quel dispositivo su cui è possibile eseguire qualsiasi applicazione scritta da sviluppatori di terze parti che utilizzano Android SDK e NDK.", per prevenire implementazioni incompatibili in Android[23]. Il programma di compatibilità è facoltativo e gratuito, e la suite che consente di effettuare test di compatibilità è sempre gratuita e open-source[24].

Il kernel Linux

Schema di Architettura

Android è costituito da un kernel Linux 2.6 e 3.x (da Android 4.0 in poi), con middleware, Librerie e API scritte in C (o C++) e software in esecuzione su un framework di applicazioni che include librerie Java compatibili con librerie basate su Apache Harmony. Android fino alla release 4.4 KitKat ha usato la Dalvik virtual machine con un compilatore just-in-time per l'esecuzione di Dalvik dex-code (Dalvik Executable), che di solito viene tradotto da codice bytecode Java[25]. Questa virtual machine, ormai obsoleta, viene rimpiazzata con ART (Android RunTime) integrato in Android 5.0 Lollipop. Questa nuova virtual machine, sviluppata da Google, utilizza un compilatore Ahead-of-time. La piattaforma hardware principale di Android è l'architettura ARM. L'architettura x86 è supportata grazie al progetto Android x86[26] e Google TV utilizza una speciale versione x86 di Android.

Il kernel Linux di Android mette a disposizione modifiche all'architettura create da Google al di fuori del ciclo di sviluppo del kernel. Un tipico sistema Android non possiede un X Window System nativo, né supporta il set completo standard di librerie GNU, e nel caso del C++ vi è solo una implementazione parziale delle STL. Tutto ciò rende difficile il porting su Android di applicazioni grafiche o librerie sviluppate per GNU/Linux.[27] Per semplificare lo sviluppo di applicazioni C/C++ sotto Android si usa SDL che tramite un piccolo Wrapper java permette l'utilizzo della JNI dando un'idea di utilizzo simile a un'applicazione nativa in C/C++.

Le applicazioni Android sono Java-based; in effetti le applicazioni scritte in codice nativo in C/C++ devono essere richiamate dal codice java, tutte le chiamate a sistema fatte in C (o C++) devono chiamare codice virtual machine Java di Android: infatti le API multimediali di SDL sotto Android richiamano metodi in Java; questo significa che il codice dell'applicazione C/C++ deve essere inserito all'interno di un progetto Java, il quale produce alla fine un pacchetto Android (APK).

Google ha contribuito ad implementare alcune funzionalità all'interno del kernel Linux, in particolare il wakelock, una funzione che permette alle applicazioni di "risvegliare" il device mentre è in sleep. Quest'ultima feature è però stata rifiutata dagli sviluppatori del kernel mainline, in parte perché hanno ritenuto che Google non abbia manifestato l'intenzione di mantenere il proprio codice.[28][29][30] Anche se Google ha annunciato nel mese di aprile 2010 che avrebbero assunto due dipendenti per lavorare con la comunità del kernel Linux,[31] Greg Kroah-Hartman, l'attuale responsabile del kernel di Linux per il ramo stabile, ha dichiarato nel dicembre 2010 che era preoccupato del fatto che Google non sembrava più intenzionata a far includere le modifiche al codice nel ramo principale di Linux. Alcuni sviluppatori di Google Android hanno fatto capire che "il team di Android si è stancato del processo", perché erano una piccola squadra e avevano molto lavoro urgente da fare su Android[32]

In Linux è stato incluso l'autosleep e le capacità wakelocks nel kernel 3.5, dopo molti precedenti tentativi di fusione. Le interfacce sono le stesse ma la realizzazione di Linux ha due diverse modalità di sospensione: a memoria (le sospensione tradizionale che utilizza Android), e su disco (ibernazione, come è noto sul desktop).[33] Nel mese di agosto 2011, Linus Torvalds ha detto che "alla fine Android e Linux sarebbero venuti di nuovo ad un nucleo comune, ma probabilmente non sarà per quattro o cinque anni"[34] Nel mese di dicembre 2011, Kroah-Hartman ha annunciato l'inizio del progetto mainlining Android, che mira a mettere un po' di Android driver, le patch e le caratteristiche, nel kernel di Linux a partire da Linux 3.3.[35]

La memoria flash sui dispositivi Android è divisa in diverse partizioni, ad esempio "/system" per il sistema operativo stesso e "/data" per i dati utente e le installazioni delle app. Diversamente rispetto alle tradizionali distribuzioni GNU/Linux, agli utenti di dispositivi Android non sono disponibili i privilegi di superutente, o root, per l'accesso al sistema operativo e alle sue partizioni, quali "/system", per le quali l'utente dispone dei permessi di sola lettura. Tuttavia, l'accesso come root sul dispositivo è quasi sempre possibile: in certi casi tramite richiesta al produttore, in altri sfruttando certe falle di sicurezza di Android. L'accesso root viene utilizzato frequentemente dalla comunità open source, per migliorare le capacità dei loro dispositivi, ma anche da soggetti malintenzionati per installare virus e malware.

Altre caratteristiche

L'interfaccia utente di Android è basata sul concetto di direct manipulation[36] per cui si utilizzano gli ingressi mono e multi-touch come strisciate, tocchi e pizzichi sullo schermo per manipolare gli oggetti visibili sullo stesso.[36] La risposta all'input dell'utente è stata progettata per essere immediata e tentare di fornire un'interfaccia fluida. Sensori hardware interno come accelerometri, giroscopi e sensori di prossimità sono utilizzati da alcune applicazioni per rispondere alle azioni da parte dell'utente, ad esempio la regolazione dello schermo da verticale a orizzontale a seconda di come il dispositivo è orientato o che consentono all'utente di guidare un veicolo in una corsa virtuale ruotando il dispositivo, simulando il controllo di un volante.[37]

La cosiddetta Homescreen è simile al desktop trovato su Windows ed è la schermata principale che ci si trova appena il device è stato avviato, oppure premendo il tasto Home. L'homescreen di Android è in genere occupata sia dalle icone delle applicazioni che dai widget cioè dei sorta di gadgets con varie funzioni; ci sono widget che mostrano vari stili di orologi, quelli che mostrano gli ultimi video di YouTube, altri che visualizzano informazioni meteo, quelli relativi alle email.[38] La homescreen può essere costituita da più pagine tra cui l'utente può scorrere avanti e indietro.

Sempre presente nella parte superiore dello schermo si trova una barra di stato, che mostra le informazioni sul dispositivo e la sua connettività. Trascinando la barra di stato verso il basso compare una schermata di notifica in cui le applicazioni possono visualizzare notifiche relative ad informazioni importanti o aggiornamenti come ad esempio una e-mail appena ricevuta o un SMS, in modo da non interrompere immediatamente l'utente.[39] Nelle prime versioni di Android tali notifiche potevano essere sfruttate esclusivamente per aprire l'applicazione in questione, ma gli aggiornamenti più recenti hanno fornito maggiori funzionalità, come ad esempio la possibilità di chiamare un numero direttamente dalla notifica della chiamata persa, senza dover aprire l'applicazione telefono[40] Le notifiche sono persistenti fino alla loro lettura o cancellazione da parte dell'utente.

La piattaforma usa il database SQLite, la libreria dedicata SGL per la grafica bidimensionale (invece del classico server X delle altre distribuzioni linux) e supporta lo standard OpenGL ES 2.0 per la grafica tridimensionale.[41] Le applicazioni vengono eseguite tramite la Dalvik virtual machine, una macchina virtuale adattata per l'uso su dispositivi mobili.

Android è stato progettato principalmente per smartphone e tablet, ma il carattere aperto e personalizzabile del sistema operativo permette che sia utilizzato anche su altri dispositivi elettronici tra cui portatili e netbook, smartbook,[42] eBook reader, fotocamere e smart TV (Google TV). Il mercato delle "smart things" è cresciuto in maniera notevole in questi ultimi periodi a tal punto da stimolare la creatività delle persone. Un esempio è lo Smartwatch dotato di sistema operativo Android in versione "light"[43] cuffie,[44] lettori auto CD e DVD,[45] occhiali intelligenti (Google Glass), frigoriferi, sistemi di navigazione satellitare per veicoli, sistemi di automazione per la casa, console di gioco, specchi,[46] telecamere, lettori MP3/MP4 e tapis roulant.

Il logo di Android è stato progettato con la famiglia di caratteri (font) Droid di Ascender Corporation, il verde è il colore del robot che rappresenta il sistema operativo Android. Il colore di stampa è PMS 376C e il colore RGB in valore esadecimale è # A4C639, come specificato dalle linee guida del Marchio di Android. Il carattere personalizzato di Android si chiama Norad. Viene utilizzato solo nel logo di testo.

Aggiornamenti

Android ha un rapido ciclo di aggiornamento, con la distribuzione di nuove versioni ogni sei-nove mesi. Gli aggiornamenti sono in genere di natura incrementale, apportando miglioramenti del software a intervalli regolari, piuttosto che revisioni complete del sistema ogni due o tre anni (pratica comune per i sistemi operativi desktop come Windows). Tra una major release e l'altra vengono messi a disposizione aggiornamenti intermedi per risolvere problemi di sicurezza e altri bug del software. La maggior parte dei dispositivi Android sono in grado di ricevere gli aggiornamenti in modalità "OTA" (over the air), ovvero senza necessità di un collegamento ad un PC.

Rispetto ad altri sistemi operativi mobili, come iOS, in genere trascorre parecchio tempo, a volte diversi mesi, fra la distribuzione ufficiale di un aggiornamento Android e l'effettiva distribuzione, da parte dei vari produttori, ai dispositivi in grado di supportarlo. Questo non avviene però con i dispositivi della serie Nexus più recenti (attualmente Nexus 5, Nexus 5X, Nexus 6, Nexus 6P, Nexus 9, Nexus 7, Nexus Player e il convertibile Pixel C.[47] Nel 2011, Google ha siglato un accordo con un certo numero di produttori annunciando l'"Android Update Alliance" e impegnandosi a fornire aggiornamenti tempestivi ad ogni dispositivo per 18 mesi dalla sua immissione in commercio. Ciononostante, per l'ultima distribuzione del sistema operativo Lollipop, Google ha deciso di coinvolgere gli ormai datati Nexus 4, 7 (versione 2012) e 10, che hanno sforato i 18 mesi dalla data d'uscita (fine 2012, che, al conto dei 18 mesi, sarebbero dovuti uscire dalla linea d'aggiornamento nel primo semestre 2014).

Il motivo per cui si verificano questi ritardi è dovuto a vari fattori. In primis vi è la necessità di personalizzare il sistema sullo specifico hardware di ogni dispositivo. Gli aggiornamenti ufficiali vengono infatti distribuiti da Google per i device di riferimento (attualmente Google Nexus 5, Google Nexus 6, Google Nexus 7 2013, Google Nexus 6P, Google Nexus 5X, Google Nexus 9 e Google Nexus Player). Ogni produttore dovrà poi adattare il sistema ai propri dispositivi, operazione che richiede tempo e investimenti non indifferenti. Per questo motivo molti produttori si concentrano prima di tutto ad aggiornare i loro dispositivi di punta più recenti, allungando ancor di più i tempi per i vecchi dispositivi. In alcuni casi i produttori hanno rinunciato addirittura ad aggiornare dei vecchi dispositivi pur in grado di supportare le nuove versioni del sistema operativo.

Ad aggravare ulteriormente il problema, si aggiunge il fatto che la stragrande maggioranza dei produttori personalizzano l'interfaccia di Android per differenziarsi sul mercato e, ad ogni aggiornamento, devono riportare le proprie personalizzazioni sulla nuova versione. Alcuni commentatori hanno notato che, allo stato attuale, i produttori non sono incentivati ad aggiornare i propri dispositivi, incentivando gli utenti a passare ad un modello più recente (e aggiornato).[48]

Sicurezza

Diversi marchi commerciali hanno prodotto del software antivirus per dispositivi Android. Un articolo del 2011 apparso su ExtremeTech ha sollevato l'opinione che gli antivirus disponibili all'epoca, su Android, fossero praticamente inutili,[49] perché per il principio di minimo privilegio le app non possono agire a livello di kernel ma soltanto applicativo, e quindi qualunque applicazione, anche installata da fonti di terze parti, non avrebbe i permessi sufficienti per apportare danni permanenti al sistema.[49]

Al fine di migliorare la sicurezza del sistema, Google ha introdotto dei meccanismi automatici di analisi del software per bloccare eventuali applicazioni malevole presenti nel market Google Play.[50] Queste soluzioni hanno ridotto il problema ma delle analisi tecniche hanno evidenziato che le analisi automatiche possono essere aggirate[senza fonte]. Un'analisi McAfee stima che nel 2012 l'85% dei virus per dispositivi mobili sia stato sviluppato per dispositivi Android.[51] Tuttavia, con l'introduzione del Google Play Service 5.0, questo problema dovrebbe ridursi, poiché il dispositivo potrà contare su aggiornamenti della sicurezza costanti.

A partire dalla versione di Android L, le informazioni e i dati personali presenti sul terminale vengono cifrati di default dal dispositivo. La cifratura dei dati era stata introdotta tre anni prima, ma doveva essere abilitata manualmente.[52]

Firmware

I telefoni che utilizzano Android come OS possono ottenere (grazie al lavoro di alcune comunità, come quella di XDA) i permessi di root, essendo Android basato su kernel Linux. Questo "sblocco" permette ai dispositivi di accedere a funzioni avanzate, come gestire direttamente CPU e app di sistema, altrimenti inaccessibili, ma permettono anche all'utente di cambiare il firmware del telefono. Senza i permessi aggiuntivi è comunque possibile installare eventuali aggiornamenti firmware ufficiali del produttore del telefono, senza far decadere la garanzia del dispositivo[senza fonte].

Inizialmente tutto il lavoro si era concentrato sull'HTC Dream con firmware come Mikhael, JacHero, TheDudes e altri.

Ad oggi la completezza dei firmware preinstallati dai produttori non spinge gli utenti a sostituire il firmware con altri creati dalle comunità online, ma rimane comunque molto popolare la ROM CyanogenMod[53] compatibile con molti terminali fra cui il Nexus One, l'HTC Magic e l'HTC Desire e successivamente con Galaxy S e Galaxy S II, One X, One S, LG Optimus L9, LG Optimus G, Galaxy Nexus, Galaxy SIII e Galaxy S4, Nexus 5, LG G2, HTC One M7. È pur vero che le ROM "cucinate" spesso permettono una maggiore libertà di gestione da parte dell'utente, includendo funzionalità particolari e ampia possibilità di personalizzazione. Esistono raccolte di firmware come quella di AndroidPedia.[54]

Versioni

Questo grafico non è disponibile a causa di un problema tecnico.
Si prega di non rimuoverlo.

Distribuzione globale delle versioni di Android a giugno 2017[55]

██ Nougat (9,5%)

██ Marshmallow (31,2%)

██ Lollipop (30,8%)

██ KitKat (18,1%)

██ Jelly Bean (8,8%)

██ Ice Cream Sandwich (0,8%)

██ Gingerbread (0,8%)

Il 12 novembre 2007 l'OHA ha distribuito il software development kit (SDK) che include gli strumenti di sviluppo, le librerie, un emulatore del dispositivo, la documentazione (in inglese), alcuni progetti di esempio, tutorial e altro. È installabile su qualsiasi computer x86 compatibile che usi come sistema operativo Windows XP, Vista, macOS (dalla versione 10.4.8), o sistemi unix-like. L'IDE ufficialmente supportato per lo sviluppo di applicazioni per Android è Eclipse,[56] per cui è fornito un plug-in.

Il 23 settembre del 2008 viene distribuita la versione 1.0 di Android che comprendeva il market, il browser, la gestione delle cartelle (creazione, cancellazione e ridenominazione),[57] accesso ai servizi di posta elettronica e il supporto di reti wi-fi, fotocamere e le prime Google Apps per smartphone Android. Le prime release non avevano nomi specifici, ma venivano indicati in maniera più generale come Astro Boy e Bender (infatti si pensava di nominare ogni release con il nome di un robot della televisione o del cinema). Dalla versione 1.5 si stabilì di utilizzare invece nomi di dolci.

L'SDK fu aggiornato alla versione 1.1 il 9 febbraio 2009; questa nuova versione sostituiva la versione 1.0_r2 e manteneva la retro compatibilità con i sorgenti creati tramite le vecchie release dell'SDK (1.0_r1 e 1.0_r2) ed aggiunge nuove caratteristiche alle API, oltre ad una maggiore fluidità e sicurezza.[58]

Cupcake

La versione dell'SDK uscita il 13 aprile 2009 è la 1.5, divenuta famosa soprattutto con il suo secondo nome Cupcake. C'è retrocompatibilità con le vecchie versioni e implementa le nuove API 3, rendendo l'SO ancora più veloce e stabile.[59]

Donut

Fu poi aggiornato e il 16 settembre 2009 venne distribuita la 1.6 chiamata anche Donut. C'è retrocompatibilità con le vecchie versioni e implementa nuove funzioni e tecnologie come il supporto alle reti CDMA, diverse risoluzioni di schermo e una ricerca globale interna nel telefono e su internet contemporaneamente, oltre ai vari fix bug. I primi cellulari con Android 1.6 nativo sono sul mercato da ottobre 2009.[60]

Eclair

Il 27 ottobre 2009 Google pubblica la versione 2.0 del suo sistema operativo Open Source,[61] nome in codice Eclair, che introduce la possibilità d'inviare dati tramite Bluetooth, mentre in precedenza era possibile utilizzarla solo per la comunicazione vocale[62] seguita da una minor release dell'SDK, la versione 2.0.1, il 4 dicembre 2009.[63]

Il 12 gennaio 2010 è stato distribuito l'Android SDK 2.1, chiamato sempre Eclair per le sue poche novità introdotte. Infatti furono solamente risolti dei critical bug riscontrati in vari dispositivi associati alla sicurezza dei dati.

Froyo

Il 20 maggio 2010 al Google I/O conference è stato distribuito l'Android SDK 2.2, nome in codice Froyo. Sono stati resi disponibili importanti aggiornamenti: nuovo kernel linux 2.6.32, nuovo compilatore JIT, V8 Engine per il JavaScript, Tethering Wi-fi Nativo per utilizzare il terminale come Hotspot Wireless, nuove Icone per la Home, Telefono (Sinistra) e Browser (Destra). Adobe Flash Player 10.1 e Adobe AIR Integrato. Possibilità di installare le app sulla memoria SD, feature molto attesa dalla community mondiale. Aggiornamento automatico Over-the-Air delle Applicazioni. Nuove Api per gli sviluppatori, tra cui le OpenGL ES 2.0. Il tutto si è tradotto in 2-3X di velocità maggiore, performance e fluidità rispetto alla precedente versione 2.1 Eclair.

Il 9 luglio 2010 l'Android SDK 2.2[64] è stato revisionato e aggiornato con gli ultimi file.img del sistema Android 2.2.

Gingerbread

Il 7 dicembre 2010 l'Android SDK 2.3[65] è stato distribuito, col nome in codice Gingerbread.

Honeycomb

Nel gennaio del 2011 viene distribuito il sistema 3.0 (Honeycomb) dedicato ai soli tablet,[66] mentre il 27 gennaio 2011 viene pubblicata la preview dell'Android SDK 3.0[67] la versione di Android per i dispositivi Tablet. La versione definitiva dell'SDK 3.0 è stata invece ufficializzata solo il 23 febbraio 2011.[68][69] L'11 maggio 2011 è stata distribuita la versione SDK 3.1.[70]

Ice Cream Sandwich

Il 19 ottobre 2011 è stata presentata la versione 4.0 (Ice Cream Sandwich) contemporaneamente alla presentazione del nuovo Samsung Galaxy Nexus,[71] questa versione è destinata a diversi dispositivi, quali smartphone e tablet, abbandonando la precedente situazione, dove smartphone e tablet utilizzavano sistemi operativi differenti. Il 19 ottobre è stato pubblicato l'SDK 4.0.[72]

Il 22 marzo 2012 è stato distribuito l'Android SDK versione 17 che introduce il supporto nativo per i chip x86 e la possibilità di utilizzare un device Android in collegamento con il PC come dispositivo di input multitouch.[73]

Jelly Bean

Il 29 ottobre 2012 doveva essere presentata la versione di Android Jelly Bean 4.2, ma, a causa dell'Uragano Sandy, la presentazione è stata annullata. I primi dispositivi basati su Android 4.2 sono stati distribuiti il 13 novembre 2012. La versione si presentava piena di miglioramenti e novità, come il Circle Photosphere di Google, tuttavia includeva numerosi bug.

Il 6 novembre 2012 Google mise a disposizione per i suoi dispositivi Nexus una patch che portò Android alla versione Jelly Bean 4.2.1.

Il 24 luglio 2013 Google pubblica, per i dispositivi Nexus, la versione Android 4.3 Jelly Bean che porta diverse migliorie, tra cui il supporto all'OpenGL ES 3.0 e il Bluetooth 4.0.

KitKat®

Il 3 settembre 2013 Google annuncia la versione Android 4.4 KitKat, distribuita il 31 ottobre 2013 per i dispositivi Nexus ad esclusione del Galaxy Nexus[74].

Distribuito da Google nel mese di ottobre 2013, ad agosto 2014 Android KitKat gira sul 21% di tutti i dispositivi Android[75].

Lollipop

Al Google I/O 2014 è stata presentata un'anteprima (preview) del successore di KitKat, Android L, con il quale si verifica una netta svolta per quel che riguarda tutta l'interfaccia del sistema attraverso il completo ridisegno delle icone in uno stile più semplice e piatto, abbandonando quindi lo stile Holo che fino a quel momento aveva caratterizzato Android, e la revisione delle animazioni, che passano a 60fps, oltre a dei cambiamenti più generali. Android L Developer Preview è stato reso disponibile ufficialmente tramite factory image per Nexus 5 e Nexus 7 2013, versione Wi-Fi, anche se degli sviluppatori hanno realizzato dei porting per Nexus 4, HTC One (M7) e Samsung Galaxy S4.

Il 15 ottobre 2014 Google presenta la versione definitiva del successore di Kitkat, Android Lollipop 5.0[76][77] (conosciuto precedentemente come Android L), insieme ai nuovi modelli della serie nexus: Motorola Nexus 6[78], HTC Nexus 9[79] e ASUS Nexus Player[80].

Il 4 febbraio 2015 Google ha rilasciato, inizialmente solo in Indonesia, sui dispositivi Android One, e successivamente, il 9 marzo 2015, sui dispositivi Nexus, Android Lollipop 5.1.

Marshmallow

Il 28 maggio 2015 al Google I/O, viene presentato Android M. Nella stessa sera (con fuso orario italiano) sono state rilasciate le prime preview. Si può visionare il changelog dal seguente link. Il 17 agosto 2015 nel giardino del Googleplex, viene presentata la statua di M, cioè Android Marshmallow.

Nougat

Il 22 agosto 2016, viene presentato ufficialmente Android Nougat.

Panoramica delle versioni pubblicate (smartphone e tablet)

Versione Data di pubblicazione Caratteristiche Distribuzione (maggio 2017)[81]
pre-1.0 --- Release sperimentali precedenti alla 1.0, contrassegnate come "milestone" e indicate con un numero di serie.
1.0 (Nessun nome)[82] 23 settembre 2008 API Level 1. Il primo telefono commerciale a montare questo sistema operativo è stato l'HTC Dream (noto come T-Mobile G1 negli Stati Uniti).
1.1 (Ufficiosamente Petit Four)[82] 9 febbraio 2009 API Level 2. Update per risolvere vari bug (gli utenti HTC Dream TIM sono gli unici ad essere ancora fermi a questa versione).
1.5 Cupcake 30 aprile 2009 API Level 3. Linux kernel 2.6.27. Maggior integrazione con i servizi Google, supporto per i widget.
1.6 Donut 15 settembre 2009 API Level 4. Linux kernel 2.6.29. Aggiunta di ricerca vocale e testuale per i contenuti presenti in locale e sul Web. Introdotta la sintesi vocale e le gesture.
2.0 Eclair 26 ottobre 2009 API Level 5. Linux kernel 2.6.29. Aggiunte numerose funzionalità per la fotocamera. Migliorata la sincronizzazione dell'account Google e aggiunto il supporto agli account Exchange. Aggiunto il supporto al multi-touch e ai live wallpaper. UI e prestazioni migliorate.
2.0.1 Eclair 3 dicembre 2009 API Level 6. Risolti alcuni bug minori.
2.1 Eclair 12 gennaio 2010 API Level 7. Minor release.
2.2 Froyo 20 maggio 2010 API Level 8. Linux kernel 2.6.32. Drastico miglioramento prestazionale, dovuto ad una migliore gestione delle risorse hardware (compilazione JIT). Tethering USB e Wi-Fi. Integrazione del motore JavaScript V8 di Google Chrome nel browser di sistema. Supporto alla tecnologia Adobe Flash. Migliorie apportate a gran parte delle altre applicazioni di sistema.
2.2.1 Froyo 18 gennaio 2011 API Level 8. Incremento prestazionale e miglioramento della sicurezza.
2.2.2 Froyo 22 gennaio 2011 API Level 8. Risolto un bug relativo all'invio degli SMS riscontrato su Nexus One.
2.2.3 Froyo 21 novembre 2011 API Level 8. Patch di sicurezza.
2.3 Gingerbread 6 dicembre 2010 API Level 9. Linux kernel 2.6.35. UI aggiornata per essere più user-friendly. Aggiunto il supporto agli schermi XL (risoluzione WXGA e superiori). Supporto nativo al SIP VoIP e alla tecnologia NFC. Tastiera riprogettata (precisione predittiva aumentata e copia/incolla migliorato). Aggiunta l'app Download Manager, per la gestione unificata di tutti i download effettuati dalle app di sistema e non. Supporto nativo a sensori come giroscopio e barometro. Migliorata la gestione energetica. 1.0%
2.3.1 Gingerbread dicembre 2010 API Level 9. Risolti alcuni bug riscontrati nel Nexus S. vedi su
2.3.2 Gingerbread gennaio 2011 API Level 9. Risolti alcuni bug riscontrati nel Nexus S. vedi su
2.3.3 Gingerbread 9 febbraio 2011 API Level 10. Numerosi miglioramenti e correzioni nelle API. vedi su
2.3.4 Gingerbread 28 aprile 2011 API Level 10. Supporto per la chat video e vocale tramite Google Talk. vedi su
2.3.5 Gingerbread 25 luglio 2011 API Level 10. Migliorate le applicazioni Fotocamera e Gmail. Efficienza energetica migliorata. Fix di alcuni bug riscontrati su Nexus S 4G e Galaxy S. vedi su
2.3.6 Gingerbread 2 settembre 2011 API Level 10. Risolto un bug relativo alla ricerca vocale. vedi su
2.3.7 Gingerbread 21 settembre 2011 API Level 10. Supporto a Google Wallet (solo per Nexus S 4G). vedi su
3.0 Honeycomb 22 febbraio 2011 API Level 11. Linux kernel 2.6.36. Versione ottimizzata per tablet. Introdotta nuova UI, denominata "Holo". Aggiunta la barra di sistema (pulsanti software Home, Indietro, Task manager) e la Action Bar (fornisce accesso ad opzioni che variano in base al contesto). Browser multi-tab. Accelerazione hardware e supporto per processori multi-core. Possibilità di criptare tutti i dati personali.
3.1 Honeycomb 10 maggio 2011 API Level 12. Miglioramenti alla UI. Widget ridimensionabili. Supporto per le periferiche USB (flash drive, gamepad).
3.2 Honeycomb 15 luglio 2011 API Level 13. Ampliato il supporto hardware. SDK aggiornato per permettere agli sviluppatori di personalizzare più a fondo la UI.
3.2.1 Honeycomb 20 settembre 2011 API Level 13. Aggiornamento di Google Ricerca libri e Android Market. Bug fixes.
3.2.2 Honeycomb 30 agosto 2011 API Level 13. Risolti alcuni bug riscontrati nel Motorola Xoom 4G.
3.2.3 Honeycomb API Level 13. Risolti alcuni bug riscontrati nel Motorola Xoom e nel Motorola Xoom 4G.
3.2.4 Honeycomb dicembre 2011 API Level 13. Supporto per i Tablet 3G e 4G dell'opzione "Pay as You Go".
3.2.5 Honeycomb gennaio 2012 API Level 13. Risolti alcuni bug riscontrati nel Motorola Xoom e nel Motorola Xoom 4G.
3.2.6 Honeycomb febbraio 2012 API Level 13. Risolti alcuni bug riscontrati nella disattivazione della connettività dati in modalità aereo per il Motorola Xoom 4G americano.
4.0 Ice Cream Sandwich 19 ottobre 2011 API Level 14. Linux kernel 3.0.1. UI completamente riprogettata: prestazioni migliorate, pulsanti virtuali al posto di quelli hardware (per i dispositivi che ne sono privi), cartelle più facili da creare, launcher personalizzabile, nuovo font di sistema (Roboto). Aggiornate tutte le app di sistema per sfruttare le nuove API. Introdotta la possibilità di backup completo tramite ADB senza sblocco del Bootloader o necessità di permessi Root. Possibilità di scattare screenshots integrata nell'OS. Dettatura in tempo reale. Face Unlock, per sbloccare il dispositivo tramite il software di riconoscimento facciale. Possibilità di accedere alle applicazioni direttamente dalla schermata di sblocco. Fotocamera migliorata con: ritardo di scatto nullo (zero shutter lag), modalità panorama e zoom durante la ripresa di video. App "Contatti" con integrazione con i social network. Android Beam (scambio di dati tramite NFC). Wi-Fi Direct.
4.0.1 Ice Cream Sandwich 21 ottobre 2011 API Level 14. Risolti alcuni bug minori riscontrati nel Galaxy Nexus.
4.0.2 Ice Cream Sandwich 28 novembre 2011 API Level 14. Risolti alcuni bug minori riscontrati nel Galaxy Nexus marchiato Verizon Communications.
4.0.3 Ice Cream Sandwich 16 dicembre 2011 API Level 15. Accessibilità migliorata. 0,8%
4.0.4 Ice Cream Sandwich 29 marzo 2012 API Level 15. Migliorate funzione multitasking, rotazione dello schermo e applicazione Camera. vedi su
4.1 Jelly Bean 9 luglio 2012 API Level 16. Linux kernel 3.0.31. Riconoscimento del tocco migliorato, ottimizzato l'utilizzo della CPU, digitazione testo migliorato, voice typing offline, migliorata la gestione dei widget (possibilità di eliminarli con le gesture, ridimensionamento automatico), miglioramenti notevoli nella fluidità grazie a "Project Butter", importanti ottimizzazioni dell'applicazione fotocamera, nuove funzionalità per la condivisione di foto e video tramite NFC, Android Beam migliorato, gesture avanzate per le notifiche, nuovo servizio Google Now, sintesi vocale migliorata, Google Play Store aggiornato, riconoscimento vocale avanzato (GSV).

Abbandono ufficiale al supporto della tecnologia Adobe Flash[83].

3,2%
4.1.1 Jelly Bean 23 luglio 2012 API Level 16. Risolto un bug sul Nexus 7 (2012) riguardante l'impossibilità di cambiare l'orientamento dello schermo in qualsiasi applicazione. vedi su
4.1.2 Jelly Bean 9 ottobre 2012 API Level 16. Correzioni di bug e miglioramenti delle prestazioni, introduzione delle gesture con un dito per espandere/chiudere le notifiche, nuovo pulsante "Seleziona tutto" sulla tastiera Swype, supporto per il Nexus 7 (2012) della rotazione della Lock/home screen. vedi su
4.2 Jelly Bean 13 novembre 2012 API Level 17. Linux kernel 3.4.0. Implementazione nativa della funzione swipe nella tastiera, utilizzo delle impostazioni della fotocamera con una sola gesture, introduzione dei toggle per le impostazioni rapide, migliorato il servizio Google Now, aggiornato il supporto ad Android Beam, introdotta la modalità fotografica a 360° (PhotoSphere), supporto per i widget nella lockscreen, aggiunto il pinch-to-zoom per l'app Gmail, supporto multi-utente per tablet. 4,6%
4.2.1 Jelly Bean 27 novembre 2012 API Level 17. Risolti alcuni bug causati dall'aggiornamento alla versione 4.2. vedi su
4.2.2 Jelly Bean 11 febbraio 2013 API Level 17. Migliorate le prestazioni e la stabilità, risolti i problemi al Bluetooth A2DP per la trasmissione wireless di audio stereo, modificate le icone del Bluetooth e del Wi-Fi nell'area notifiche che diventano anche toggle (tramite pressione prolungata si attivano/disattivano), aggiunto il tempo stimato del download delle applicazioni nella barra delle notifiche. vedi su
4.3 Jelly Bean 24 luglio 2013 API Level 18. Introdotte le OpenGL ES 3.0, nuova fotocamera, introdotta la funzione Wi-Fi always-on, dialer con la ricerca dei contatti, accesso alle notifiche da parte delle applicazioni, possibilità di introdurre contenuti DRM, connessione Bluetooth con i dispositivi a basso consumo di energia e introdotte le impostazioni per il multiutente (Restricted Profile) che permettono di scegliere quali contenuti e quali applicazioni gli utenti possono visualizzare. 1,3%
4.3.1 Jelly Bean 4 ottobre 2013 API Level 18. Risolti alcuni bug riscontrati nel Nexus 7 (2013) LTE[84][85]. vedi su
4.4 KitKat 31 ottobre 2013 API Level 19. Rinnovata l'interfaccia grafica (Navbar e Status bar trasparenti per sfruttare meglio tutto lo spazio dello schermo) e introdotto il full screen completo. Hangouts è diventato il client ufficiale per SMS e MMS, introdotte nuove funzioni di chiamata, aggiunta la possibilità di catturare video in MP4 di ciò che avviene sullo schermo, aggiunto il supporto nativo alla stampa di foto, documenti e pagine web verso Google Cloud Print, HP ePrint, e altre stampanti compatibili. Aggiunta una nuova voce dedicata alla Home nelle impostazioni per lo switch tra launcher. Aggiunte le emoji alla tastiera di Google. Rinnovata l'app Download, con opzioni per l'ordinamento e la visualizzazione. Supporto per 3 nuovi tipi di sensore (vettore di rotazione geomagnetica, rilevatore e contatore di passi) e aggiunta la funzione contapassi. Diminuito il consumo di batteria durante la riproduzione audio. Introduzione di ART (Android RunTime), un nuovo compilatore, attualmente in via sperimentale, attivabile dalle Opzioni Sviluppatore (anche se non su tutti i dispositivi). Ottimizzato il funzionamento del sistema sui dispositivi con poca RAM (anche con soli 512 MB)[86][87].

Questa versione di Android era precedentemente conosciuta col nome non ufficiale di Key Lime Pie[88] e col numero di versione 5.0[89][90]. Il nome originario venne cambiato prima della pubblicazione in seguito ad un accordo tra Google e la Nestlé (l'azienda che produce i Kit Kat), mentre il numero di versione era dovuto solo a dei rumor sbagliati.

18,8%
4.4.1 KitKat 5 dicembre 2013 API Level 19. Risolti alcuni bug che impedivano la configurazione di account Exchange, introdotte le barre trasparenti nel blocco schermo, sostituita l'app Galleria con Foto e aggiornato il software della fotocamera[91]; per i Nexus 5, migliorata la velocità di alcune caratteristiche della fotocamera[92] come la messa a fuoco (specialmente in condizioni di scarsa luminosità), il bilanciamento del bianco, la chiusura dell'otturatore e introdotta la possibilità di effettuare pinch to zoom sullo smartphone in modalità HDR+. vedi su
4.4.2 KitKat 9 dicembre 2013 API Level 19. Correzioni di bug e miglioramenti delle prestazioni vari (compresa la fotocamera), più alcuni fix per la sicurezza[93][94]. Correzioni sugli indicatori delle voice mail[95]. vedi su
4.4.3 KitKat 3 giugno 2014 API Level 19. Correzioni di bug e miglioramenti delle prestazioni varie, rinnovo dell'interfaccia dei Contatti e del Dialer per effettuare le chiamate[96]. vedi su
4.4.4 KitKat 19 giugno 2014 API Level 19. Aggiornamento minore per la risoluzione di alcuni bug di sicurezza riguardanti OpenSSL[97]. vedi su
5.0 Lollipop 3 novembre 2014[98] API Level 21[99]. UI Completamente rinnovata, soprannominata Material Design, grazie al quale ogni elemento della UI ha un valore di "elevazione" che dice al sistema qual è la sua posizione rispetto a tutti gli altri elementi. 5000 nuove API. Nuovo multitasking. Animazioni a 60 FPS. Importanti miglioramenti della gestione audio. Integrazione di Samsung Knox per la sezione business. Introduzione di Google Fit per il rilevamento delle attività fisiche. Nuovo kernel 3.10.x. Aggiornamento del font Roboto. Eliminazione della runtime Dalvik in favore di ART (Android Runtime)[100]. Supporto nativo ai 64 bit. Bluetooth 4.1. USB Audio. Burst Mode. Miglioramenti generali sull'autonomia grazie a Project Volta e Battery Saver. Double Tap to Wake, se supportato dall'hardware (es. Nexus 6); inoltre, sempre se supportato, il dispositivo dovrebbe risvegliarsi quando lo prendiamo in mano. Netto miglioramento delle prestazioni grafiche grazie al supporto all'OpenGL ES 3.1 e all'accoppiamento con Android Extension Pack. Miglioramento della fotocamera grazie ad API dedicate. Notifiche Heads Up in applicazioni Fullscreen. Personal Unlocking. Aggiunto il multi-utente su smartphone e la modalità ospite. Nuova LockScreen con notifiche (disattivabili) disposte in base alla loro importanza. Migliorato il backup e il ripristino delle app tramite account Google. Importante miglioramento della sicurezza grazie alla versione 6.0 del Google Play Service[77].

Questa versione di Android è stata distribuita come preview per gli sviluppatori col nome di Android L il 26 giugno 2014 e senza numero di versione. Il nome e il numero definitivo della versione è stato ufficializzato il 15 ottobre 2014[76].

8,7%
5.0.1 Lollipop 3 dicembre 2014 API Level 21. Aggiornamento minore per la risoluzione di alcuni bug[101][102] tra cui il factory reset non voluto sbagliando per alcune volte consecutive la password nel lock screen e il miglioramento della riproduzione dei video su Nexus 7 (2013). vedi su
5.0.2 Lollipop 19 dicembre 2014 API Level 21. Risolti alcuni bug minori (aggiornamento per Nexus 7 (2012)[103]). vedi su
5.1 Lollipop 9 marzo 2015 API Level 22[104]. Aggiunto il supporto nativo a più SIM, il Device Protection (il dispositivo perso/rubato rimane bloccato e inutilizzabile fino a quando non si inserisce la password dell'account Google) e il supporto alla tecnologia VoLTE (Voice over LTE)[105]. Aggiunto il supporto per l'audio ad alta definizione durante le telefonate (solo su reti compatibili). Miglioramenti nella gestione dei quick settings per le reti Wi-Fi e Bluetooth[106]. Correzioni di bug e miglioramenti delle prestazioni varie che affliggevano le precedenti versioni di Lollipop, tra cui la chiusura improvvisa di alcune app, l'eccessivo uso di rete Wi-Fi e diversi problemi legati a esso, le notifiche, l'Ok Google, l'autonomia e la gestione della RAM[107]. Cambiamenti nella palette di colori del Material Design. È ritornata la modalità silenziosa. 23,3%
5.1.1 Lollipop 21 aprile 2015 API Level 22. Miglioramenti vari e bug fix sulla sicurezza. Risolti i problemi del timeout della fotocamera su Nexus 5 e Nexus 6[108]. Ancora non risolto il problema della gestione della memoria (memory leak). vedi su
6.0 Marshmallow 5 ottobre 2015 API Level 23. Gestione personalizzata dei permessi per ogni singola applicazione, collegamenti alle app più veloci, nuovo sistema di risparmio energetico Doze, nuova barra degli strumenti appunti, API per il supporto alle impronte digitali, controlli del volume divisi in: volume suoneria, volume dei media e volume della sveglia.

Google Now On Tap, assenza del tema scuro nelle impostazioni[109], drawer delle applicazioni verticale, modifica dei Quick Settings a nostro piacimento, supporto USB OTG e USB Type-C nativo, disinstallare le app tramite google now launcher, ora la Micro SD potrà essere utilizzata come memoria interna, possibilità di abilitare il DND dai Quick Settings, hotspot Wi-Fi con supporto alla banda 5 GHz, data usage API, bluetooth SAP, hotspot 2.0, supportata la stampa duplex, Android Pay, supporto bluetooth 4.2, schede personalizzate in Chrome, miglioramento predizione del testo, supporto MIDI, miglioramento della scansione wifi e bluetooth, la barra delle notifiche si abbasserà a seconda di dove è posizionato il dito (Tablet), protezione aziende per il ripristino dei dati di fabbrica, maggiori informazioni riguardo all'uso della RAM nelle impostazioni, possibilità di attivare il multi-windows (multi finestra) nelle impostazioni sviluppatore, risolto il problema della gestione della memoria che affliggeva Android Lollipop (memory leak).

Questa versione di Android è stata distribuita con 3 preview[110] per gli sviluppatori col nome di Android M nei mesi precedenti l'uscita definitiva.

31,2%
6.0.1 Marshmallow 7 dicembre 2015 API Level 23. Introdotte nuove emoji (standard Unicode 8) e rinnovata la tastiera. Modifica dell'interfaccia tablet (i tasti virtuali sono disposti in maniera differente, a destra il tasto App recenti e a sinistra i tasti Indietro e Home) e modifiche alla sveglia (ritorna l'opzione Fino alla prossima sveglia)[111]. Miglioramenti della stabilità, bug fix e patch della sicurezza di dicembre 2015[112][113]. vedi su
7.0 Nougat 22 agosto 2016 API Level 24. Nuove API grafiche Vulkan. Nuova grafica nella barra di notifiche con i quick toggle subito visibili. Nuovo menu di multitasking che elimina da sé le app inutilizzate. Supporto nativo al dual-window su smartphone e al multi-window su tablet. Supporto per più locali in contemporanea. Funzione Seamless update che permette al dispositivo di installare automaticamente gli aggiornamenti di sistema. Introdotto il nuovo standard Unicode 9 per le emoji.

Questa versione di Android è stata distribuita con 5 preview[114] per gli sviluppatori col nome di Android N nei mesi precedenti l'uscita definitiva. Il nome e il numero definitivo della versione è stato ufficializzato il 30 giugno 2016[115].

6,6%
7.1.1 Nougat 20 ottobre 2016 API Level 25. Bug fix e patch della sicurezza di dicembre 2016[116]. Diverse migliorie e bug fix per Google Pixel e Google Pixel XL: fix per la segreteria telefonica, per evitare che lo schermo diventi blu in chiamata, per i font delle email troppo piccoli e per il dialer. 0,5%
7.1.2 Nougat 3 aprile 2017 API Level 25. Swipe sul sensore di impronte per aprire le notifiche su Huawei Nexus 6P e LG Nexus 5X. Nuovo menù per le statistiche della batteria. Possibilità di scegliere se impostare sfondi animati per la schermata di blocco o per la home. Ottimizzazione e risoluzione di bug[117][118]. vedi su
8.0

O

21 marzo 2017[119] API Level 26. In via di sviluppo. La versione beta è stata rilasciata il 17 maggio 2017 durante il Google I/O, per i dispositivi della serie Nexus e Pixel supportati.[120]

Panoramica delle versioni pubblicate (Android Wear)

Versione Data di pubblicazione Caratteristiche
4.4W KitKat 25 giugno 2014 API Level 20. Identica a KitKat 4.4, ma con l'aggiunta delle estensioni per dispositivi indossabili. Il 18 marzo 2014 Google ha rilasciato la prima versione, anteprima per gli sviluppatori, denominata Android Wear Developer Preview[121].
4.4W.1 KitKat 6 settembre 2014 API Level 20. Migliorata l'interfaccia della sveglia e la navigazione[122][123].
4.4W.2 KitKat 21 ottobre 2014 API Level 20. Aggiunto il supporto al GPS (per il momento presente solo sul Sony SmartWatch 3), agli auricolari Bluetooth e la riproduzione musicale senza bisogno dello smartphone[124].
5.0.1W Lollipop 10 dicembre 2014 API Level 21. Aggiunto il supporto ufficiale per le watchface con le nuove API (disponibili da adesso come normali app in una sezione apposita del Play Store)[125]. Aggiunta la possibilità di disabilitare il risveglio con movimento del polso[126], e la possibilità di bloccare le notifiche direttamente dallo smartwatch. Aggiunta anche la possibilità di monitorare batteria e memoria interna dall'app Android Wear[127]. Aggiunte nuove modalità: cinema (Theater Mode) con schermo spento e assenza di vibrazione e luce (Sunlight Mode) con luminosità al massimo. Migliorata la navigazione in generale.
5.0.2W Lollipop 19 febbraio 2015 API Level 21. Correzioni di bug e miglioramenti delle prestazioni varie e aggiornamento di Google Play Services[128].
5.1.1W Lollipop 15 maggio 2015 API Level 22. Aggiunto il supporto alla connettività Wi-Fi (ricezione delle notifiche anche se smartphone e smartwatch sono collegati a reti diverse); aggiunte le app always on (sempre visibili anche con l'orologio a riposo), nuove gesture per controllare l'interfaccia tramite movimento del polso, un nuovo app launcher e tanti altri piccoli miglioramenti e bug fix[129][130][131].
6.0W Marshmallow novembre 2015 API Level 23. Aggiunto il supporto alla rete dati mobile[132] che dà la possibilità di effettuare le chiamate senza l'uso di uno smartphone accoppiato e aggiunta del dialer e della pagina per le telefonate recenti[133]. Introdotte nuove gesture con il movimento del braccio e la possibilità di accedere alla funzionalità di Audio Feedback se il dispositivo è dotato di speaker[134]. Correzioni di bug e miglioramenti delle prestazioni varie. Il primo smartwatch ad essere lanciato con questo nuovo aggiornamento è l'LG Watch Urbane 2nd Edition LTE.

Convenzione per i nomi

A volte ci si riferisce erroneamente alle prime versioni di Android coi nomi Alpha e Beta, Apple Pie e Banana Bread, o ancora Angel Cake e Battenberg.

In realtà, per le versioni preliminari di Android precedenti alla 1.0 venivano usate semplicemente delle sigle. Alcune di esse vennero soprannominate "Astro Boy" e "Bender", con l'intenzione di proseguire con nomi derivati da robot[82]. La prima versione di Android (1.0) non aveva alcun nome, la versione 1.1 veniva chiamata internamente Petit Four[82]. Dopo la versione 1.5, Cupcake, tutte le seguenti sono state chiamate ufficialmente con nomi di dolci in ordine alfabetico.

Sul perché è stata scelta questa convenzione, il portavoce di Google Randall Sarafa ha risposto spiegando che si trattava di una sorta inside joke tra i membri del team di sviluppo, della cui origine perfino lui non era sicuro.[135] Durante l'annuncio di Android 4.4, Google ha dichiarato che, dato che smartphone e tablet ci rendono la vita più dolce, ogni versione di Android è chiamata come un dessert, e che, dato che è difficile star lontani dalla cioccolata, avevano deciso di chiamare tale versione come uno dei loro dolciumi al cioccolato preferito: KitKat.[136]

Dispositivi

Smartphone

T-Mobile G1, il primo dispositivo con Android

Il primo dispositivo mobile dotato della piattaforma Android è stato il T-Mobile G1, prodotto dalla società taiwanese HTC e commercializzato dal carrier telefonico T-Mobile. Il prodotto è stato presentato il 23 settembre 2008 a New York, mentre la data di uscita nel mercato è stata il 22 ottobre 2008. Le caratteristiche principali del dispositivo sono: tastiera QWERTY, schermo touchscreen da 3.2 pollici con risoluzione di 320x480 pixel, supporto per la connettività 3G UMTS/HSDPA a 7,2 Mbit/s, 192 MB di RAM e 256 MB di memoria flash.

File:Galaxy Note.jpg
Alcuni smartphone della serie Galaxy Note con a bordo Android Jelly Bean, KitKat e Lollipop

Il prezzo di lancio era di 179 $ negli Stati Uniti, con obbligo di sottoscrizione ad un contratto biennale con il carrier T-Mobile, mentre in Italia il dispositivo è noto con il nome di HTC Dream ed il prezzo iniziale fu di 450 € senza contratto. Il dispositivo è stato inizialmente distribuito negli Stati Uniti d'America il 22 ottobre 2008 e nel Regno Unito il 30 dello stesso mese. In seguito è stato commercializzato in Italia HTC Magic, un dispositivo con caratteristiche simili a quelle del T-Mobile G1, seppur non dotato di una tastiera a livello hardware; in seguito è stato introdotto da parte di Samsung il dispositivo Galaxy dotato di schermo AMOLED in seguito il Galaxy S dotato di una fotocamera senza flash, presente però nel suo successore Galaxy S II.

Il primo dispositivo dotato di Android 2.0 è il Motorola Milestone, presentato nell'ultima parte del 2009 e commercializzato in Italia intorno ai 499 euro.

Il 4 gennaio 2010 è stato distribuito il nuovo Nexus One, dotato di Android 2.1, prodotto da HTC e Google. A stretto giro di posta, la versione 2.1 diventa disponibile anche per gli altri dispositivi Android quali HTC, Motorola e altri.

Nel 2010 sono stati poi presentati e messi in commercio una nuova generazione di smartphone con sistema operativo Android che spinti dal Nexus One hanno caratteristiche tecniche di livello superiore (processore da 1 GHz e RAM fino a 512MB). Tra questi troviamo l'HTC Desire, Samsung Galaxy S e l'LG Optimus Black.

Homescreen di un HTC Evo 4G, che mostra un orologio e widget meteo nella parte superiore, e le scorciatoie app nella parte inferiore

Il 16 dicembre 2010 è stato distribuito il successore di Nexus One: il Nexus S, prodotto da Samsung, è il primo terminale Android a montare in partenza la release 2.3 dell'OS, denominata Gingerbread.

Secondo Wikimedia Foundation, il sistema operativo Android ha una diffusione tra tutti i dispositivi mobili pari al 22,94%[137] (aggiornamento agosto 2011); nell'ultimo trimestre del 2010 Android è riuscito a superare Symbian[senza fonte], l'incontrastato sistema operativo di Nokia per oltre 10 anni, vendendo nel mondo ben 32,9 milioni di smartphone contro i 30,6 milioni di Symbian[senza fonte]. Dal 2008 Android è cresciuto, anno su anno, del 615.1%[senza fonte].

Tablet

Google Nexus 9

Nel 2009 la Toshiba ha presentato il tablet journ.e Touch, con schermo da 7 pollici e sistema Android 2.0.

Durante il 2010 sono stati presentati molti tablet che utilizzano Android come sistema operativo. Quello che ha ricevuto più interesse dei media è stato sicuramente il Samsung Galaxy Tab con la versione 2.2 Froyo, che si è posto in diretta concorrenza con l'iPad di Apple. Il prodotto è stato presentato durante l'IFA di Berlino 2010 ed è stato messo in commercio a partire dalla fine di settembre 2010.[138]

La nuova versione di Android dedicata ai tablet è la versione 3.0 Honeycomb e il primo tablet annunciato ufficialmente con questa versione dell'OS è stato il Motorola Xoom.[66] Il primo tablet ad entrare in commercio con HoneyComb 3.1 preinstallato è stato il Samsung Galaxy Tab 10.1 nel giugno 2011. Sempre in questo periodo c'è da segnalare anche la linea di Acer, Iconia Tab. In generale, a tutto marzo 2012 si è cominciato ad avere una disponibilità sul mercato di dispositivi con versione di sistema 4.0, come l'Asus Transformer Prime anche se inizialmente alcuni venivano proposti con la versione inferiore (aggiornabile) a causa della momentanea mancanza di disponibilità del plugin Flash per questa versione di sistema. Il 28 giugno 2012 è stato presentato il primo tablet di Google prodotto in collaborazione con ASUS, chiamato Nexus 7, inizialmente dotato di Android 4.1 Jelly Bean (il dispositivo Android più supportato, in modo ufficiale, di sempre, supporto terminato con Android 5.1 Lollipop). Il Nexus 10 è stato presentato insieme al Nexus 4 e all'inizio era dotato di Android 4.2 Jelly Bean. La seconda generazione del Nexus 7, con versione 4.3 di Android è stata presentata il 24 luglio 2013. Google ha presentato nell'evento aperto solo ai giornalisti del 29/09/2015 il tablet Pixel C che farà parte della linea Chromebook Pixel ma adotterà come sistema operativo Android 6.0 Marshmallow.

Android Wear

Lo stesso argomento in dettaglio: Android Wear.

Android Wear è una versione del sistema operativo Android progettata per dispositivi indossabili (per lo più smartwatch), grazie al quale è possibile interagire tramite input vocale attraverso l'assistente vocale Google Now, gesture da polso o touchscreen. Il dispositivo comunica, con una companion app installata sullo smartphone, tramite bluetooth. Sono presenti app dedicate installabili da smartphone.

Android TV

Lo stesso argomento in dettaglio: Android TV.

Al Google I/O 2014 è stato presentato Android TV, un sistema operativo specifico per essere usato su TV, grazie al quale è possibile guardare film e serie televisive tramite il Play Movies, YouTube, Netflix o altre piattaforme, con l'unico ausilio dello smartphone con l'app dedicata installata. È possibile l'interazione vocale grazie all'integrazione con Google Now e la trasmissione alla TV di film e programmi da Chromebook, smartphone o tablet.

Il 15 ottobre 2014 Google ha presentato il Nexus Player, prodotto da ASUS, il primo box commercializzato dotato di Android TV[80].

Android Auto

Al Google I/O 2014 è stata presentata la piattaforma Android Auto che, grazie ad accordi con una vasta gamma di case automobilistiche, a partire dal 2015 sarà presente nei computer di bordo di alcune automobili garantendo l'integrazione di alcuni software proprietari come Google Maps per quanto riguarda la navigazione satellitare e Google Now per i comandi vocali.

Google Nexus

Lo stesso argomento in dettaglio: Google Nexus.

I dispositivi targati "Google Nexus", che vengono prodotti su licenza Google da diversi produttori di dispositivi mobile, hanno la caratteristica di avere una versione di Android che viene aggiornata e supportata dalla stessa Google Inc. (la fondatrice del team di Android).[139] Le applicazioni Google sono installate di stock.

Project Brillo

Adattamento di Android per la domotica e, più in generale, per Internet delle cose, Brillo è un progetto lanciato a maggio 2015, che introduce un apposito protocollo chiamato Weave per realizzare la comunicazione tra i vari dispositivi connessioni via Wi-Fi o Bluetooth a basso consumo.[140]

Project Ara (sospeso)

Project Ara è il nome in codice di una iniziativa da parte di Google che mira a sviluppare un hardware libero basato su Android, per la creazione di Smartphone modulari. La piattaforma comprende un telaio strutturale che contiene i moduli dello smartphone da applicare a scelta del proprietario, come ad esempio un display, una tastiera, una batteria supplementare, una fotocamera, speaker e così via. Ciò comporta (almeno fino ad ora) un design poco accattivante, che potrebbe tuttavia passare in secondo piano, viste le potenzialità.

Project Tango

Project Tango è un progetto per smartphone e tablet, basati su Android, che grazie a sofisticati sensori, riesce a creare un modello 3D dell'ambiente.

Google Glass

Lo stesso argomento in dettaglio: Google Glass.

I Google Glass sono un paio di occhiali a realtà aumentata sviluppati da Google e basati sul sistema operativo Android[141]. I primi prototipi sperimentali noti al pubblico sono quelli della Explorer Edition, disponibile agli sviluppatori ad inizio 2013, ed in vendita al pubblico dal terzo trimestre del 2014.

Android One

Durante il Google I/O, Google ha presentato Android One, un progetto destinato ai mercati emergenti e in via di sviluppo. Grazie all'accordo con alcuni produttori tra cui Karbon, Spice e Micromax, Google proporrà una nuova gamma di dispositivi Android di fascia bassa, basati sulla versione stock del sistema operativo, con un sistema di aggiornamenti simile a quello della gamma Nexus. I modelli in questione avranno il supporto Dual Sim, la memoria espandibile tramite micro SD, la radio FM e display all'incirca di 4.5 pollici, tutto a un prezzo inferiore ai 100 euro.

Applicazioni

Le applicazioni (o app) sono la forma più generica per indicare i software applicativi installabili su Android. Esse possono essere scaricate sia dal catalogo ufficiale Google Play, sia da altri cataloghi, come l'Amazon Appstore di Amazon.com[142], o F-Droid che contiene solo software su licenza libera. Le applicazioni Android possono essere installate direttamente a partire da un file APK fornito dal distributore del software.

Per motivi di sicurezza informatica, le applicazioni sono fornite di un sistema di certificazione che verifica l'integrità del pacchetto da installare e la paternità rispetto ad un distributore di software accreditato presso Google.

Android è fornito di una serie di applicazioni preinstallate che vanno dal browser alla radio analogica FM, dal calendario all'applicazione Gmail, dalla calcolatrice al navigatore satellitare Turn-by-Turn e comprende anche la ricerca vocale Google Voice Search con la possibilità di scegliere la lingua in italiano.

Google Play

Lo stesso argomento in dettaglio: Google Play.

Il market ufficiale di Android è Google Play. Il nome attuale è stato adottato a partire dal 6 marzo 2012 mentre la denominazione precedente era "Android Market" . Il market offre la possibilità di acquistare non solo applicazioni, ma, dal 2012, anche libri e musica, rispettivamente Play Books e Play Music. Dal 2013 anche film, e più tardi anche riviste.

Tutti o quasi i dispositivi Android hanno preinstallata una icona denominata Market oppure Google Play. Per accedere al Market è necessario possedere un account Google.

Oltre a poter acquistare sul market utilizzando il servizio Google checkout, è prevista la possibilità di addebitare l'acquisto sul credito prepagato o sull'abbonamento usato per il servizio telefonico; in Italia questa modalità di pagamento è garantita dagli operatori TIM, Vodafone, H3G e Wind.[143][144]

Nell'ottobre 2012 le applicazioni presenti sul market ufficiale Android (Google Play) hanno raggiunto le 700.000 unità[20]. Durante l'estate 2013 se ne sono raggiunte un milione superando quelle disponibili sull'App Store.[senza fonte]

Risorse per gli sviluppatori

Documentazione

Ai fini della programmazione, il team di Android ha specificato nella documentazione ufficiale[145] vari termini per definire i vari tipi di applicazioni.

Attività (activity)

Le attività sono quelle classi scritte in linguaggio Java che compongono una applicazione Android e subiscono una interazione diretta con l'utente. All'avvio di ogni applicazione viene eseguita una activity, la quale può eseguire delle operazioni e può anche aprire/eseguire altre activity. Le attività create estendono la classe Activity da cui ereditano proprietà e metodi.[146]

Servizio (service)

I servizi sono, al contrario, quelle applicazioni che per loro natura svolgono delle operazioni autonome e che vengono richiamati dalle attività al bisogno. Il sistema operativo fornisce alle applicazioni vari servizi già pronti all'uso, per ottenere l'accesso all'hardware o a risorse esterne (ad esempio dei web services di messaggistica). I servizi sono oggetti di classe Services.[146] Un esempio di servizio è com.android.inputmethod.latin, ossia il componente che fa comparire la tastiera quando si seleziona (con i tasti o con un "tocco" sul touch-screen) un campo di input testuale. I servizi possono essere eseguiti o interrotti direttamente dall'utente, sebbene siano eventualità alquanto rare.

Fornitori di contenuti (Content provider)

I content provider sono dei contenitori di dati generati dalle applicazioni che ne forniscono una condivisione; i dati possono essere contenuti nel file system, in un database SQLite, sul web o in una qualunque locazione di dati.[146] La classe alla quale appartengono questi oggetti è ContentProvider.[146]

Ricevitori di trasmissioni diffuse (Broadcast receivers)

I Broadcast receivers permettono alle app di ricevere segnali rivolti a tutte le app in esecuzione, per la condivisione di dati o di segnali di servizio (come ad esempio quello di batteria scarica). I broadcast receivers, sebbene non usino l'interfaccia del sistema, possono far apparire messaggi informativi che si sovrappongono all'output dell'activity corrente.[146]

Frammento (fragment)

Il frammento è quella porzione di codice (quindi di applicazione) che gestisce la parte grafica, in base alle possibilità del dispositivo su cui è stato installato. Il problema dello sviluppatore è evidente quando si trova a dover sviluppare una applicazione che funzioni, ad esempio, sia su un tablet (generalmente questi hanno uno schermo touch-screen di grandi dimensioni) che su alcuni tipi di smartphone (che possono avere 2 schermi e non è detto che entrambi siano touch-screen).

È stato allora deciso, dal team di Android, di creare il concetto di "fragments", ossia una classe tanto generica da permettere lo sviluppo di una applicazione con la parte grafica slegata a quella "decisionale", in modo da rendere agevole l'adattamento dell'applicazione alle varie situazioni. Il programmatore creerà vari frammenti della parte grafica e poi Android la ridisegnerà correttamente per il dispositivo in uso.

L'alternativa per il programmatore sarebbe stato di scriversi da solo un framework che facesse lo stesso lavoro (e l'avrebbe dovuto fare per tutti i suoi progetti) oppure avrebbe dovuto creare più versioni, ognuna destinata a una tipologia di dispositivo, quindi costringendolo a riscrivere diverse parti del proprio software.

Kernel e librerie di base

Questi componenti non sono sostituibili; al massimo sono aggiornabili alcune parti per correggere eventuali problemi di sicurezza. Quando viene distribuita una nuova versione di Android, significa che alcune di queste parti sono state aggiornate o sostituite.

Il file APK

Il software viene solitamente distribuito sotto forma di pacchetto autoinstallante, quindi un file con estensione .APK . Questo non è altro che un file compresso, contenente il software (file con estensione .dex) le sue risorse (immagini, suoni, ecc.) e alcuni file XML. L'utente medio non ha necessariamente bisogno di conoscere tale tipologia di file, dato che il dispositivo gestisce tutta la parte di installazione mediante web services come Google Play.

All'interno di questo file c'è anche un certificato digitale che permette l'installazione di un pacchetto .APK su un dispositivo Android se questo non è stato compromesso o revocato. Il certificato deve essere presente in qualsiasi pacchetto, altrimenti Android non installerà l'applicazione al suo interno.

Il certificato viene creato dallo sviluppatore dell'applicazione, che può scegliere di crearne uno di "debugging" (quindi a uso interno) o di "mercato" (per la distribuzione) e può deciderne la sua diffusione delle copie (libera o limitata). Il distributore (per esempio Google Play) ci aggiungerà poi una sua chiave, che potrà successivamente revocare, se necessario. In caso di revoca, l'applicazione non è più installabile né eseguibile in nessun dispositivo Android.

Se uno sviluppatore indipendente vuole poter distribuire un suo software con pacchetto .APK , senza passare per un web service certificato, può autocertificarsi il certificato. In tal caso, l'utente riceverà un avviso che sta installando un software di questo tipo ("self-signed"); a questo punto potrà annullare l'installazione o farla proseguire a suo rischio.

Classi

La classe è un concetto della programmazione orientata agli oggetti. Per semplificare, consiste nella suddivisione di un software in "componenti", questo per evitare di usare il vecchio paradigma della programmazione procedurale, che consiste nello stilare una lista di istruzioni sequenziali che possono essere poco adattabili per l'aggiunta di ulteriori funzionalità in futuro. Su Android tutti i componenti sono catalogati come classi e richiamabili da altri componenti se il programmatore ne permette questa possibilità.

Per fare qualche esempio, nella versione 3.0 livello 11 delle API di Android, le classi del package android.bluetooth permettono a uno sviluppatore indipendente di includere nella sua applicazione la possibilità di comunicare con la sua stessa applicazione (oppure un'altra) installata su un altro dispositivo mobile, senza i cavi, ma solo via radio. Esiste anche il package android.gesture, con al suo interno le classi che permettono a una applicazione di ricevere le "gestures", ossia i tracciamenti di un dito che sfiora il touch-screen.

Internamente, tutti i processi dei servizi in esecuzione vengono eseguiti con tali nomi e sono visibili, su Android 2.2, nel menu Impostazioni.

Android SDK

Vista con Eclipse di un'applicazione

Le applicazioni di Android sono sviluppate all'interno di un framework, ossia di una struttura dati specifica. La struttura del framework è molto chiara se si utilizza l'ambiente di sviluppo (Android SDK) con Eclipse; il mancato utilizzo di Eclipse, tuttavia, non impedisce di scrivere applicazioni Android funzionanti.

Le applicazioni Android sono caratterizzate da una certa dualità: parti dinamiche scritte in Java e parti statiche scritte in XML. Tipico delle parti statiche possono essere quelle caratteristiche che non cambiano durante l'esecuzione dell'applicazione, come per esempio il colore dello sfondo. Tipico delle parti dinamiche sono invece gli aspetti programmatici come per esempio la gestione degli eventi.

Questa dualità è però solo apparente. Durante l'esecuzione, infatti, l'ambiente di esecuzione o run-time noto come Dalvik virtual machine (DVM), che in tale ambito sostituisce la consueta Macchina virtuale Java (JVM), esegue sempre un programma. Per lo sviluppo delle applicazioni è disponibile una completa documentazione[147] la quale, anche graficamente, riprende la struttura tipica della documentazione Java[148] del sito Oracle.

Creazione, compilazione, emulazione

Tramite l'SDK possiamo passare dalla descrizione della nostra applicazione alla sua effettiva esecuzione sia in emulazione, sia su un dispositivo concreto. Per descrivere l'applicazione al dispositivo prescelto si utilizza il file Manifest.xml. Possiamo quindi affermare che un'applicazione è descritta completamente da una tripletta:

  • Codice Java;
  • Risorse statiche xml;
  • Manifest.xml.

Il codice Java viene poi compilato insieme all'XML per generare un file con estensione .apk: esso contiene il bytecode per la cosiddetta Dalvik Virtual Machine (DVM). I passi successivi servono per installare il bytecode nel dispositivo (ed eseguirlo in emulazione).

Java

Il linguaggio per applicazioni Android è in realtà un "dialetto" del linguaggio Java così come è diversa anche la virtual machine di runtime (Dalvik virtual machine anziché JVM).

Nella tipica applicazione Android non c'è un entry point (il classico metodo "main") da dove normalmente un programma comincia a caricare le sue parti software e avviarsi: tutto è pensato per essere un "componente" pilotato dagli eventi ("Event Driven") dell'hardware o di altri componenti. Questo paradigma fa sì che il programmatore sviluppi per ogni hardware delle routine il più possibile indipendenti. Un vantaggio è che il sistema operativo potrà ottimizzare le risorse, ad esempio rinunciando a caricare componenti (e hardware) non supportati o non prioritari perché inutilizzati.

Inoltre, i componenti possono condividere le loro funzionalità: se ad esempio un videogioco trova installato nel dispositivo un programma che ritocca le fotografie appena scattate con la webcam, può avviarlo (se l'utente concede il permesso) per permettere all'utente di ritoccare tali foto, sceglierne una e "farsela passare" per scopi ludici. Il tutto con una interfaccia grafica perfettamente integrata e quindi senza tante aperture e chiusure di programmi. Ma soprattutto, il programmatore di videogiochi è così sollevato dall'onere di dover creare un sottoprogetto per implementare una funzionalità già esistente sotto altra forma.[149]

Risorse XML

È la parte dichiarativa contenente varie informazioni:

  • informazioni di layout
  • supporto multilingue
Android Manifest XML

Tale file descrive l'applicazione al dispositivo. Il Manifest elenca la lista delle necessità del programma per poter operare nel sistema; per esempio, se una apk richiede la connessione alla Rete, lo notifica nel Manifest e, qualora la connessione non sia disponibile, l'applicazione verrà bloccata a run-time. In generale è opportuno ai fini della sicurezza vagliare attentamente il contenuto del Manifest, soprattutto se proviene da fonte non verificabile, e non installare il programma qualora le richieste del Manifest non siano congrue con gli obbiettivi dichiarati del programma stesso, soprattutto nel caso di richieste di connessione a linee di telefonia.

La Dalvik Virtual Machine

Tramite l'SDK (o meglio: tramite gli strumenti utilizzati mediante l'SDK) trasformiamo la nostra applicazione Android in un codice intermedio chiamato bytecode; questo è esattamente quello che accade abitualmente in Java, ossia:

Codice Java: compilazione: bytecode: VM → esecuzione reale del programma

Questo bytecode viene eseguito da un programma chiamato macchina virtuale (Virtual Machine, VM). Negli ambienti Android non viene utilizzata la Macchina virtuale Java: è stata infatti scritta una nuova VM chiamata Dalvik Virtual Machine (DVM). Ogni terminale Android ha la sua DVM installata, come descritto nell'architettura del sistema, ed il suo compito è solo eseguire il bytecode. Avremo quindi la seguente catena di esecuzione:

Applicazione Android: compilazione: bytecode: DVM → esecuzione reale dell'applicazione Android

L'idea è questa: essendo la DVM uguale per tutti i dispositivi Android, ogni applicazione può essere eseguita su ogni terminale, indipendentemente dal costruttore e dall'implementazione. La conseguenza di questa idea, che è anche una visione, è stata questa: molti costruttori di dispositivi mobili scelgono Android; in questo modo possono fornire ai propri utenti un ambiente condiviso da moltissimi altri utenti.

Platform Development Kit (PDK)

Un supporto che permette agli sviluppatori di ricevere le nuove release Android in anticipo rispetto alla data di commercializzazione, per poter aggiornare le applicazioni più rapidamente.

Concorso a premi

Al fine di favorire lo sviluppo di applicazioni per la piattaforma l'azienda Google ha indetto nel 2008 un concorso a premi legato allo sviluppo di applicazioni per Android. Il concorso a premi assegnerà una serie di premi e incentivi alle applicazioni, la scelta delle applicazioni vincenti verrà effettuata internamente da Google e la somma dei premi è di 10 milioni di dollari. Dal concorso risultano esclusi i programmatori residenti a Cuba, Iran, Siria, Nord Corea, Sudan, Burma (Myanmar), Quebec e Italia.[150] Le nazioni sono state escluse per adempiere alla legislazione statunitense contro il terrorismo o per impedimenti burocratici locali. L'Italia risulta esclusa per via della legislazione locale sulle vincite a premi sebbene la sua esclusione sia ancora in discussione.[151]

Critiche

ComputerWorld ha riportato in un articolo che le condizioni d'uso di Android e dello store delle applicazioni prevedono che "nel caso in cui un qualsiasi prodotto violi l'accordo di distribuzione con gli sviluppatori, Google si riserva il diritto di rimuoverle da remoto su ogni dispositivo a propria discrezione".[152]

Il 23 giugno 2010, Google è ricorsa a questa modalità per motivi di sicurezza e pulizia, dato che le applicazioni erano state create solo a scopo di ricerca.[153]

Nel 2010, un team di sviluppatori si è visto rigettare un'applicazione regolarmente inserita nell'Android Market. L'applicazione in questione, "WiFi Tether for Root Users", è dedicata al tethering (permette ai dispositivi di funzionare come veri e propri router wi-fi per fornire a loro volta connettività wi-fi ad altri apparecchi). La motivazione era che T-Mobile (primo carrier ufficiale di Android) vieta il tethering, quindi le applicazioni a esso dedicate creano un conflitto di interessi. Le notizie scatenarono pesanti polemiche tra gli utenti, indignati dalla poca flessibilità dimostrata da Google, la quale fece pensare che il sistema non fosse in realtà tanto "open" come fu presentato.[154] Il tethering wi-fi fu comunque introdotto ufficialmente con la versione di Android 2.2 "Froyo", integrata nel sistema.[155]

Nel 2012 è emerso come le applicazioni potrebbero estrapolare le foto personali dell'utente (così come altri files salvati come pubblici) dal proprio dispositivo.[156]

Un'altra critica è volta alla funzione sveglia, la quale non si attiva con il terminale spento[157]; tale funzione non dipende dal sistema operativo (e quindi da Android) ma dall'hardware utilizzato. È possibile aggirare tale mancanza tramite l'utilizzo di alcune applicazioni[158].

Facendo una ricerca, un utente Android è venuto a conoscenza che alcuni dispositivi mobili in commercio montano in realtà una versione modificata del sistema operativo, programmata appositamente per inviare dati personali ai server dei produttori del telefonino. L'articolo rivolgeva le critiche principalmente verso la Motorola, colpevole di inviare ai suoi server password di email, social network e dati di utilizzo degli utenti.[159]

Note

  1. ^ Announcing the Android 1.0 SDK, release 1
  2. ^ Software Update Available for the Android Developer Phone
  3. ^ (EN) Richard Stallman, Is Android really free software?, in The Guardian, 19 settembre 2011. URL consultato il 15 dicembre 2015.
  4. ^ Domande ricorrenti su GNU/Linux, su gnu.org. URL consultato il 15 dicembre 2015.
  5. ^ (EN) Chris Hoffman, Android is Based on Linux, But What Does That Mean?, su howtogeek.com, How-To Geek, 12 maggio 2014. URL consultato il 23 gennaio 2017.
  6. ^ netmarketshare.com, https://www.netmarketshare.com/operating-system-market-share.aspx?qprid=8&qpcustomd=1. URL consultato il 26-dic-2016.
  7. ^ Android è ora l'OS più usato al mondo per andare in Rete - HDblog.it, su android.hdblog.it. URL consultato il 6 aprile 2017.
  8. ^ (EN) Android Open Source Project License, su source.android.com. URL consultato il 30 marzo 2016.
    «The preferred license for the Android Open Source Project is the Apache Software License, Version 2.0 ("Apache 2.0"), and the majority of the Android software is licensed with Apache 2.0.»
  9. ^ (EN) Licenses, su source.android.com. URL consultato il 30 marzo 2016.
  10. ^ John Markoff, I, Robot: The Man Behind the Google Phone, New York Times, 4 novembre 2007. URL consultato il 14 ottobre 2008.
  11. ^ Scott Kirsner, Introducing the Google Phone, in The Boston Globe. URL consultato il 24 ottobre 2008.
  12. ^ T-Mobile Brings Unlimited Multiplayer Gaming to US Market with First Launch of Nokia N-Gage Game Deck, su nokia.com, Nokia, 23 settembre 2003. URL consultato il 5 aprile 2009.
  13. ^ Ben Elgin, Google Buys Android for Its Mobile Arsenal, in Bloomberg Businessweek, 17 agosto 2005. URL consultato il 23 aprile 2009.
  14. ^ Ben Elgin, Google Buys Android for Its Mobile Arsenal, su businessweek.com, Business Week, 17 agosto 2005. URL consultato il 7 novembre 2007.
  15. ^ (EN) T-Mobile Unveils the T-Mobile G1 - the First Phone Powered by Android, HTC, 23 settembre 2008. URL consultato il 17 febbraio 2012 (archiviato dall'url originale il 12 luglio 2011). AT&T's first device to run Android was the Motorola Backflip.
  16. ^ La storia dei nomi di Android, prima dell'avvento di Cupcake: 1.0 e 1.1
  17. ^ https://tecnouser.net/android-n-non-sta-nutella-nougat/
  18. ^ Edmondo Lopez e Diego Magnani, Cos'è Android? La storia del sistema operativo mobile di Google, su androiditaly.com, Android Italy, 4 aprile 2011.
  19. ^ Android torna open source, su ZEUS News. URL consultato il 14 giugno 2017.
  20. ^ a b Google Play Matches Apple's iOS With 700,000 Apps, su tomsguide.com.
  21. ^ Google's open source OS made the world of mobile devices a better place., su Canalys, 5 novembre 2012. URL consultato il 5 febbraio 2013.
  22. ^ A proposito del progetto Android Open Source - Android Open Source, su source.android.com. URL consultato il 20 febbraio 2012.
  23. ^ a b Filosofia e obiettivi - Android Open Source, su source.android.com. URL consultato il 20 febbraio 2012.
  24. ^ # compatibilità Domande frequenti, su source.android.com. URL consultato il 20 febbraio 2012.
  25. ^ Tim Bray, Che cosa è Android, su tbray.org, 24 novembre 2010. URL consultato il 10 ottobre 2012.
  26. ^ Agam Shah, Google Android 4.0 portato su processori x86, su Computerworld, International Data Group, 1º dicembre 2011. URL consultato il 10 ottobre 2012.
  27. ^ Ryan Paul, Dream(sheep++): A developer's introduction to Google Android, su Ars Technica, 23 febbraio 2009. URL consultato il 15 febbraio 2012.
  28. ^ David Meyer, Linux developer explains Android kernel code removal, su zdnet.com, ZDNet, 3 febbraio 2010. URL consultato il 20 febbraio 2012.
  29. ^ Greg Kroah-Hartman, Android and the Linux kernel community, su kroah.com, 2 febbraio 2010. URL consultato il 20 febbraio 2012.
    «Google shows no sign of working to get their code upstream anymore. Some companies are trying to strip the Android-specific interfaces from their codebase and push that upstream, but that causes a much larger engineering effort, and is a pain that just should not be necessary.»
  30. ^ Brian Proffitt, Garrett's LinuxCon Talk Emphasizes Lessons Learned from Android/Kernel Saga, su linux.com, Linux.com, 10 agosto 2010. URL consultato il 21 febbraio 2012.
  31. ^ Brian Proffitt, DiBona: Google will hire two Android coders to work with kernel.org, su www.zdnet.com, 15 aprile 2010. URL consultato il 20 febbraio 2012.
  32. ^ Steven J. Vaughan-Nichols, Android / Linux kernel lotta continua, su blogs.computerworld.com, Computerworld, 7 settembre 2010. URL consultato il 2012 - 02-20.
  33. ^ Corbet Jonathan, Autosleep e wakelocks, su lwn.net.
  34. ^ Steven J. Vaughan-Nichols, Linus Torvalds su Android, la forcella Linux, su ZDNet. com, 18 agosto 2011. URL consultato il 15 febbraio 2012.
  35. ^ Swapnil Bhartiya, Linux 3.3 ti consente di avviare il sistema in Android: Greg-KH, su muktware.com, 2 gennaio 2012. URL consultato il 15 febbraio 2012.
  36. ^ a b Touch Devices - Android Open Source, su source.android.com. URL consultato il 15 settembre 2012.
  37. ^ Real Racing 2 Speeds Into The Android Market – Leaves Part 1 In The Dust, su phandroid.com, 22 dicembre 2011. URL consultato il 15 settembre 2012.
  38. ^ Widgets, su developer.android.com. URL consultato il 15 settembre 2012.
  39. ^ UI Overview - Android Developers, su developer.android.com. URL consultato il 15 settembre 2012.
  40. ^ Notifications - Android Developers, su developer.android.com. URL consultato il 15 settembre 2012.
  41. ^ What is Android? da Android Developers
  42. ^ Laura June, Toshiba AC100 Android smartbook hits the United Kingdom, su Engadget, 6 settembre 2010. URL consultato il 20 febbraio 2012.
  43. ^ Sean Hollister, Sony Smart Watch (aka Sony Ericsson LiveView 2) hands-on, su theverge.com, The Verge, 10 gennaio 2012. URL consultato il 16 febbraio 2012.
  44. ^ Rik Myslewski, Android-powered touchscreen Wi-Fi headphones, su theregister.co.uk, 12 gennaio 2011. URL consultato il 16 gennaio 2012.
  45. ^ Car Player Android-Car Player Android Manufacturers, Suppliers and Exporters on, su alibaba.com. URL consultato il 20 febbraio 2012.
  46. ^ Android Everywhere: 10 Types of Devices That Android Is Making Better, su androidauthority.com, 26 febbraio 2012. URL consultato il 15 settembre 2012.
  47. ^ Andrew Cunningham, Cosa è successo all'Android Update Alliance?, su arstechnica.com, Ars Technica, 27 giugno 2012. URL consultato il 15 settembre 2012.
  48. ^ John Leyden, Security takes a backseat on Android in update shambles, su Theregister.co.uk, 22 novembre 2011. URL consultato il 24 gennaio 2015.
    «Their interest is in selling newer phones and carrier contracts; they are not incentivised to prioritise security for existing phones.»
  49. ^ a b Android antivirus apps are useless, here’s what to do instead, su extremetech.com.
  50. ^ Google Play, nuova protezione anti-malware, su webnews.it, 8 febbraio 2013. URL consultato l'8 febbraio 2013.
  51. ^ McAfee Threats Report:Second Quarter 2012 (PDF), su mcafee.com, McAfee, 7 settembre 2012. URL consultato il 7 settembre 2012.
  52. ^ (EN) Ron Amadeo, Android L will have device encryption on by default, su arstechnica.com, Ars Technica, 18 settembre 2014. URL consultato il 21 marzo 2016.
  53. ^ CyanogenMod 6 stabile per Nexus One e HTC Magic
  54. ^ AndroidPedia
  55. ^ (EN) Platform Versions, su developer.android.com, Android Developers, 5 giugno 2017. URL consultato il 6 giugno 2017.
  56. ^ In other IDEs
  57. ^ Folders on the Android desktop, and how to rename them
  58. ^ Android SDK 1.1
  59. ^ Android SDK 1.5
  60. ^ Android SDK 1.6
  61. ^ Android SDK 2.0 è qui
  62. ^ Android 2.0, Release 1
  63. ^ Android SDK 2.0.1
  64. ^ Android SDK 2.2
  65. ^ Android SDK 2.3
  66. ^ a b Motorola Xoom presentato ufficialmente
  67. ^ Android SDK 3.0 Preview
  68. ^ Technology Android - Rilasciato SDK Android 3.0
  69. ^ SDK 3.0 rilasciata ufficialmente
  70. ^ Technology Android - GOOGLE Rilascia l'SDK per Android Honeycomb 3.1
  71. ^ Technology Android - GOOGLE: Ecco il video della presentazione
  72. ^ Technology Android - ANDROID: Ecco come saranno i tablet con Ice Cream Sandwich
  73. ^ Technology Android - ANDROID: SDK raggiunge la versione 17, ora l'emulatore supporta x86 nativamente
  74. ^ Galaxy Nexus non riceverà Android 4.4 KitKat
  75. ^ Google: Android KitKat ora gira sul 21% di tutti i dispositivi Android, su techzoom.it.
  76. ^ a b Svelata la statua di Android 5.0 Lollipop (foto e video) (Aggiornato)
  77. ^ a b Android 5.0 Lollipop: tutte le novità e i dispositivi aggiornati
  78. ^ Motorola Nexus 6: caratteristiche tecniche, disponibilità e prezzo
  79. ^ HTC Nexus 9: caratteristiche tecniche, disponibilità e prezzo
  80. ^ a b Nexus Player ufficiale: il box con Android TV di Google e ASUS
  81. ^ https://developer.android.com/about/dashboards/index.html
  82. ^ a b c d A History of Pre-Cupcake Android Codenames, su Android Police, 17 settembre 2012. URL consultato il 21 maggio 2017.
  83. ^ Adobe abbandona Flash su Android
  84. ^ Android 4.3.1 arriva su Nexus 7 2013 LTE
  85. ^ Google pubblica binari e factory image per il Nexus 7 2013 LTE con Android 4.3.1
  86. ^ Android 4.4 KitKat in tutte le sue funzionalità
  87. ^ » Android 4.4 KitKat ufficiale: ottimizzato per dispositivi con 512 MB di RAM, ma non sarà aggiornato il Galaxy Nexus » News Android - AndroidWorld.it
  88. ^ Android 4.4 KitKat: quando anche i disegni dei dipendenti Google devono aggiornarsi
  89. ^ Android supera il miliardo di attivazioni e festeggia con l’annuncio di Android 4.4 KitKat
  90. ^ Android 4.4 KitKat: è questa la prossima versione di Android
  91. ^ » Google annuncia Android 4.4.1 per Nexus 5, esaltando la modalità HDR+ » Aggiornamenti - AndroidWorld.it
  92. ^ Google annuncia Android 4.4.1 per Nexus 5, esaltando la modalità HDR+, androidworld.it, 5 dicembre 2013. URL consultato il 5 dicembre 2013.
  93. ^ » Android 4.4.2 OTA già disponibile per tutti i Nexus (sì, avete letto bene. Di nuovo.) » Aggiornamenti - AndroidWorld.it
  94. ^ Google rilascia Android 4.4.2: download per tutti i Nexus – Tutto Android
  95. ^ Android 4.4.2 KitKat, partiti gli aggiornamenti over-the-air sui Nexus
  96. ^ Android 4.4.3 introduce una nuova versione del dialer » Software - AndroidWorld.it
  97. ^ Google rilascia Android 4.4.4 KitKat: factory images e download OTA per Nexus 5 » News Android - AndroidWorld.it
  98. ^ Google conferma il rollout di Lollipop a partire da oggi
  99. ^ Android L introdurrà le API livello 21 | Ufficiale - HDblog.it
  100. ^ Giorgio Attorresi, Google presenta Android Lollipop 5.0, su zoomingin.net.
  101. ^ Google rilascia Android Lollipop 5.0.1 per i tablet Nexus - hdblog.it
  102. ^ Android 5.0.1 factory image disponibili per Nexus 7 2013, Nexus 9 e Nexus 10
  103. ^ Android 5.0.2 Lollipop è ufficiale, al momento solo su Nexus 7 (2012)
  104. ^ Le app di Android 5.1 disponibili al download, ma non potrete installarle
  105. ^ Android 5.1 Lollipop: tutte le novità
  106. ^ Android 5.1 Lollipop è ufficiale, scopriamo tutte le novità (Aggiornato: aggiunto AOSP e FI) - Tutto Android
  107. ^ Android 5.1 Lollipop
  108. ^ Android 5.1.1 changelog: fix per il memory leak non avvistato
  109. ^ Android Marshmallow, niente tema scuro nella versione definitiva - HDblog.it
  110. ^ La terza preview di Android M sarà una build quasi definitiva
  111. ^ http://www.androidworld.it/2015/12/07/android-6-0-1-marshmallow-ufficiale-357474/
  112. ^ http://www.androidworld.it/2015/12/02/motorola-nexus-6-aggiornamento-android-6-0-1-356150/
  113. ^ http://www.tuttoandroid.net/android/android-6-0-1-marshmallow-inizia-ad-arrivare-sul-nexus-6-326669/
  114. ^ http://www.androidworld.it/2016/03/10/android-n-developer-preview-1-video-prova-381527/
  115. ^ http://www.androidworld.it/2016/06/30/android-nougat-nome-409339/
  116. ^ http://www.androidworld.it/2016/12/05/android-7-1-1-ota-factory-image-445114/
  117. ^ http://www.androidworld.it/2017/01/31/android-7-1-2-beta-454558/
  118. ^ Google rilascia Android 7.1.2 Nougat per i Google Pixel e i Nexus supportati - Tutto Android, in Tutto Android, 3 aprile 2017. URL consultato il 3 aprile 2017.
  119. ^ (EN) Android O Developer Preview, su developer.android.com. URL consultato il 21 maggio 2017.
  120. ^ [Update: Factory images and OTA files] Android beta registration is back, O Dev Preview 2 rolling out now, su Android Police, 17 maggio 2017. URL consultato il 21 maggio 2017.
  121. ^ Android Wear Developer Preview Now Available | Android Developers Blog
  122. ^ Android Wear 4.4W.1: ecco il changelog
  123. ^ Anche LG G Watch si aggiorna alla 4.4W.1 ma con build lievemente diversa
  124. ^ Android Wear 4.4W.2: ecco tutte le novità (foto e video)
  125. ^ Android Wear Lollipop è realtà con il supporto alle watchface e altro
  126. ^ Android Wear 5.0.1 ci permette di disabilitare il risveglio con movimento del polso
  127. ^ Android Wear 5.0 Lollipop è ufficiale: tante novità per gli smartwatch, e non solo - Tutto Android
  128. ^ Android Wear 5.0.2 arriva su G Watch R, Moto 360 e Gear Live
  129. ^ Android Wear 5.1.1 Lollipop, gli aggiornamenti sono iniziati da ASUS ZenWatch - HDblog.it
  130. ^ Android Wear ora con Wi-Fi, app always-on, emoji e nuove gesture
  131. ^ Android Wear 5.1.1 sta arrivando su ASUS ZenWatch
  132. ^ http://www.androidworld.it/2015/11/12/android-wear-supporto-rete-cellulare-350519/
  133. ^ http://www.androidworld.it/2015/11/13/lg-watch-urbane-2nd-edition-lte-viene-venduto-con-marshmallow-foto-351187/
  134. ^ http://www.androidworld.it/2015/11/14/android-wear-gesture-nuove-351244/
  135. ^ (EN) By John D. Sutter, CNN, Why does Google name its Android products after desserts?. URL consultato il 21 maggio 2017.
  136. ^ (EN) Android Nougat: Here’s why Google names the OS after sweets, in The Indian Express, 1º luglio 2016. URL consultato il 21 maggio 2017.
  137. ^ Wikimedia Traffic Analysis Report - Operating Systems
  138. ^ Samsung Galaxy Tab, foto e video del tablet disponibile a metà Settembre.
  139. ^ Nexus S review
  140. ^ Google announces Brillo, an operating system for the Internet of Things (Consultato il 30 luglio 2015.)
  141. ^ XE16 release notes - Google Glass Help
  142. ^ Amazon Appstore disponibile in Italia come App shop, 30 agosto 2012. URL consultato il 5 febbraio 2013.
  143. ^ Google Play Store: Wind conferma i pagamenti con il credito telefonico, 7 giugno 2013.
  144. ^ Metodi di pagamento accettati - Guida di Google Play, su support.google.com. URL consultato il 16 marzo 2016.
  145. ^ The Developer's Guide, su developer.android.com. URL consultato il 2 marzo 2012.
  146. ^ a b c d e Application Fundamental, su developer.android.com. URL consultato il 2 marzo 2012.
  147. ^ Package Index | Android Developers
  148. ^ Java Platform SE 7
  149. ^ Application Fundamentals | Android Developers
  150. ^ Concorso Android, Google cancella l'Italia
  151. ^ Android in Italia, Google ci pensa troppo? 16 novembre 2007
  152. ^ Google cancella da remoto applicativi su Android 17 ottobre 2008
  153. ^ Exercising Our Remote Application Removal Feature
  154. ^ Google: Android non è un router 2 aprile 2009
  155. ^ Google Android 2.2 Froyo: Tethering, Wi-Fi hotspot support | ZDNet
  156. ^ iOS e Android: le vostre foto non sono al sicuro
  157. ^ Nuovi Smartphone: niente sveglia a telefono spento
  158. ^ Sveglia da telefono spento su Galaxy S e Galaxy S II
  159. ^ Motorola Is Listening - Projects - Beneath the Waves

Bibliografia

  • Andreucci Giacomo, Applicazioni iOS e Android con Google Maps, Edizioni FAG, Milano, 2011, pp. 348.
  • Carli Massimo, Sviluppare applicazioni per Android, Edizioni Apogeo, 2011, pp. 416.
  • Stark Jonathan, Sviluppare applicazioni per Android con HTML, CSS e JavaScript, Ed. Tecniche Nuove, 2011, pp. 159.

Voci correlate

Altri progetti

Collegamenti esterni

Template:Dispositivi Android

Controllo di autoritàVIAF (EN316754250 · LCCN (ENn2009043077 · GND (DE7635475-1 · BNE (ESXX4178968 (data) · BNF (FRcb16174153f (data) · J9U (ENHE987007460408105171