Nello sviluppo di applicazioni su piattaforma Android, ci sono due alternative per testare le app: usare un emulatore o usare un
dispositivo reale. Gli emulatori sono abbastanza lenti, quindi normalmente si tende ad usare un dispositivo, che normalmente viene collegato al PC mediante
USB. Questa soluzione ha però alcune controindicazioni: il surriscaldamento del dispositivo (dato che è sempre in carica), il deterioramento del connettore
USB e la necessità di usare un cavo.
Obiettivo di questo articolo è spiegare come installare le applicazioni su un dispositivo Android mediante connessione WiFi. Per quanto
detto in precedenza, ciò può rivelarsi molto utile proprio in fase di sviluppo.
Verranno presentati alcuni scenari tipici di lavoro e per ognuno di esso verranno illustrati i passi necessari per attivare il collegamento wireless. In
particolare, vedremo come riuscirci sia su Eclipse che su Android Studio, e per entrambe queste IDE vedremo come gestire
la situazione in caso cui si disponga di un dispositivo con e senza permessi di root.
Per chi non lo sapesse, ottenere i permessi di root su un dispositivo significa autenticarsi ad esso sistema con il sistema di privilegi più elevato, in
modo da bypassare le restrizioni a cui un account utente deve sottostare e modificare liberamente anche le impostazioni che normalmente risultano
inaccessibili. È importante sottolineare come tale misura esponga Android a molti rischi di sicurezza; tuttavia, soprattutto su smartphone e tablet, tali
privilegi risultano indispensabili se si vogliono utilizzare alcuni software o sbloccare determinate funzioni.
Prerequisiti
L’articolo seguente presuppone che il lettore abbia già una minima esperienza di sviluppo su Android, che abbia già installato sul PC l’ Android SDK e che sappia come installare su un device un’applicazione partendo da Eclipse o ad Android Studio. Ognuna di queste
informazioni può essere reperita facendo riferimento alla guida allo sviluppo di app per Android,
pubblicata su HTML.it.
Nel caso che riguarda Eclipse, si considera quest’ultimo già integrato con il plugin Android Development Tools (ADT).
Per provare le tecniche di collegamento argomento di questi articoli, è necessaria una rete WiFi a cui poter collegare il PC ed il dispositivo Android.
Il sistema operativo usato è Windows 7. Salvo le ovvie differenze, quanto verrà detto vale anche per Linux e OSX.
Prima di procedere, è bene ricordare che, per poter installare applicazioni su un dispositivo Android mediante USB (cosa che potrebbe essere utile nel
seguito di questo tutorial), è necessario abilitare la relativa opzione dal menù degli sviluppatori, come mostrato nella figura seguente.
Android Debug Bridge
La comunicazione tra il PC ed il dispositivo Android avviene mediante l’Android Debug Bridge o ADB, una utility che viene installata insieme all’SDK di Android. Esse è in genere installata nella sottocartella <android-sdk-home>/platform-tools. Si consiglia di inserire tale path tra i percorsi di default, come mostra la seguente sequenza di immagini.
Supponendo di aver già definito una variabile d’ambiente ANDROID_SDK corrispondente al percorso dell’Android SDK, basterà inserire nella dichiarazione della variabile PATH anche la stringa %ANDROID_SDK%/platform-tools.
Se tutto è configurato come previsto, aprendo il prompt dei comandi e digitando quanto segue:
>Adb version
otterremo un output simile al seguente:
Android Debug Bridge version 1.0.xx
Configurazione dispositivo Android
La configurazione del dispositivo Android è indipendente dall’ambiente di sviluppo utilizzato lato PC. La discriminante in questo caso è la presenza o meno dei permessi di root sul dispositivo.
Configurazione dei dispositivi con permessi di root
Per i dispositivi con permessi di root, abbiamo bisogno di installare un’app che consenta di usare ADB over WiFi. Sul Google Play Store vi sono diverse possibilità, tra le quali segnaliamo ADB over Wifi Widget.
Questa app consente di installare un widget sul dispositivo che, se attivato, mostra un’icona con l’indirizzo IP e la porta usati. Questi dati ci serviranno per l'interfacciamento via WiFi.
Dispositivo senza permessi di root
Sui dispositivi senza permessi di root, non è possibile utilizzare programmi che abilitano l’ADB over WiFi. Si possono comunque installare alcune
applicazioni che consentono di visualizzare agevolmente l’indirizzo IP del dispositivo Android una volta che quest’ultimo è collegato alla rete WiFi. Tra
quelle disponibili, segnaliamo Show My IP.
Connessione WiFi con Eclipse
Nell’ultimo periodo Google ha promosso Android Studio come IDE di ufficiale di sviluppo. Ciò nonostante, Eclipse è stato per anni l’IDE di riferimento per lo sviluppo su Android e molti lo usano ancora nel normale sviluppo di applicazioni per Android. Non poteva mancare quindi un’apposita sezione dedicata alla connessione WiFi tra PC e device Android mediante questo IDE.
Per poter pilotare adb mediante WiFi da Eclipse, è sufficiente utilizzare il plugin AdbConnect, disponibile su GitHub (dove sono elencate le semplici istruzioni di installazione). Come vedremo, questo plugin consente di collegare il PC ad un dispositivo Android mediante WiFi.
Una volta installato AdbConnect, ne vedremo la relativa icona sulla toolbar di Eclipse.
Per proseguire, bisognerà attivare la connessione dal lato del dispositivo Android. Se si usa un dispositivo senza permessi di root bisognerà seguire i seguenti passi:
- sul dispositivo Android, mediante l’app Show My IP, otteniamo l’indirizzo IP assegnato al device Android;
- mediante connessione USB, colleghiamo (solo per questa volta) il dispositivo Android al PC;
- sul PC, mediante prompt dei comandi, eseguiamo il comando seguente:
adb tcpip 8000
Nel comando precedente, 8000 è la porta che si desidera usare per la connessione. L’esecuzione di questo comando dovrebbe produrre un messagg del tipo:
restarting in TCP mode port: 8000
- sempre su PC, mediante prompt dei comandi, eseguiamo il comando sotto riportato, dove [indirizzo-IP-android] corrisponde all’indirizzo del dispositivo Android recuperato al passo 1:
adb connect [indirizzo-IP-android]:8000
- scolleghiamo quindi il cavo USB con il quale è collegato il dispositivo;
- su Eclipse, nell’apposita sezione delle preferenze del plugin, impostiamo l’indirizzo IP e la porta del dispositivo recuperati in precedenza (si veda la figura seguente);
- attiviamo infine il plugin AdbConnect mediante l’apposita icona. Se la procedura è stata eseguita correttamente, l’icona si trasformerà in quella riportata nella figura seguente, e nell’apposita finestra compariranno i messaggi di log provenienti dal device.
Se, invece, il dispositivo ha i permessi di root sarà sufficiente eseguire le istruzioni dei punti 6 e 7 utilizzando il plugin ADB over Wifi descritto in precedenza.
Questi passi sono necessari solo all’inizio della sessione di test dell’applicazione. Una volta che il PC ed il device saranno correttamente "accoppiati", non avremo più bisogno di eseguire questa procedura.
Connessione WiFi in Android Studio
Android Studio ospita al suo interno una console comandi. Lavorando con questo ambiente di sviluppo non è quindi necessario aprire separatamente un terminale, poichè è possibile sfruttare quella già integrata.
Dispositivo con permessi di root
Per collegare in WiFi un dispositivo Android che gode dei permessi di root, con Android Studio, è sufficiente scrivere nel prompt dei comandi l’istruzione seguente, utilizzando l'IP associato al dispositivo Android che si sta utilizzando:
adb connect [indirizzo-IP-android]:8000
Dispositivo senza permessi di root
Se il dispositivo che stiamo utilizzando non gode dei permessi di root, dovremo eseguire le stesse istruzioni che si devono svolgere con ADB quando si lavora con Eclipse:
- mediante cavo USB collegare il device Android al PC;
- su PC, mediante prompt dei comandi, eseguiamo:
adb tcpip 8000
dove 8000 è la porta che si desidera usare per la connessione; - sempre sul PC, eseguiamo il comando seguente:
adb connect <indirizzo-IP-android>:8000
- scolleghiamo infine il cavo USB dal dispositivo, e saremo finalmente connessi in WiFi.
Esecuzione dell'applicazione sul dispositivo
Eseguiti i passi necessari a collegare il PC al dispostivo Android mediante WiFi, a prescindere dall'IDE usato per lo sviluppo, la procedura d'installazione dell'applicazione da testare sul dispostivo rimane pressochè immutata rispetto al modo di operare tramite collegamento USB.
Nel caso si usi Eclipse, sarà sufficiente selezionare la voce Run as -> Android Application dal menù di contesto dell'applicazione che si desidera testare.
Nel caso di Android Studio, invece, si dovrà selezionare il modulo del progetto da eseguire, e premere il pulsante run.
La prima volta che si effettuerà l'installazione, sarà richiesto di selezionare il dispositivo sul quale installare l'applicazione, e nella lista di quelli disponibili sarà presente anche quello connesso in WiFi.
Conclusioni
Abbiamo visto come utilizzare l’utility adb per creare un collegamento mediante rete WiFi tra il PC usato per sviluppare ed il dispositivo Android sul quale effettuare i test. Lato PC si è visto come effettuare la configurazione sia nel caso in cui si usi come IDE Eclipse, sia nel caso si usi Android Studio. Lato device Android, si è visto come configurare il dispositivo con e senza di permessi di root.
Adb si è dimostrato, quindi, uno strumento potente e versatile, che spesso viene ignorato dagli sviluppatori Android proprio perché “occultato” dall’IDE usato. Chiunque voglia approfondire la conoscenza di questo tool, può comunque consultarne la documentazione ufficiale.