Visita GenyMotion (Ottieni un emulatore)
Installazione Android Studio
È richiesto che sia installato anche il Java Development Kit Versione 6, o il JDK6.
Scaricare Android Developer Tools (o ADT Bundle)
Per installare Android Studio su Windows:
avviare il file .exe scaricato
procedere con l'installazione guidata.
Potrebbe essere necessario impostare una variabile di ambiente (se il processo di installazione non trova Java).
In questo caso aprire il menu Start -> Computer -> Proprietà di sistema -> Impostazioni di sistema Avanzate.
Aprire la scheda Avanzate. Premere il pulsante Variabili di ambiente ed aggiungere la nuova variabile JAVA_HOME che punta alla cartella contenente il JDK,
ad esempio C:\Program Files\Java\jdk1.8.0_21.
Nota: gli strumenti vengono installati nella cartella C:\Utenti\<nome_Computer>\sdk.
I progetti verranno salvati nella cartella C:\Utenti\nomeComputer\AndroidStudioProjects.
Nella cartella Utenti->Android lanciare l'SDK Manager per scaricare gli strumenti aggiornati. Oppure Nel menu Tools Lanciare SDK Manager e premere il pulsante Install Updates. Accettare le condizioni di licenza e continuare.
Il modello del sistema operativo Android viene rappresentato secondo un'architettura di moduli sovrapposti. Nel modello stratificato i processi residenti ad un certo livello offrono servizi ai processi di livello superiore e chiedono servizi ai processi del livello inferiore. I processi del livello utnte si trovano sullo stato più esterno, mentre i processi del sistema operativo risiedono sul livello più interno.
Android è stato progettato per i dispositivi mobili, come telefoni e tablet.
Al livello più basso si trovano i processi del sistema operativo per la gestione del dispositivo su richiesta delle applicazioni, ad esempio la composizione del numero chiamato, la consultazione della rubrica, la navigazione su web.
Esiste anche un ambiente di sviluppo, STK (Software Development Kit), per creare applicazioni per Android.
La figura mostra il modello stratificato di Android.
Nella parte inferiore si trova il nucleo del sistema operativo (Linux kernel).
Al di sopra di questo livello risiedono le librerie di sistema e il sistema di esecuzione di Android (runtime system). Al livello superiore c'è un vasto insieme di strutture applicative (application framework) disponibili per lo sviluppo di nuove applicazioni. Al livello più esterno risiedono le applicazioni utente
Questo livello fornisce i servizi di gestione dell'hardware. In particolare, a questo livello, viene applicato uno schema di protezione per limitare l'accesso ai dati e alle risorse e consentirlo solo ai processi che posseggono l'adeguato livello di autorizzazione. Vi sono i moduli per la gestione della memoria, dei processi, del sistema di archiviazione e della comunicazione sulla rete. Vi sono i driver per la gestione dell'hardware in dotazione al dispositivo, ad esempio la memoria ausiliaria, la radio, la fotocamera. Oltre ai consueti servizi offerti dal nucleo del sistema operativo, il kermel di Android include alcuni componenti particolari, quali ad esempio il sistema di risparmio energetico (perchè i dispositivi mobili funzionano a batteria), il sistema di gestione e condivisione della memoria, un meccanismo di comunicazione tra processi chiamato binder, che permette ai processi di condividere dati e servizi.
Il livello superiore contiene molte librerie di sistema. Da queste dipendono le prestazioni delle attività del dispositivo mobile. Ci sono le funzioni per aggiornare il display, per riprodurre correttamente una pagina web. Le funzioni di sistema creano i thread, svolgono le operazioni matematiche, riservano lo spazio di memoria ed altro.
C'è il surface manager per aggiornare il display. Un media framework per riprodurre un file audio o un file video. Il Webkit per interpretare e mostrare le pagine web. La libreria Open GL, per una grafica ad elevate prestazioni, SQLite per la gestione dei database relazionali.
Accanto alle librerie di sistema c'è il run time di Android, che consente di scrivere ed eseguire applicazioni.
Due importanti componenti del run time sono le librerie Java e la Dalvik Virtual Machine. Le applicazioni per Android sono scritte nel linguaggio di programmazione Java, quindi per agevolare la codifica, Android fornisce il software di base per la gestione delle strutture dati, gestire la concorrenza e gestire i file. Le librerie di run time inoltre, comprendono il software per gestire il ciclo di vita delle applicazioni per dispositivi mobili, le operazioni di accesso a Internet.
L'altro componente del run time è la Dalvik Virtual Machine. È il software che si occupa di eseguire le applicazioni. Il progettista scrive un'applicazione in Java, poi il compilatore produce vari file in formato bytecode. Uno strumento chiamato DX trasforma i file in formato bytecode in un unico file in un formato detto, generalmente, denominato classes.dex. Il file dex viene completato specificando i riferimenti alle risorse e installato sul dispositivo. Infine, quando l'utente manda l'applicazione in esecuzione, la Dalvik virtual machine eseguirà il file classes.dex
Il motivo per cui vi sono più traduzioni intermedie, è che la Dalvik virtual machine è stata progettata per operare in un ambiente con risorse limitate, come quello di un dispositivo mobile. Questi, infatti, hanno una CPU più lenta, memo memoria disponibile, una batteria di durata limitata.
Risalendo di un livello si trova la struttura delle applicazioni, ovvero i componenti di base che ogni applicazione usa. Ad esempio i componenti dell'interfaccia grafica, come i pulsanti e le icone.
Il package manager è un database delle applicazioni installate sul dispositivo mobile. Quelle che vengono mostrate quando si preme l'icona delle applicazioni nella schermata principale. L'utilità di questo database, ad esempio, riiede nella possibilità di consentire alle applicazioni di condividere i dati, o realizzare una cooperazione tra le applicazioni.
Un altro importante componente è il window manager. Quando si lancia un'applicazione, si deve aprire una finestra in cui eseguirla, e questa deve combinare lo spazio che occupa sullo schermo con le informazioni sempre presenti, la potenza del segnale WiFi, il livello della batteria, la data e l'ora ecc. Inoltre l'applcazione apre potrebbe aprire anche altre finestre (menu e dialog box).
Nella view sono disponibili i principali componenti della GUI: pulsanti, caselle di testo, ecc.
Il "resource manager" gestisce le risorse che fanno parte di una applicazione. Ad esempio le stringhe, le immagini, i file di layout. Ad esempio per personalizzare le applicazioni le stringhe possono essere scritte in diverse lingue.
Il componente "activity manager" corrisponde allo scehrmo di una singola interfaccia utente. Le applicazioni consistono di numerose schermate attraverso le quali l'utente può spostarsi. L'Activity Manager aiuta a coordinare questo tipo di navigazione nell'ambito di un'applicazione. Ad esempio, per ascoltare un brano musicale, si tocca l'icona delle applicazioni, si tocca l'icona corrispondente al riproduttore musicale, e si apre l'applicazione. Questa mostra i titoli disponibili sul telefono, o sul dispositivo mobile, ad esempio ordinati per artista, Toccando l'icona di un album si avvia un'altra attività che mostra una nuova interfaccia. Premendo il pulsante "Indietro" si torna all'attività precedente e si cambia album, toccando un titolo si avvia una nuova attività che porta ad un'altra interfaccia.
I componenti "content providers" sono dei database che consento di condividere dati strutturati tra le applicazioni. Ad esempio usando l'applicazione telefono si accede alla rubrica dei contatti e si usano i contatti per comporre una chiamata. Ma siccome i content provider sono progettati per essere usati da più applicazioni, si pu` anche inviare un messaggio tramite il telefono o tramite un social network.
Il location manager consente alle applicazioni di ricevere informazioni relative alla posizione e al movimento.
Il Notification manager consente alle applicazioni di scrivere informazioni nella barra delle notifiche. Ad esempio quando si riceve la notifica di un messaggio ricevuto durante una telefonata.
Al livello più esterno risiedono le applicazioni utente.