Android Debug Bridge (adb)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.ADB is an important tool for developers because it allows you to interact with Android emulators, and also with connected devices. Nella documentazione di ADB sono illustrate numerose funzionalità, ma in questa sede sono riportati solo alcuni comandi utili:There are many features covered in the ADB documentation but here are some useful commands:

  • adb kill-server e adb start-server : arrestano e avviano il servizio ADB se necessarioadb kill-server and adb start-server – stop and start the ADB service if needed
  • adb devices : visualizza l'elenco dei dispositivi disponibili (inclusi emulatori e telefoni o tablet collegati al computer)adb devices – list the devices available (including emulators and phones or tablets attached to your computer)
  • adb install : installa i file APKadb install – install APK files
  • adb shell : esegue i comandi nel sistema Android, ad esempio:adb shell – execute commands on the Android system, for example:
    • adb shell pm list packages : visualizza l'elenco di tutti i pacchetti installatiadb shell pm list packages – list all the packages installed
    • adb shell pm path com.example.someapp : recupera il percorso del file system del pacchetto specificatoadb shell pm path com.example.someapp – gets the file system path of the package specified
  • adb pull : estrae i file dall'emulatore o dal dispositivoadb pull – extract files from the emulator or device

Simulare lo spanning dell'appSimulate app spanning

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.Another use for ADB is simulating input commands, such as automating spanning of an app on 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:These screenshots illustrate the process of spanning by grabbing the handle at the bottom of the window, and dragging it towards the hinge until the span indicator covers both screens:

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

È possibile simulare questo movimento con ADB, usando il comando seguente:You can simulate this gesture with ADB, using the following command:

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).The first four values are the start and end coordinates of the drag gesture, and the final value is elapsed time (milliseconds). Il tempo è importante perché, se si esegue il trascinamento troppo velocemente, l'app viene "gettata" nell'altro schermo senza che venga eseguito lo spanning.The time is important because if you drag too fast, the app is “flung” to the other screen rather than spanned. Tre secondi è un intervallo di tempo adeguato.Three seconds works well.

È anche possibile simulare lo spanning dell'app e altri movimenti durante il test dell'interfaccia utente.You can also simulate app spanning and other gestures as part of UI Testing.

Eseguire il debug con i comandi ADBDebug with ADB commands

Per eseguire il debug con i comandi ADB, seguire questa procedura:Follow these steps to debug using ADB commands:

  1. Trovare l'ID dispositivo dell'emulatoreFind your emulator device ID

    Esegui C:\>adb devices.Run C:\>adb devices.

    emulator-5554   device
    
  2. Trova il pacchetto di cui vuoi eseguire il debug.Find the package you want to debug.

    Eseguire adb shell pm list packages.Run 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)Set the app to debug at startup (note the -w)

    Eseguire adb shell am set-debug-app -w com.microsoft.device.display.samples.masterdetail.Run adb shell am set-debug-app -w com.microsoft.device.display.samples.masterdetail.

  4. Avvia l'app nell'emulatore.Start the app in the emulator.

    Verrà visualizzata una finestra popup per segnalare che all'app deve essere collegato un debugger.You will get a popup that the app is waiting for a debug to attach. Dovrai ripetere ogni volta l'esecuzione del debugger impostato (oppure usare l'opzione --persistent).You will need to re-run the set debug each time (or use --persistent option).

  5. Collegare il debugger di Android StudioConnect Android Studio Debugger

    Nelle opzioni di menu di Android Studio seleziona Run->Attach debugger (Esegui->Collega debugger).In Android Studio menu options, select Run->Attach debugger. Dovrebbero essere elencati l'emulatore e il processo.The emulator and process should be listed.

  6. Definisci un puntatore al codice sorgente e imposta i punti di interruzione.Point to source code and set breakpoints.