Vediamo i primissimi passi per sviluppare applicazioni Android su Windows. Comincio subito con il dirvi che anche per me è una prima esperienza, ho uno smartphone android (HTC Desire) da pochi giorni, ed ho già preso in considerazione l’idea di scrivere qualche applicazione. Come tutte le novità di una certa complessità ci sono un sacco di insidie dietro l’angolo, scontate per chi conosce già l’ambiente di sviluppo, ma di una certa complessità per i neofiti. Partiamo perciò da zero. Anche se farò i miei test su una VM con Windows, le differenze con Linux dovrebbero essere in realtà molto poche.
Prepariamo tutto l’ambiente di sviluppo
Per prima cosa indichiamo il sito ufficiale di Android che ovviamente è in inglese e che contiene tutte le informazioni di cui necessitiamo: http://www.android.com/ In particolare nella sezione Developers troviamo tutto il materiale di cui abbiamo bisogno per scrivere le nostre applicazioni. Quando decidiamo di sviluppare qualcosa per una qualunque piattaforma la prima cosa da chiedersi è: quale linguaggio di programmazione utilizzare?a Se avete letto qualcosa in questo blog saprete già che io sono quasi esclusivamente un programmatore C con una spruzzatina di C++, quanto basta. Per questo motivo la prima cosa che ho cercato è il toolkit di sviluppo per C/C++ e qui la prima sorpresa. Infatti benchè esista un toolkit in C/C++ esso è caldamente sconsigliato dai programmatori Android ed è da utilizzarsi solamente per scrivere parti di applicazioni time-critical. Nessuno ci può impedire di percorrere questa strada, ma il fatto che gli stessi sviluppatori di Android ne sconsiglino l’utilizzo è sicuramente un fatto da prendere in considerazione. Infatti i tools di sviluppo per Android sono fondalmentalmente basati su Java motivo per cui mio malgrado cercherò di adeguarmi e seguirò questo percorso. NOTA: successivamente alla scrittura di questo articolo, sul sito Android è cambiata la politica di download per cui al link dell’SDK che trovate al punto 2 trovate l’SDK, JDK e ADT tutti insieme in un unico pacchetto motivo per cui potete seguire quel link.
1) Prima di tutto cominciamo con installare il JDK, ossia il Java SE Development Kit che trovate a questa pagina (sono circa 76MB per la versione 6.23)
2) Una volta installato il JDK dobbiamo andare a scaricare ed installare l’SDK (Software Development Kit) di Android che troviamo a questa pagina. Provvediamo all’installazione che avviene senza particolari problematiche nella directory C:\Programmi\Android\android-sdk-windows (sempre che non l’abbiate modificata). Se non toccate nulla, resta spuntata la voce che fà partire l’SDK manager: si noti che l’installer richiederà di disabilitare il software antivirus. A questo punto si apre una schermata con una barra di avanzamento che alla fine sembra bloccarsi senza fare nulla. In realtà non è bloccato, abbiate pazienza e dopo pochi istanti comparità una lista di pacchetti installabili che corrispondono alle varie versioni di Android. Lasciate pure spuntate tutte le versioni, selezionate la casellina Accept all e date l’install. I pacchetti verranno scaricati da internet per cui durante tutte le operazioni viste sinora dovete avere un collegamento alla rete e, vista la mole di dati, si spera non abbiate una vecchia linea 56K. Ora, se volete, potete installare anche i componenti opzionali su Avaiable Packages selezionando “Third party Add-ons“. All’interno vediamo che ci sono le Google API nelle varie versioni e, attualmente, un plugin per il Galaxy Tab della Samsung. Diamo l’Install Selected, accettiamo le varie licenze e attendiamo che il tutto venga scaricato ed installato. La differenza fra le API Android e Google, stanno nel fatto che le seconde andranno utilizzate nelle applicazioni che utilizzeranno le API di posizionamento sulle mappe, cosa che non occorre per applicazioni che non ne fanno uso.
3) Se pensate di aver finito vi sbagliate. Ora dobbiamo scaricarci l’ambiente di sviluppo. In via del tutto teorica potremmo scegliere quello che preferiamo o che già utilizziamo per altri scopi, ma purtroppo, o per fortuna, a seconda dei punti di vista, mamma Google quasi ci obbliga ad utilizzare Eclipse, non tanto perchè sia impossibile usare tools alternativi, ma perchè ha creato un corposo plugin apposito che semplifica notevolmente la vita dei programmatori. Per questo motivo la scelta migliore, da neofiti nel campo, resta quella di seguire la via più semplice senza addentrarci in maggiori complicazioni. C’è da dire che sul sito Android è riportata questa possibilità e c’è una minuziosa descrizione dei passaggi da compiere, ma essendo la prima esperienza in questo campo ho preferito non complicarmi la vita preferendo la strada preparata dagli ingegneri di Android. Andiamo perciò qui e scarichiamo Eclipse IDE for Java Developers. Terminato il download scompattate l’archivio dove preferite (NB: Non ci sono installer da eseguire).
4) Lanciate Eclipse in quanto dobbiamo configurarlo per sviluppare le applicazioni Android. Al primo avvio vi chiede di specificare una directory dove collocherà tutti i nuovi progetti. Scegliete pure una directory a vostro piacimento o lasciate quella di default. Una volta avviata l’interfaccia grafica andate nel menù Help e selezionate Install new software. Premete il pulsante Add e nelle voci Name e Location scrivete rispettivamente Android Development Tools e https://dl-ssl.google.com/android/eclipse/.
Dopo un istante, se non avete inserito erroneamente l’indirizzo https, la schermata apparirà come quella qui a lato. Spuntate la casellina su Developer Tool e date un paio di next, l’OK alla licenza e il plugin di Android come per incanto verrà installato. Verrete avvisati che state installando software non firmato, ma date l’OK senza timori. Al termine Eclipse vi chiederà di eseguire un restart.
5) Ora dobbiamo impostare il plugin di Eclipse appena scaricato per fargli conoscere l’ubicazione dell’SDK di Android con cui andrà ad interagire. Per fre ciò andate su Windows->Preferences->Android. A questo punto nello spazio “SKD Location” dovrete inserire la directory ove è installato l’SDK di Android, nel mio caso “C:\Programmi\Android\android-sdk-windows”. Date Apply e comparirà la lista delle versioni di Android supportate. Date l’OK finale e siamo pronti per cominciare. Peraltro mi capita spesso che al riavvio di Eclipse mi venga dato un messaggio d’errore in quanto non conosce questo percorso di installazione. Rientrando perciò nel menu mi trovo in realtà l’impostazione già inserita e non faccio altro che ridare l’OK per far funzionare nuovamente il tutto.
L’ambiente di sviluppo è ora pronto per sviluppare la prima applicazione.
La prima applicazione Android
Dopo la prima lunga parte, spesa in gran parte a scaricare dalle nostre lente ADSL, siamo pronti a cominciare. Lanciamo il nostro Eclipse. Per prima cosa dobbiamo predisporre un sistema per lanciare la nostra applicazione una volta preparata. Ci sono due possibilità, ossia usare direttamente un dispositivo Android collegato al PC, o in sua assenza usare l’emulatore che è integrato nell’Android SDK e che abbiamo già installato. Cominciamo con questa seconda strada, anche perchè non tutti disporranno di un terminale Android su cui effettuare le loro prove. Per fare ciò apriamo l’iconcina ( ) e nella schermata che si apre troveremo già selezionata la voce Virtual Devices per cui premiamo su New. Diamo un nome al nostro device, selezioniamo la versione di Android da utilizzare, diamo le dimensione della SD Card, la risoluzione del display e nella sezione hardware selezioniamo le varie opzioni che vogliamo inserire nel nostro Virtual-phone. Alla fine premiamo su Create AVD ed il nostro dispositivo è pronto. Se vogliamo provarlo è suficiente selezionarlo e premere su Start. L’avvio è lento ma rispecchia quello di un vero terminale che è emulato in tutti i suoi aspetti. Se invece avte un vero terminale Android basterà collegarlo al cavo USB e metterlo in modalità Sync. Bloccate eventuali software di sincronizzazione sul PC, come ad esempio HTC Sync, per impedire che interferiscano con Eclipse. A questo punto il plugin di Eclipse sarà in grado di collegarsi direttamente al terminale e farvi provare in tempo reale l’applicazione sul telefono vero e proprio, e non vi nascondo la soddisfazione che si ottiene la prima volta che vedete qualcosa scritto da voi funzionare sul telefono.
Ora siamo pronti per creare il vero e proprio progetto iniziale: andiamo su File->New->Project e selezioniamo Android->Android Project. Si apre una schermata simile a quella qui a fianco. Compiliamo i campi come di seguito:
Project name: test
Build Target: Android 2.2
Application Name: test
Package Name: com.test
Create Activity: testactivity
Min SDK Version: 8
Project Name è il nome del progetto che vogliamo assegnare.
Build Target è la versione di Android per il quale vogliamo andare a sviluppare l’applicazione. Si noti come menzionato prima la differenziazione delle versioni in Android e Google.
Package Name: Attenzione al com. che è obbligatorio. Il package name dovrà essere unico sul sistema Android in cui sarà installato per cui dobbiamo fare molta attenzione alla scelta dei nomi.
L’Activity è la classe che fa da fulcro per l’intera applicazione Android.
Min SDK Version: è la versione di Android minima con cui dovrà funzionare la nostra applicazione. Nella lista “build target” è possibile conoscere la versione delle API Android rispetto alla versione dello stesso.
A questo punto una volta premuto il tasto Finish Eclipse dovrebbe generare per noi il progetto base che scrive la classica frase “Hello World” in una nuova finestra. Non vi nascondo che tutte le guide trovate online si fermano a questo punto e, se non conoscete l’ambiente di sviluppo, vi ritroverete con la schermata vuota, senza nessun particolare messaggio o qualcosa che indichi che il tutto è andato a buon fine. Se guardate in basso a sinistra, nell’angolino di Eclipse, trovate una piccola iconcina. Se ci premete sopra troverete, fra le varie voci, il package Explorer che se aperto dovrebbe mostrarvi la presenza del vostro progetto test. A questo punto perciò, doo averlo selezionato con un click, premendo sul pulsantino verde con il triangolino bianco (che equivale a Run->Run dal menu), dovrebbe venir eseguita la vostra applicazione che si aprirà direttamente nell’emulatore Android preparato prima o, se collegato, sul telefono.
Non vi nascono che è proprio quest’ultima fase la più critica. Sulla prima installazione eseguita sul mio portatile ho riscontrato diversi errori che ho corretto a forza di googlare, purtroppo però non li ricordo tutti anche perchè ero convinto che nell’installazione sulla VM fatta apposta per scrivere questo tutorial avrei incontrato le stesse problematiche che avrei potuto dettagliatamente documentare, invece ho avuto comportamenti completamente diversi nonostante abbia seguito la medesima procedura. In particolare Eclipse insisteva a trattare il progetto come un’applicazione Java generica piuttosto che un’applicazione Android per cui ottenevo un errore del tipo Launch configuration TouchDex references non-existing … . In questo caso per risolverlo sono andato nella freccina vicina al pulsantino verde, sono entrato in Run Configuration e sotto Android Application, con il bottone destro del mouse ho selezionato New risolvendo il problema. Si noti che all’inizio nemmeno gli errori mi comparivano per cui ho perso del tempo anche a capire come visualizzarli. Sempre nell’iconcina in basso a sinistra trovate la voce “Error Log” che apre la finestra con tutti gli errori.
Altri due errori che mi hanno colpito erano Failed to load properties file for project xxx e Classs compatibility set to 5.0. Please fix project properties. Il secondo dei due l’ho risolto selezionando il progeto sul Package Explore, pulsante destro dl mouse, Android Tools->Fix project Properties. Il primo invece l’ho risolto senza capire come. Cercando su google ho trovato suggerimenti divergenti, sembra però che in linea di massima sia dovuto ad un errato settaggio della directory dell’SDK all’interno delle impostazioni del plugin di Eclipse, anche se nel mio caso il percorso era corretto. Ricordo però che il percorso era inserito inizialmente con la dicitura MS-DOS anzichè quella estesa Windows, ricordo di aver rimpiazzato il percorso e prababilmente così facendo ho risolto il problema anche se non posso giurarci visto che ho fatto altre cose nel frattempo, anche se in teoria non influenti.
Ho comunque notato che talora i problemi sono legati alla scarsa quantità di memoria RAM disponibile sul PC per cui spesso un semplice riavvio risolve tutti i problemi. Questo mi capita soprattutto quando ho aperto Eclipse sul portatile con anche la VM anch’essa con Eclipse, a cui associare Firefox con l’editor di questi articoli aperto….insomma, una situazione un pò stressante per un PC che oramai ha i suoi annetti.
Ma una volta che ho testato il programma e funziona, come lo carico sul cellulare?
Ciao Gianluca, scusa il ritardo nella risposta, ma il lavoro mi pressa 🙂
Se hai testato il software con il cellulare collegato, la tua applicazione si trova già nella lista delle applicazioni. Avrà l’icona di default, quella con il “robottino” verde simbolo di Android ed avrà il nome che hai scelto tu. Dovevo scrivere queste cose nella seconda “lezione” ma lo scarso tempo libero non mi ha ancra permesso di completare quell’articolo che è solo agli inizi.
Se invece hai testato il software con l’emulatore software, basta che colleghi il telefono e rilanci l’applicazione. A quel punto ti farà scegliere se usare l’emulatore software o usare il telefono collegato. Scegli quest’ultimo ed il gioco è fatto.
Scusa se sono stato breve, spero sia sufficientemente chiaro. Se non riesci scrivimi pure, ti risponderò appena posso.
Ciao
Stefano
Ottima guida! E quella sui layout molto molto interessante! grazie 1000 e continua così!
Pol