ANDROID 4.2 JELLY BEAN Installazione e configurazione dell’ambiente INTRODUZIONE Per sviluppare applicazioni in grado di girare su sistemi Android servono tre cose: il Java JDK (Java Development Kit), che contiene tutti gli strumenti necessari a sviluppare nel linguaggio Java. Questo strumento è indispensabile in quanto Android si programma in Java, e senza un JDK non è possibile compilare il codice. un apposito kit di sviluppo (SDK), che sia completo di emulatore, librerie e documentazione. un IDE (Eclipse) con relativo add-on denominato Android Development Tools for Eclipse (ADT), utile per lavorare in un ambiente integrato. Tutto questo è open source, quindi disponibile gratuitamente e per tutte le piattaforme (i.e. Windows, Linux, MacOS). L’IDE (ambiente di sviluppo integrato) utilizzato, come detto in precedenza, è Eclipse, un software open source disponibile per Windows, Linux e Mac. Eclipse non è l’unico IDE che si può utilizzare per sviluppare su Android, ce ne sono altri come ad esempio IntelliJ ed Android Studio, ma l’utilizzo di Eclipse è molto consigliato in quanto largamente supportato. JAVA JDK L’ultima versione del Java Development Kit la si può trovare sul sito Oracle, all’indirizzo http://www.oracle.com/technetwork/java/javase/downloads/index.html. Dopo aver accettato la licenza per Java SE si può scaricare la versione adatta in base al sistema operativo adottato. Una volta scaricato il pacchetto basterà semplicemente installarlo (attenzione che se si cambia la destinazione bisogna ricordarsi il percorso, in quanto servirà in uno degli step successivi). Su Linux bisogna accertarsi di avere installato Java della Oracle oppure openjdk-7-jre. Se nessuno dei due è installato si può installare openjdk-7-jre eseguendo da terminale la seguente istruzione: sudo apt-get -y install openjdk-7-jre Mentre per installare Java della Oracle bisogna eseguire da terminale i seguenti comandi: sudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java7-installer 1 Michele Spiller – 9 febbraio 2014 ANDROID 4.2 JELLY BEAN Installazione e configurazione dell’ambiente ADT BUNDLE Esiste un apposito pacchetto, denominato “ADT Bundle”, che fornisce tutto il necessario per iniziare a sviluppare applicazioni Android. Questo pacchetto contiene Eclipse con il plugin ADT, l’Android SDK Tools, l’emulatore e la piattaforma Android. E’ possibile scaricarlo collegandosi all’indirizzo http://developer.android.com/sdk/index.html, cliccando su “Download the SDK, ADT Bundle” (accettare la licenza d’uso e selezionare la versione, se a 32 o a 64 bit). In questo modo si scaricherà tutto quel che serve per cominciare a sviluppare la prima applicazione Android. L’installazione del kit è veramente semplice: l’unica cosa di cui bisogna accertarsi, prima di procedere, è di soddisfare i requisiti di base. In particolare è richiesto che il sistema disponga già di un Java SDK (JDK). Se tutti i requisiti richiesti sono soddisfatti scompattare il file .zip scaricato precedentemente in una directory a scelta. Fatto questo, avviare Eclipse. L’IDE è già caricato con l’Android Development Tools (ADT) e l’Android SDK. Attenzione su Linux a 64 bit! L’SDK di Android è a 32 bit, quindi su un sistema Linux a 64 bit è necessario avere il pacchetto ia32-libs installato. Su Ubuntu è possibile farlo eseguendo da terminale il comando sudo apt-get install ia32-libs . Inoltre, su sistemi Linux, bisogna avviare Eclipse come super-user (root), quindi, con il terminale, posizionarsi nella directory di installazione dell’IDE ed eseguire i comandi sudo su e ./eclipse. SDK MANAGER Per installare ulteriori pacchetti, avviare SDK Manager (dall’interno di Eclipse andando su “Window Android SDK Manager”, oppure cliccando sulla relativa icona indicata in Fig. 1). Figura 1: Icona SDK Manager Se Eclipse dovesse restituire un errore si vada nel menu “Window Preferences Android” e si verifichi che alla voce “SDK Location” sia indicato effettivamente il percorso dell'SDK di Android. Se non lo fosse, lo si cambi. Selezionare la versione di Android da installare, con relativa documentazione, SDK Platform e Google APIs. La versione di Android presa in considerazione in questo tutorial è la 4.2.2 denominata Jelly Bean, quindi selezionare i relativi pacchetti. Inoltre selezionare (se non già installati) i vari Tools, ovvero Android SDK Tools, Android SDK Platform-tools e Android SDK Build-tools. Fatto questo, 2 Michele Spiller – 9 febbraio 2014 ANDROID 4.2 JELLY BEAN Installazione e configurazione dell’ambiente cliccare su “Install packages” (accettare le relative licenze). Ad installazione avvenuta, SDK Manager dovrà essere configurato come in Fig. 2. Figura 2: Configurazione SDK Manager EMULATORE E GESTIONE DEGLI AVD Il kit di sviluppo comprende un emulatore che consente di provare direttamente sul PC i programmi, prima di installarli su un reale dispositivo (i.e. smartphone, tablet) Android. L’emulatore prende il nome di Android Virtual Device (AVD). Nel PC si possono configurare molti dispositivi virtuali, ognuno con caratteristiche diverse. E’ come avere tanti differenti smartphone da utilizzare per i propri test, solo che invece di dispositivi fisici si tratta di macchine virtuali da eseguire attraverso l’emulatore. In questo modo è anche possibile avviare contemporaneamente sullo stesso PC due o più dispositivi virtuali, ad esempio per testare un’applicazione che fa interagire più smartphone, come una chat. Per gestire l’emulatore, e quindi i vari dispositivi virtuali, si utilizza l’interfaccia grafica offerta da ADT in Eclipse. Selezionare “Window Android Virtual Device Manager”. La finestra (Fig. 3) presenta la lista dei dispositivi configurati (al primo accesso tale lista sarà vuota). Per creare un nuovo dispositivo virtuale (AVD) premere sul bottone “New”. Le voci da compilare sono: AVD Name: rappresenta il nome che si vuole attribuire al dispositivo virtuale. Device: permette di selezionare un device (dispositivo) tra quelli presenti. Target: permette di scegliere con quale versione di Android equipaggiare il dispositivo; scegliere Android 4.2.2. 3 Michele Spiller – 9 febbraio 2014 ANDROID 4.2 JELLY BEAN Installazione e configurazione dell’ambiente Memory Options: permette di scegliere la quantità di RAM e di memoria heap (in MiB) del dispositivo. Internal Storage: permette di scegliere la capacità della memoria interna. SD Card: è possibile dotare il dispositivo virtuale di una scheda di memoria virtuale; è possibile specificare sia il percorso di un file immagine di una scheda di memoria, sia una dimensione di spazio per crearne una nuova. Il tutto è rappresentato in Fig. 4. Figura 3: Gestione AVD Figura 4: Creazione nuovo AVD Dopo aver impostato questi valori premere sul bottone “OK”. 4 Michele Spiller – 9 febbraio 2014 ANDROID 4.2 JELLY BEAN Installazione e configurazione dell’ambiente Per creare un AVD in modo semplice e veloce si può utilizzare anche la scheda “Device Definitions” (Fig. 5). Selezionare il dispositivo, ad esempio “Nexus One”, cliccare su “Create AVD” e successivamente su “OK”. Da questa schermata è possibile anche creare un nuovo dispositivo (cliccando su “New Device”) oppure clonarne uno esistente (cliccando su “Clone”). Figura 5: Device Definitions Il nuovo dispositivo virtuale entrerà a far parte dell’elenco gestito dal manager, e da ora in poi potrà essere utilizzato per eseguire il debug ed il test delle applicazioni. Come lanciare un dispositivo virtuale verrà mostrato nel prossimo capitolo, con l’applicazione HelloAndroid. Attenzione! L’emulatore non supporta le connessioni USB, il Bluetooth, le cuffie audio del dispositivo, l’operazione di inserimento/rimozione di SD card, camera/video input. E’ opportuno far notare che l’emulatore “possiede” delle utili scorciatoie da tastiera, elencate di seguito: ALT + ENTER: rende l’emulatore a schermo intero. CTRL + F11: cambia l’orientamento dell’emulatore, da landscape a portrait, e viceversa. F8: accende/spegne la connessione dati dell’emulatore. PRIMO PROGETTO: HELLOANDROID E’ venuto il momento di utilizzare ADT in Eclipse e l’emulatore per programmare la prima applicazione Android. Come prima cosa avviare Eclipse. Grazie ad ADT ora si dispone di una nuova categoria di progetto, chiama “Android Project”. Creare un progetto di questo tipo. Nel wizard di creazione del progetto (Fig. 6) utilizzare la configurazione che viene riportata di seguito: 5 Michele Spiller – 9 febbraio 2014 ANDROID 4.2 JELLY BEAN Installazione e configurazione dell’ambiente Application Name: HelloAndroid Project Name: HelloAndroid Package Name: com.example.helloandroid Target SDK e Compile With: selezionare Android 4.2 (Jelly Bean, API 17) Premere su “Next” e successivamente su “Finish”. Figura 6: Wizard HelloAndroid Eclipse popolerà automaticamente il progetto, inserendo le librerie di Android e la struttura di base dei progetti per questa piattaforma. Eclipse provvederà anche alla creazione della prima classe della soluzione, chiamata MainActivity (come specificato alla voce “Create Activity” nel wizard iniziale, Fig. 7). Figura 7: Nome della classe principale Il file contenente la classe principale si trova nella cartella src (come in Java). Sono presenti i vari import delle risorse che servono all’applicazione: 6 Michele Spiller – 9 febbraio 2014 ANDROID 4.2 JELLY BEAN Installazione e configurazione dell’ambiente import android.app.Activity; import android.os.Bundle; Il metodo principale della classe MainActivity prende il nome di onCreate; il tutto è composto nel seguente modo: public class MainActivity extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } } Si può subito notare che la classe principale MainActivity eredita da Activity; infatti onCreate è un metodo della classe padre che viene sovrascritto (si veda dicitura @Override) nella classe figlia, ed inoltre come prima istruzione del metodo onCreate in Activity viene richiamato (tramite la super) il metodo della classe padre. Inoltre si nota che il “contenitore della grafica” (simile al contentPane in Java) è settato (con l’istruzione setContentView) richiamando il metodo layout.main della classe R. In poche parole quello che succede è che la grafica viene settata con il layout (e quindi con i vari componenti presenti in quest’ultimo, come ad esempio TextView e Button) presente nel file activity_main.xml contenuto nella cartella di progetto res/layout. Tutto questo viene reso possibile con l’invocazione del metodo setContentView(). Ora selezionare la radice del progetto HelloAndroid, attivare il menù contestuale da tasto destro e lanciare la voce “Run As Android Application”. L’emulatore verrà caricato. Eclipse provvederà automaticamente ad installare al suo interno l’applicazione HelloAndroid, per poi avviarla (Fig. 8). Figura 8: Applicazione eseguita dall'emulatore 7 Michele Spiller – 9 febbraio 2014 ANDROID 4.2 JELLY BEAN Installazione e configurazione dell’ambiente Successivamente, accedendo alle configurazioni di esecuzione (“Run Run Configurations”) sarà possibile alterare i parametri di avvio dell’emulatore e dell’applicazione. Al primo avvio dell’emulatore viene anche chiesto se visualizzare oppure no i logcat. Il termine logcat indica il tracciamento cronologico delle operazioni con la relativa visualizzazione sullo standard output del sistema; quindi corrispondono ai comuni log di un’applicazione. TEST NELLO SMARTPHONE: ESECUZIONE TRAMITE ADB L’applicazione si può testare anche su un device fisico. Per procedere si ha bisogno di un cavo USB per collegare il device al PC. Innanzitutto bisogna avviare avviare l’SDK Manager (dall’interno di Eclipse andando su “Window Android SDK Manager”) e scaricare i driver USB Google (presenti sotto la voce “Extras”), come riportato nella figura sottostante. Figura 9: Driver USB Google Effettuato il passaggio sopra illustrato, la procedura da seguire è riportata di seguito: Sul device (i.e. smartphone) andare su “Impostazioni Applicazioni”. Attivare l’opzione “Sorgenti sconosciute”. Successivamente andare su “Impostazioni Applicazioni Sviluppo” ed abilitare “Debug USB” e “Resta attivo”. Tali istruzioni possono cambiare a seconda della versione del sistema operativo Android preso in considerazione. In Eclipse selezionare “Run Debug Configurations”. Cliccare sulla scheda “Target”. Impostare “Always prompt to pick device”: permette di scegliere se eseguire il debug nell’emulatore o nel device. Cliccare sul pulsante “Apply” (Fig. 10). 8 Michele Spiller – 9 febbraio 2014 ANDROID 4.2 JELLY BEAN Installazione e configurazione dell’ambiente Figura 10: Debug configurations Collegare il device al PC con un cavo USB. Nel caso in cui si lavori su ambiente Linux può essere necessario eseguire qualche passaggio ulteriore: accedere da terminale alla directory platform-tools dell’SDK di Android, eseguire il “restart” del server “adb” con il comando sudo ./adb startserver. In questo modo il server avrà i permessi necessari per accedere al device collegato al PC. Questo passaggio risulta completamente inutile se Eclipse è stato avviato da un utente root (e quindi con permessi da super-user) come indicato in precedenza. Fare clic sul bottone “Debug” per concludere la configurazione. A questo punto comparirà la finestra “Android Device Chooser” in cui vengono visualizzati i device virtuali e/o reali di cui si dispone per eseguire il debug dell’applicazione. Terminati tutti questi passaggi, e dopo aver scelto il device su cui eseguire il debug, Eclipse installerà l’applicazione Android nel device e la eseguirà. 9 Michele Spiller – 9 febbraio 2014