Mastering Android CLI Tools

virtuálne zariadenie (emulátor), adb, udalosti na zariadení

About

Vývoj vašej aplikácie budete veľmi často skúšať nie na reálnom zariadení, ale na emulátore Android zariadenia. Na tomto cvičení si ukážeme, ako takéto virtuálne zariadenie vytvoriť a ako s ním komunikovať.

Objectives

  • Naučiť sa vytvoriť a spravovať virtuálne zariadenia.
  • Naučiť sa pracovať s nástrojom adb.
  • Naučiť sa vyvolávať rozličné udalosti na zariadení.
  • Spoznať základné stavebné kompnenty Android aplikácií.

Postup

Virtual Device Management

Každú aplikáciu, ktorú vytvoríte, budete potrebovať aj otestovať, či sa naozaj správa tak, ako ste plánovali. Pre testovanie máte v princípe dve možnosti: buď aplikáciu nasadíte priamo na fyzické zariadenie alebo použijete softvérový emulátor, ktorý sa bude správať ako fyzické zariadenie. V tomto kroku sa pozrieme na nástroje a možnosti správy pre tvorbu virtuálnych zariadení pomocou emulátora.

Úloha

Spustite príkazový riadok a uistite sa, že máte dostupné príkazy ako adb, avdmanager, emulator.

Úloha

Upravte nastavenia práve vytvoreného zariadenia tak, aby ste v ňom mohli používať aj kameru.

Pokiaľ máte na vašom počítači naozajstnú kameru, je možné ju namapovať na kameru virtuálneho zariadenia. Ak ju nemáte, je možné správanie kamery emulovať. Urobiť tak môžete zmenou nastavení virtuálneho zariadenia.

Správnosť nastavení overte v aplikácii Camera.

Najprv je treba zistiť, ako je kamera označená:

$ emulator -webcam-list
List of web cameras connected to the computer:
 Camera 'webcam0' is connected to device '/dev/video0' on channel 0 using pixel format 'YUYV'

Následne je možné toto zariadenie ako prednú alebo zadnú kameru:

$ emulator @nexus -camera-front webcam0

adb Basics

Android Debug Bridge (adb) je univerzálny nástroj príkazového riadku, ktorý umožňuje komunikovať so spustenou inštanciou emulátora alebo s pripojeným Android zariadením. V rámci tohto kroku si osvojíme základy používania tohto nástroja.

Úloha

Spustite nástroj adb z príkazového riadku a zobrazte jeho pomocníka (help).

Nástroj spustíte zadaním nasledovného príkazu:

adb --help

Úloha

Zobrazte zoznam práve pripojených zariadení.

Ak máte spustený emulátor alebo pripojené zariadenie cez USB kábel, zobrazí sa vám v zozname práve pripojených zariadení, ktorý môže vyzerať napr. takto:

List of devices attached
emulator-5554   device
HT0A3PL04055    device

Úloha

Pomocou nástroja adb reštartnite zariadenie.

Úloha

Preneste obrázok loga Android Marshmallow do virtuálneho zariadenia do priečinku /sdcard/DCIM/Camera/.

O úspešnosti operácie sa môžete následne presvedčiť v aplikácii Gallery, kde by sa mal obrázok objaviť.

Android Marshmallow logo

Úloha

Prekopírujte z virtuálneho zariadenia všetky fotky, ktoré ste vytvorili aplikáciou Camera do aktuálneho priečinku na lokálnom počítači.

Úloha

Pomocou príkazu screencap spusteného vo virtuálnom zariadení vytvorte snímku obrazovku a stiahnite si ju do počítača.

Emulator Console

Každá spustená inštancia emulátora poskytuje konzolu, pomocou ktorej je možné overiť alebo riadiť prostredie emulovaného zariadenia. Napr. je pomocou nej možné spravovať presmerovanie portu (port redirection), sieťové pripojenie a udalosti telefónu (prichádzajúci hovor, SMS správa), zatiaľ čo vaša aplikácia je spustená v emulátore. Ak chcete túto konzolu používať, musíte sa k nej pripojiť pomocou telnet-u.

Úloha

Pripojte sa na konzolu emulátora práve spusteného virtuálneho zariadenia.

Pre pripojenie sa ku konzole emulátora potrebujete poznať port, na ktorom daný emulátor počúva. Tento port je možné vidieť v názve okna príslušného terminálu alebo po spustení príkazu adb s prehľadom aktuálne pripojených, resp. spustených zariadení:

adb devices
List of devices attached 
emulator-5554   device
HT0A3PL04055    device
emulator-5556   device

Porty sa v tomto prípade nachádzajú za znakom ‘-’ za slovom ‘emulator’.

Ak sa teda chcem pripojiť na konzolu k emulátoru označenému ako emulator-5554, napíšem príkaz:

telnet localhost 5554

Po spustení konzoly si môžete zobraziť zoznam všetkých dostupných príkazov pomocou príkazu help. Pre zobrazenie pomocníka pre konkrétny príkaz, napíšte help príkaz.

Spojenie môžete ukončiť príkazom quit.

Ćíslo portu pre prístup do konzoly emulátora.

Úloha

Autentifikujte svoje sedenie v konzole pomocou autentifikačného tokenu.

Zoznam dostupných príkazov je pomerne krátky. Okrem toho sa vám po samotnom spustení zobrazí výzva pre autentifikovanie vašej aktuálnej relácie:

$ telnet localhost 5554
Trying 127.0.0.1...
Connected to localhost.
Escape character is '^]'.
Android Console: Authentication required
Android Console: type 'auth <auth_token>' to authenticate
Android Console: you can find your <auth_token> in
'/path/to/.emulator_console_auth_token'
OK

Autentifikovať reláciu môžete pomocou príkazu auth. Po úspešnej autentifikácii budete mať k dispozícii výrazne viac príkazov pre prácu.

Úloha

Pošlite si SMS správu z čísla 112 s textom “We need your help.”.

Ak ste postupovali správne, prijatú SMS správu nájdete v zozname správ a o prijatí správy vás bude informovať aj notifikačná správa.

Prijatie SMS správy.

Úloha

Vytvorte prichádzajúci hovor z čísla 112.

Ak ste postupovali správne, emulátor začne “zvoniť”.

Prichádzajúci hovor z čísla 112.

Úloha

Odstráňte vytvorené AVD.

scrcpy

Úloha

pripojte k počítaču svoj telefón

Úloha

pripojte sa k svojmu telefónu pomocou nástroja scrcpy

  • nastavit developersky rezim
  • povolit zariadenie

Additional Tasks

  1. Zoznámte sa s možnosťami ovládania stavu batérie emulátora - či už z prostredia Extended controls alebo z prostredia konzoly emulátora.

  2. Zoznámte sa s možnosťami ovládania stavu a sily sieťového pripojenia - či už z prostredia Extended controls alebo z prostredia konzoly emulátora.

  • Tools Help - prehľad nástrojov dostupných v balíku Android SDK

  • Android Debug Bridge (adb)

  • Genymotion - alternatívny emulátor pre emulovanie Android zariadení

  • Command Line Tools: avdmanager - The avdmanager is a command line tool that allows you to create and manage Android Virtual Devices (AVDs) from the command line.

  • Command Line Tools: sdkmanager - The sdkmanager is a command line tool that allows you to view, install, update, and uninstall packages for the Android SDK.

  • Start the emulator from the command line - dokument opisuje možnosti príkazového riadku a zoznam klávesových skratiek pre emulátor