Android Debug Bridge (adb)
ADB è uno strumento importante per gli sviluppatori perché consente di interagire sia con gli emulatori Android sia con i dispositivi connessi. Nella documentazione di ADB sono illustrate numerose funzionalità, ma in questa sede sono riportati solo alcuni comandi utili:
- adb kill-server e adb start-server: arrestano e avviano il servizio ADB se necessario
- adb devices: visualizza l'elenco dei dispositivi disponibili (inclusi emulatori e telefoni o tablet collegati al computer)
- adb install: installa i file APK
- adb shell: esegue i comandi nel sistema Android, ad esempio:
- adb shell pm list packages: visualizza l'elenco di tutti i pacchetti installati
- adb shell pm path com.example.someapp: recupera il percorso del file system del pacchetto specificato
- adb pull: estrae i file dall'emulatore o dal dispositivo
Simulare lo spanning dell'app
ADB può essere usato anche per la simulazione dei comandi di input, ad esempio per l'automazione dello spanning di un'app in Surface Duo. Gli screenshot seguenti illustrano il processo di spanning che consiste nell'afferrare l'handle nella parte inferiore della finestra e trascinarlo verso la cerniera fino a quando l'indicatore di spanning non copre entrambi gli schermi:
È possibile simulare questo movimento con ADB, usando il comando seguente:
adb shell input touchscreen swipe 675 1780 1350 1500 3000
I primi quattro valori indicano le coordinate iniziali e finali del movimento di trascinamento, mentre il valore finale indica il tempo trascorso (in millisecondi). Il tempo è importante perché, se si esegue il trascinamento troppo velocemente, l'app viene "gettata" nell'altro schermo senza che venga eseguito lo spanning. Tre secondi è un intervallo di tempo adeguato.
È anche possibile simulare lo spanning dell'app e altri movimenti durante il test dell'interfaccia utente.
Eseguire il debug con i comandi ADB
Per eseguire il debug con i comandi ADB, seguire questa procedura:
Trovare l'ID dispositivo dell'emulatore
Eseguire
C:\>adb devices
.emulator-5554 device
Trova il pacchetto di cui vuoi eseguire il debug.
Eseguire
adb shell pm list packages
.package:com.android.managedprovisioning package:com.android.smspush package:com.android.wallpaper.livepicker package:com.android.storagemanager package:com.android.bookmarkprovider package:com.android.settings package:com.android.calculator2 package:com.android.vpndialogs package:com.android.email package:com.android.music
Imposta l'app in modo da eseguire il debug all'avvio (nota l'opzione -w)
Eseguire
adb shell am set-debug-app -w com.microsoft.device.display.samples.masterdetail
.Avvia l'app nell'emulatore.
Verrà visualizzata una finestra popup per segnalare che all'app deve essere collegato un debugger. Dovrai ripetere ogni volta l'esecuzione del debugger impostato (oppure usare l'opzione --persistent).
Collegare il debugger di Android Studio
Nelle opzioni del menu di Android Studio selezionare Esegui > collega debugger. Dovrebbero essere elencati l'emulatore e il processo.
Definisci un puntatore al codice sorgente e imposta i punti di interruzione.