Storia di Android

Android

Android: un sistema operativo per dispositivi mobili organizzato in un’architettura software che include un sistema operativo di base, i middleware per le comunicazioni e le applicazioni di base.

Android

Android

La storia di Android

Android Inc. è stata fondata nell’ottobre 2003 da Andy Rubin (co-fondatore di Danger), Rich Miner (co-fondatore di Danger e di Wildfire Communications), Nick Sears (vicepresidente di T-Mobile) e Chris White (principale autore dell’interfaccia grafica di Web TV), per lo sviluppo di quello che Rubin definí, « […] dispositivi cellulari più consapevoli della posizione e delle preferenze del loro proprietario» (da ciò probabilmente scaturì la scelta del nome Android). 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 e rifiutò la partecipazione nella società.
Il 17 agosto 2005 Google ha acquisito l’azienda (passo più importante nella storia di Android), 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.
Dal 2008 gli aggiornamenti di Android per migliorarne le prestazioni e per eliminare i bug delle precedenti versioni sono stati molti. Ogni aggiornamento o release, similmente a quanto accade per molte versioni di Linux, segue un ordine alfabetico e una precisa convenzione per i nomi, che in questo caso sono quelli di dolciumi: la versione 1.5 prese il nome Cupcake che venne seguita dalla versione 1.6 Donut, la 2.1 venne chiamata Eclair, la 2.2 Froyo, la 2.3 Gingerbread, la 3.0 Honeycomb, la 4.0 Ice Cream Sandwich, la 4.1 Jelly Bean e infine la versione più recente è la 4.4 che prende la denominazione Kit Kat in seguito ad un accordo con la Nestlé.
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 si caratterizza per la struttura open source (escluse alcune versioni intermedie), e il suo basarsi su kernel Linux. La caratteristica open source ed il tipo di licenza (Licenza Apache) permette 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 con una versione modificata del linguaggio di programmazione Java.
Nell’ottobre 2012 le applicazioni disponibili presenti sul market ufficiale Android (Google Play) hanno raggiunto le 700.000 unità. 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.

Il progetto Open Source Android è guidato da Google, e con il compito di mantenimento e allo sviluppo di Android Secondo il progetto “l’obiettivo è quello di creare un vero e proprio successo, in modo da migliorare l’esperienza mobile per gli utenti” AOSP mantiene anche la compatibilità Android programmi, la definizione di un dispositivo “Android compatibile”, come quella che possibile eseguire qualsiasi applicazione scritta da sviluppatori di terze parti che utilizzano il Android SDK e NDK. “, per prevenire incompatibili implementazioni Android Il programma di compatibilità è facoltativo e gratuitamente, con la suite di test di compatibilità anche gratuito e open-source.

Il kernel Linux

Android è costituito da un Kernel basato sul 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 utilizza 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 La piattaforma hardware principale di Android è l’architettura ARM. L’architettura x86 è supportata grazie al progetto Android x86 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 di applicazioni Linux o librerie per Android.[23] 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 l’API multimediale SDL sotto Android richiama metodi di 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).
Alcune funzionalità implementate da Google hanno contribuito al kernel Linux, in particolare una funzione di gestione dell’energia denominata wakelocks, che però è stata respinta dagli sviluppatori del kernel mainline, in parte perché gli sviluppatori del kernel hanno ritenuto che Google non manifestasse alcuna intenzione di mantenere il proprio codice. Anche se Google ha annunciato nel mese di aprile 2010 che avrebbero assunto due dipendenti per lavorare con la comunità del kernel Linux, 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
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). 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” 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.
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.

Fonte: http://it.wikipedia.org/wiki/Android

Visitatela per rivedere qualche altro particolare sulla storia di Android