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:

Tre passaggi per eseguire automaticamente lo spanning di un'app usando i comandi ADB

È 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:

  1. Trovare l'ID dispositivo dell'emulatore

    Eseguire C:\>adb devices.

    emulator-5554   device
    
  2. 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
    
  3. 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.

  4. 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).

  5. 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.

  6. Definisci un puntatore al codice sorgente e imposta i punti di interruzione.