ADB (Android Debug Bridge) — egy többfunkciós konzol segédprogram, amely az Android SDK részét képezi. Lehetővé teszi, hogy a számítógép közvetlenül kommunikáljon az Android-eszközzel USB-kábellel vagy Wi-Fi-n keresztül. Az ADB segítségével alkalmazásokat telepíthet és távolíthat el, fájlokat másolhat, shell-parancsokat futtathat, rendszernaplókat tekinthet meg, képernyőképeket készíthet és rögzítheti a képernyőt, kezelheti a beállításokat, sőt automatizált teszteket is végrehajthat. Az eszköz nélkülözhetetlen a fejlesztők, tesztelők és rajongók számára, akik teljes ellenőrzést szeretnének szerezni az eszköz felett.
Főbb pontok
Android Debug Bridge (ADB) — egy kliens-szerver alkalmazás, amely három komponensből áll: kliens (a számítógépen fut), szerver (háttérfolyamat a számítógépen) és az adbd démon (magán az Android-eszközön fut). Amikor egy fejlesztő vagy mérnök csatlakoztatja a smartphone-t a PC-hez, az ADB megbízható kommunikációs csatornát hoz létre, amelyen keresztül parancsok, fájlok és adatok küldhetők.
Az ADB fő használati forgatókönyvei közé tartozik az alkalmazások hibakeresése valós eszközön anélkül, hogy az APK-t közzé kellene tenni az áruházban, naplók kinyerése hibaelemzéshez, tesztelés automatizálása, adatok biztonsági mentése, recovery-rendszerképek flash-elése és root hozzáférés megszerzése. Még ha nem is ír kódot, az ADB hasznos lehet képernyőképek kinyeréséhez alkalmazásokból, videó útmutató rögzítéséhez a telefon képernyőjéről vagy az eszköz helyreállításához sikertelen flash-elés után.
Az ADB támogatás minden hivatalos Android buildbe be van építve a 2.1-es verziótól (API 7) kezdve. A működéshez a „USB-hibakeresés” opciót be kell kapcsolni a fejlesztői beállításokban. Az Android 4.2-től kezdve az első csatlakozáskor az eszköz megerősítést kér: engedélyezni kell a hibakeresést az adott számítógép számára az RSA-kulcs alapján.
Windows esetén — töltse le a Platform Tools-t a Google Developers hivatalos weboldaláról, csomagolja ki az archívumot a C:\adb mappába, és adja hozzá ezt az elérési utat a PATH környezeti változóhoz. A terminál újraindítása után az adb parancs globálisan elérhető lesz.
macOS esetén — a legegyszerűbb mód az ADB telepítésére a Homebrew csomagkezelőn keresztül: futtassa a brew install android-platform-tools parancsot. Minden függőség automatikusan megoldódik.
Linux esetén — Debian / Ubuntu alapú disztribúciókban: sudo apt install adb. Telepítés után adja hozzá a felhasználót a plugdev csoporthoz: sudo usermod -aG plugdev $USER és jelentkezzen be újra, hogy az ADB hozzáférjen az USB-eszközökhöz.
A telepítés helyességét az adb version paranccsal ellenőrizheti. Ha a válasz az Android Debug Bridge verziószámát mutatja, az eszköz készen áll a használatra.
Az első csatlakoztatás mindig az adb devices paranccsal kezdődik. Ez kilistázza a csatlakoztatott eszközöket és azok állapotát. Ha az eszköz unauthorized-ként jelenik meg, oldja fel a képernyőt, és erősítse meg a hibakeresést a telefonon.
adb devices
List of devices attached
emulator-5554 device
0123456789ABCD device
Alkalmazás telepítése — az egyik leggyakoribb művelet. Elég megadni az APK-fájl elérési útját:
adb install C:\apps\myapp.apk
Ha az alkalmazás már telepítve van, de frissített verzióra kell cserélni, adja hozzá a -r (replace) jelzőt:
adb install -r C:\apps\myapp-v2.apk
Alkalmazás eltávolítása a csomag neve alapján történik:
adb uninstall com.example.myapp
Fájlok másolása — az adb pull fájlt tölt le az eszközről a számítógépre, az adb push fájlt tölt fel az eszközre:
adb pull /sdcard/DCIM/screenshot.png .
adb push myfile.txt /sdcard/Documents/
Interaktív shell — az adb shell parancs megnyitja az eszköz parancsértelmezőjét. Ebben szabványos Linux-parancsok hajthatók végre: ls, ps, top, dumpsys, pm, am és mások.
adb shell
tissot_sprout:/ $ ls -la /sdcard/
tissot_sprout:/ $ ps | grep com.android.chrome
Aktivitás indítása az ADB-n keresztül lehetővé teszi bármely alkalmazás vagy képernyő megnyitását anélkül, hogy manuálisan kellene keresni az ikont:
adb shell am start -n com.android.chrome/com.google.android.apps.chrome.Main
Logcat — az Android naplózási rendszere, amely üzeneteket gyűjt az alkalmazásoktól, rendszerszolgáltatásoktól és a kerneltől. Az eszköz nélkülözhetetlen a hibakeresés során: a naplókból megérthető, miért omlott össze az alkalmazás, melyik metódus okozott kivételt, vagy mennyi ideig tart egy adott művelet.
Egyszerű indítás szűrők nélkül — adb logcat. A naplófolyam végtelen, a megállításhoz nyomja meg a Ctrl+C billentyűkombinációt. Az üzenetek címke szerinti szűréséhez használja a -s paramétert:
adb logcat -s MainActivity:V
A naplózás fontossági szintjei (a legrészletesebbtől a kritikusig): V (Verbose), D (Debug), I (Info), W (Warning), E (Error), F (Fatal). A címke és szint kombinációja lehetővé teszi csak a szükséges üzenetek kinyerését.
A felhalmozott puffer törléséhez teszt előtt:
adb logcat -c
A naplók fájlba mentéséhez:
adb logcat -d > app_logs.txt
A -d (dump) jelző megjeleníti az aktuális puffert és befejezi a futást anélkül, hogy blokkolná a terminált. Ez kényelmes automatizálási szkriptekhez.
Képernyőkép az adb shell screencap paranccsal készíthető. Az eredmény egy fájlba kerül, amelyet aztán az adb pull segítségével lehet letölteni:
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png
Mindkét művelet egyetlen sorba kombinálható helyettesítés és csővezeték használatával. A gyakorlatban ez felgyorsítja a dokumentáció és a tesztjelentések készítését.
Képernyőrögzítés Android 4.4+ (API 19) rendszeren érhető el. Az alapértelmezett rögzítési időtartam — 180 másodperc, bitráta — 4 Mbit/s. A fő parancs:
adb shell screenrecord /sdcard/demo.mp4
A rögzítés leállításához nyomja meg a Ctrl+C billentyűkombinációt. A videó felbontása megegyezik az eszköz képernyőjének felbontásával, de nem haladja meg a 1080p-t. A bitráta módosításához adja meg a --bit-rate paramétert:
adb shell screenrecord --bit-rate 8000000 /sdcard/demo.mp4
Diagnosztikai parancsok: az adb shell dumpsys megjeleníti az összes rendszerszolgáltatás állapotát. Csak az akkumulátorral kapcsolatos információk lekéréséhez:
adb shell dumpsys battery
A telepített csomagok listája a Package Manager segítségével kérhető le:
adb shell pm list packages
Az alkalmazás beállításainak visszaállítása (a beállításokban lévő adattörlés megfelelője):
adb shell pm clear com.example.myapp
Wi-Fi hibakeresés megszünteti az eszköz USB-n keresztüli csatlakoztatásának szükségességét. Győződjön meg róla, hogy a számítógép és az eszköz ugyanazon a hálózaton van. Először futtassa az adb tcpip 5555 parancsot, húzza ki az USB-t, majd csatlakozzon IP-n keresztül:
adb tcpip 5555
adb connect 192.168.1.100:5555
Ha az eszköz IP-címe ismeretlen, a kábel kihúzása előtt az adb shell ip addr show wlan0 paranccsal állapítható meg.
Adatok biztonsági mentése alkalmazás vagy a teljes rendszer szintjén root nélkül történik:
adb backup -apk -shared -all -system -f mybackup.ab
Visszaállítás biztonsági másolatból:
adb restore mybackup.ab
Bevitel emulálása — az adb shell input parancs lehetővé teszi érintések, csúsztatások, billentyűlenyomások és szövegbevitel szimulálását. Ez az alapja a UI-tesztek automatizálásának további keretrendszerek nélkül:
adb shell input tap 500 1000
adb shell input swipe 300 500 800 500
adb shell input text "Hello, ADB!"
Újraindítás különböző módokban:
adb reboot # normál újraindítás
adb reboot recovery # helyreállítási mód
adb reboot bootloader # rendszertöltő (fastboot)
A fastboot mód hozzáférést biztosít rendszerképek flash-eléséhez, a rendszertöltő feloldásához és egyéni recovery telepítéséhez.
Amikor több eszköz vagy emulátor van egyszerre csatlakoztatva, az ADB megköveteli a konkrét sorozatszám megadását. Az adb devices parancs kilistázza az összes csatlakoztatott eszközt a sorozatszámaikkal együtt.
A parancs adott eszközhöz való irányításához használja a -s jelzőt:
adb -s 0123456789ABCD install myapp.apk
Ha csak egy eszköz van, jelző nélkül is dolgozhat. CI-környezetben azonban, ahol egyszerre több emulátor fut, a sorozatszám megadása kötelező.
ADB-szerver leállítása — ha az eszköz már nem észlelhető, vagy hibát jelez, a szerver újraindítása segít:
adb kill-server
adb start-server
Ezt követően futtassa az adb devices parancsot — a szerver újraindul, és átirányítja a kéréseket az eszközdémonokhoz.
| Parancs | Leírás |
|---|---|
| adb devices | Csatlakoztatott eszközök listájának megjelenítése |
| adb install |
Telepítés APK-fájl az eszközre |
| adb uninstall |
Alkalmazás eltávolítása csomagnév alapján |
| adb shell | Interaktív parancsértelmező indítása |
| adb push |
Másolás fájl számítógépről eszközre |
| adb pull |
Fájl másolása eszközről számítógépre |
| adb logcat | Rendszer- és alkalmazásnaplók megtekintése |
| adb shell screencap | Képernyőkép készítése |
| adb shell screenrecord | Videó rögzítése a képernyőről |
| adb reboot | Újraindítás eszköz |
| adb tcpip 5555 | ADB átkapcsolása TCP/IP módba Wi-Fi-hez |
| adb connect |
Csatlakozás eszközhöz Wi-Fi-n keresztül |
Gyakran ismételt kérdések
Nyissa meg a „Beállítások" → „A telefonról" menüpontot, és kattintson 7-szer a „Build szám"-ra. Térjen vissza a beállítások főmenüjébe — megjelenik a „Fejlesztőknek" szakasz. Ezen belül kapcsolja be az „USB-hibakeresés"-t. Az Android 4.2-től kezdve az első számítógéphez csatlakozáskor meg kell erősíteni az RSA hibakeresési kulcsot az eszköz képernyőjén.
Az eszköz nem bízik a számítógépben. Oldja fel a telefon képernyőjét, amikor megjelenik az „USB-hibakeresés engedélyezése?" párbeszédablak, pipálja be a „Mindig engedélyezés ehhez a számítógéphez" opciót, és nyomja meg az „OK" gombot. Ha a párbeszédablak nem jelenik meg, húzza ki és csatlakoztassa újra az USB-kábelt, vagy futtassa az adb kill-server && adb start-server parancsot.
Az ADB nem igényel képernyő-interakciót. Csatlakoztassa az eszközt USB-n keresztül, várja meg, amíg megjelenik az adb devices-ben (ha a hibakeresés már be volt kapcsolva), és futtassa az adb install
Az ADB közvetlenül telepíti az APK-t, megkerülve a Google Play Protect ellenőrzéseket a telepítés során, ami lehetővé teszi az alkalmazások tesztelését a közzététel előtt. A végső rosszindulatú kód ellenőrzés azonban a telepítés után is lefut. Az ADB nem igényel Google-fiókot, ami fontos a vállalati kioszkok és a Google-szolgáltatások nélküli eszközök esetében.
Igen, az ADB-parancsok túlnyomó többsége root nélkül működik. Kivételt képeznek a védett rendszerpartíciókhoz hozzáférést igénylő parancsok (például a boot partíció közvetlen dump-ja vagy rendszerfájlok módosítása). A mindennapi feladatokhoz — alkalmazások telepítése, naplózás, képernyőképek, biztonsági mentések, bevitel emulálása — root nem szükséges.
ADB (Android Debug Bridge) — alapvető eszköz mindazok számára, akik professzionális szinten dolgoznak Androiddal. Az alkalmazások alapvető telepítésétől a bonyolult tesztautomatizálásig és eszközhelyreállításig — az ADB gyakorlatilag lefedi a számítógép okostelefonnal vagy táblagéppel való interakciójának minden forgatókönyvét.
Az ebben a cikkben leírt parancsok elsajátításával magabiztosan kezelheti az Android-eszközt a terminálon keresztül, elemezheti a naplókat, készíthet képernyőképeket a dokumentációhoz, végezhet biztonsági mentéseket és gyorsíthatja a fejlesztési folyamatot. A rendszeres gyakorlás és az adb help kimenetének tanulmányozása tapasztalt felhasználójává tesz ennek a hatékony eszköznek.
Összefoglalás
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is