Sok olyan dolog van az Android Debug Bridge-ben, amiről valószínűleg nem tud. Kattintson ide néhány hasznos tippért és trükkért az ADB használatához!
Gyors linkek
- Shell hozzáférés
- Csatlakozás több eszközhöz
- Fájlok átvitele
- Fakitermelés
- A telepített alkalmazások listázása az ADB-n keresztül
- Alkalmazások telepítése és eltávolítása az ADB-n keresztül
- APK-k kibontása ADB-vel
- Alkalmazásadatok biztonsági mentése és visszaállítása
- Alkalmazásösszetevők listázása
- Tevékenységek, szolgáltatások és műsorszóró vevők elindítása
- Szinte minden alkalmazás letiltása és engedélyezése
- Képernyőképek rögzítése
- Bináris adatok átvitele a számítógép és az Android készülék között
Ha Ön Android-rajongó, aki a modding szcénában lapul, vagy alkalmazásfejlesztő bármennyi ideig előbb-utóbb egy ügyes eszközre botlik, amelyet Android Debug Bridge-nek vagy ADB-nek hívnak. rövid. Az Android Studióban széles körben használják parancssori segédprogramként. Az Android-fejlesztők önálló megoldásként is használják az alkalmazások manuális telepítésére és tesztelésére Android okostelefonok valamint emulált Android-eszközök.
Az ADB azonban sok mindenre képes, és a legtöbb nem csak a fejlesztők számára hasznos. Még ha nem is fejlesztő, és ezt a cikket olvassa, jó eséllyel használta egyszer-kétszer az ADB-t oldalra töltsön be egy alkalmazást vagy módosítsa az engedélyt. De ez nem minden, amire az ADB használható. Olvasson tovább néhány tippért és trükkért az ADB használatához, amelyeket esetleg nem tud.
Az ADB-nek működnie kell a számítógépén. Feltétlenül tekintse meg cikkünket a hogyan kell telepíteni az ADB-t ha segítségre van szüksége. Abban az esetben, ha Windows rendszert használ, akkor ezt is meg kell tennie telepítse a megfelelő OEM USB illesztőprogramokat Android-eszközéhez.
Shell hozzáférés
Ha korábban használta az ADB-t, akkor megszokhatta, hogy a parancsokat egy sorban futtassa. De használhatja az ADB-t terminálhéj megnyitására is az eszközén, és közvetlenül futtathatja a parancsokat. És ez könnyű!
A terminálban vagy a parancssor ablakában:
adb shell
Ezután Önt a $
szimbólum, ahol parancsokat futtathat közvetlenül az eszközén.
Csatlakozás több eszközhöz
Az ADB egyszerre több eszközzel is tud kommunikálni. Az ilyen forgatókönyvekben azonban meg kell adnia a céleszközt, amikor ADB-parancsokat ad ki.
Ehhez ismernie kell a céleszköz sorozatszámát. A sorozatot a devices paranccsal szerezheti be:
adb eszközök
Most használja a -s
opció a céleszköz sorozatszámának megadásához. Példa:
adb -s <sorozatszámszám> héj
Fájlok átvitele
A parancssori rajongók számára az ADB nagyon egyszerű módot biztosít a fájlok Android-eszközére és onnan történő átvitelére. Csak használja a Húzni
parancs fájlok és könyvtárak másolásához az eszközről és a nyom
parancs a fájlok és könyvtárak eszközre másolásához:
Ha egy fájlt vagy könyvtárat az alkönyvtáraival együtt szeretne másolni az Android-eszközre:
adb push helyi_útvonal eszköz_útvonala
- Példa:
adb push D:\image.png /sdcard
A következő parancs egy fájlt vagy könyvtárat az alkönyvtáraival együtt másol az Android-eszközről a gazdaszámítógépre:
adb pull eszköz_útvonala helyi_útvonal
- Példa:
adb pull /sdcard/backup_April.tar D:\Backup
Fakitermelés
Az Android Studio biztosítja a Logcat ablak, amely támogatja a naplók valós idejű megjelenítését az eszközről. A kötegelt feldolgozáshoz azonban nem éppen hasznos. Szerencsére az Android készülékek az ADB-n keresztül elérhető logcat paranccsal szállítják, amellyel rendszer- és alkalmazásnaplóüzenetek kiírhatók, és a képernyőre nyomtathatók.
Az alapvető szintaxis a következő:
adb logcat
Ha többet szeretne megtudni, tekintse meg oktatóanyagunkat hogyan veheti fel a rendszernaplókat, a kernelnaplókat és a dmesg-t Androidon.
húsvéti tojás
A Google két remek húsvéti tojást kínál a logcat parancshoz kapcsolódóan.
- Az első a lolcat, egy biccentés a LOLcat mém. Ugyanazt a kimenetet adja, mint a szokásos logcat parancs.
adb lolcat
- A második a longcat, ami egyenértékű a logcat -v long paranccsal. Üres sorral jeleníti meg az összes metaadatmezőt és külön üzenetet.
adb longcat
A telepített alkalmazások listázása az ADB-n keresztül
Az eszközre telepített alkalmazások megtekintéséhez használja a következő parancsot:
adb shell pm lista csomagokat
Ez visszaadja a telepített alkalmazások csomagneveinek listáját, mindegyik saját sorában, amely elé kerül csomag:
.
Lehetőségek
Vannak olyan lehetőségek is, amelyek segítségével pontosabb listákat kérhet le.
- -f tartalmazza az egyes alkalmazások alap-APK-jának elérési útját a csomagnévvel együtt.
- -a gondoskodik arról, hogy az összes ismert, nem APEX csomag visszakerüljön.
- -d hatására a parancs csak a letiltott csomagokat adja vissza.
- -e hatására a parancs csak az engedélyezett csomagokat adja vissza.
- -s hatására a parancs csak rendszercsomagokat ad vissza.
- -3 hatására a parancs csak harmadik féltől származó csomagokat ad vissza.
- -én minden csomaghoz tartalmazza a telepítőcsomag nevét.
- -U minden csomaghoz tartalmazza a csomag UID-jét.
- -u tartalmazni fogja az eltávolított csomagokat.
- --show-versioncode tartalmazza az egyes csomagok verziókódját.
- --csak csúcs csak APEX csomagokat küld vissza.
- --uid csak a megadott UID-vel rendelkező csomagokat jeleníti meg.
- --felhasználó csak az adott felhasználói azonosítóhoz tartozó csomagokat jeleníti meg.
Alkalmazások telepítése és eltávolítása az ADB-n keresztül
Ez az ADB viszonylag gyakori használata, de mindenképpen érdemes megemlíteni. Többek között az ADB-t is használhatja Android-alkalmazások telepítése és eltávolítása Android-eszközére.
APK telepítése
Ha van APK a számítógépén, az alábbiakkal telepítheti azt eszközére:
adbtelepítés-rsomeapk.apk
Ne felejtse el cserélni someapk.apk
a telepíteni kívánt APK teljes elérési útjával.
Lehetőségek
Számos lehetőség van az APK-k ADB-n keresztüli telepítésére.
- A -r opció lehetővé teszi az ADB telepítését egy meglévő alkalmazáson keresztül (azaz frissítést). Android Pie és újabb verziók esetén nem kell megadnia ezt a lehetőséget.
- A -R Az Android Pie és újabb verziók esetén a telepítés sikertelen lesz, ha az alkalmazás már telepítve van.
- A -én opció lehetővé teszi a telepítőcsomag nevének megadását. Ezt kapja vissza, ha az Android tudni akarja, hogy mi telepítette az APK-t.
- A -t opció lehetővé teszi az APK-t a android: testOnly="true" telepítendő jegyzékében.
- A -d Az opció lehetővé teszi, hogy a megadott APK egy már telepített alkalmazásra való visszaminősítés legyen. Ez csak akkor működik, ha az alkalmazás mindkét verziója hibakereshető.
- A -g Az Android Marshmallow és újabb verziója automatikusan megadja az összes futásidejű engedélyt a telepített alkalmazásnak.
Ez nem mindegyik. Ha teljes listát szeretne, tekintse meg a beépített dokumentációt.
Több APK és csomag
Ha több APK-t szeretne egyszerre telepíteni, akár több alkalmazásból, akár azért, mert egy alkalmazáscsomagot telepít, használhatja az ADB-t. install-multiple
és install-multi-csomag
jellemzők.
Ha az összes APK egy alkalmazáshoz tartozik, használja install-multiple
:
adbinstall-multipleapk1.apkapk2.apk ...
Ellenkező esetben használja install-multi-csomag
:
adbinstall-multi-csomagapp1.apkapp2.apk ...
A parancsok beállításai hasonlóak a telepítés
, de bizonyos korlátozásokkal. Tekintse meg az ADB beépített dokumentációját, hogy mely opciók állnak rendelkezésre.
Egy alkalmazás eltávolítása
Az ADB használatával történő eltávolításhoz szüksége lesz az eltávolítani kívánt alkalmazás csomagnevére. Nézze meg a részt A telepített alkalmazások listázása ha még nem tetted meg.
Miután megvan a csomagnév, az eltávolítás olyan egyszerű, mint:
adb eltávolítás <csomag név>
Általában nem távolíthatja el a rendszert vagy az előre telepített alkalmazásokat ezzel a paranccsal. Előfordulhat azonban, hogy letilthatja őket az ADB-vel. Nézze meg a részt Szinte minden alkalmazás letiltása és engedélyezése a részletekért.
APK-k kibontása ADB-vel
Számos oka lehet annak, hogy érdemes kibontani egy alkalmazás APK-ját. Lehet, hogy biztonsági másolatot szeretne készíteni róla későbbi használatra, vagy esetleg már nem érhető el online, és át szeretné vinni egy másik eszközre.
Az alkalmazás ADB használatával történő kibontása meglehetősen egyszerű. Először is meg kell találnia a kicsomagolni kívánt alkalmazás csomagnevét. Ezt többféleképpen is megteheti, de a legegyszerűbb általában az eszköz Beállítások alkalmazását használni a Az összes telepített alkalmazás listáját, válassza ki a kívántat, és görgessen lefelé, amíg meg nem találja a csomag nevét vagy alkalmazását ID.
Miután megkapta a csomag nevét, futtassa a következő parancsot:
adb shell pm elérési útja <csomag név>
Ez a parancs az adott csomagnévhez tartozó összes APK elérési útját adja vissza.
Ezután a következő paranccsal húzhatja az egyes APK-kat a számítógépére:
adb pull /path/to/apk.apk
Alkalmazásadatok biztonsági mentése és visszaállítása
Bár a Google még nem dolgozott ki egy iOS-szerű egykattintásos biztonsági mentési módszert, az ADB segítségével biztonsági másolatot készíthet és visszaállíthatja a telepített alkalmazásokat az adatokkal együtt. A funkcionalitás azonban korántsem tökéletes, és a Google már meg is tette a funkciót elavultként jelölte meg.
Biztonsági mentés
Egyetlen alkalmazás biztonsági mentése az APK-val együtt:
adb biztonsági mentés -apk <csomagnév> -f csomag_neve_backup.ab
Ha egyszerre szeretne biztonsági másolatot készíteni az összes alkalmazásadatról:
adb biztonsági mentés -f minden -minden -apk -nosystem
Mivel a visszaállítási modul nem tud egyedi alkalmazás-specifikus visszaállítást végrehajtani, jobb, ha csomagspecifikus biztonsági másolatot készít. A következő parancsrészlet (kompatibilis a Linux/macOS rendszerrel és a Linux alrendszerrel) megteheti helyetted:
számára APP ban ben $(adb shell pm listacsomagok -3)
csináld
APP=$( visszhang${APP} | sed "s/^package://")
adb biztonsági mentés -f ${APP}.biztonsági mentés ${APP}
Kész
visszaállítás
Először telepítenie kell a mentett APK-t;
adb telepítés <csomagnév>.apk
Ezután visszaállíthatja az adatait:
adbvisszaállításpackage_name_backup.ab
Ismétlem, az ADB biztonsági mentési és visszaállítási funkcióinak számos figyelmeztetése van, beleértve a ROM-tól függően változó eredményeket.
Alkalmazásösszetevők listázása
Az alkalmazás összetevői olyan dolgok, mint a tevékenységek, a Broadcast-vevők, a szolgáltatások és így tovább. Néha hasznos tudni ezeknek az összetevőknek a nevét egy adott alkalmazásban, különösen akkor, ha rejtett tevékenységeket szeretne indítani, vagy adást szeretne küldeni meghatározott adatokkal.
Sajnos az ADB nem rendelkezik túl tiszta módszerrel az alkalmazás összetevőinek felsorolására. De lehetséges. Futtassa a következő parancsot:
adb shell dumpsys csomag
Egy egész csomó szöveg kerül visszaküldésre.
- Görgessen, amíg meg nem találja a Tevékenységfeloldó táblázat címet a tevékenységek megtekintéséhez.
- Nézz alá Vevő feloldó táblázat a BroadcastReceivers számára.
- Ellenőrizd a Szolgáltatásmegoldó táblázat a Szolgáltatásokhoz.
- Stb.
Mindegyik összetevő megmutatja az elindításához szükséges műveletet, az összetevő nevét, és esetleg néhány további információt.
Alternatív megoldásként, ha egyszerűbben szeretné látni a tevékenységeket, a szolgáltatásokat és a vevőket, használhatja az XDA Recognized Developer Root Activity Launcher alkalmazását. Zacharee1. Megmutatja ezeket az összetevőket az egyes alkalmazásokhoz, valamint egy csomó más hasznos funkciót.
Ára: 0,99.
Tevékenységek, szolgáltatások és műsorszóró vevők elindítása
Az ADB is használható tevékenységek indítására, szolgáltatások indítására és a BroadcastReceivers értesítésére. Szükség esetén még adat-URI-kat és Intent-extrákat is megadhat.
Összetevők indításához szüksége lesz az indítani kívánt összetevő nevére. Megnézheti, hogyan lehet ezt megszerezni a Alkalmazás-összetevők listázása szakasz.
A tevékenység indításának parancs szintaxisa a következő:
am start -a <akció> -n <összetevő>
A szolgáltatás indításának parancs szintaxisa a következő:
am startservice -a <akció> -n <összetevő>
A BroadcastReceiver értesítésének parancs szintaxisa a következő:
am sugárzott -a <akció> -n <összetevő>
A legtöbb esetben a tevékenységek és szolgáltatások esetében nem kell kifejezetten megadnia egy műveletet. Általában csak akkor lesz rá szüksége, ha az összetevő mást használ, mint android.intent.action. FŐ.
Az alapvető szintaxison felül a következőképpen adhat meg további adatokat, amelyeket át kell adni. Általában minden adatértéket idézőjelbe kell tenni.
- -d lehetővé teszi egy adat-URI megadását.
- -e vagy --es lehetővé teszi egy String extra megadását.
- --esn lehetővé teszi egy null String extra megadását.
- --ez logikai extra megadására szolgál.
- --ei egész szám extra megadására szolgál.
- --el egy hosszú extra megadására szolgál.
- --ef úszó extrát fog átadni.
- --eu átad egy URI-t.
- --ecn extra komponensnév megadására használható.
-
--eia
az értékeket Integer[] extraként adja át., ,... -
--eial
Listaként adja át az értékeket, ,... . - Ugyanezek a tömb- és listaargumentumok működnek long, float és Strings esetén is. Csak cserélje ki a én a megfelelő betűvel.
- -f lehetővé teszi egy zászló megadását.
Még több viselkedési beállítás is használható, ezért a részletekért tekintse meg a beépített dokumentációt.
Szinte minden alkalmazás letiltása és engedélyezése
Az Android rendszeralkalmazásai nem távolíthatók el, és sajnos sok közülük nem is tiltható le a Beállításokban. Az ADB ugyan nem engedi eltávolítani őket, de segíthet letiltani őket.
Először győződjön meg arról, hogy megkapta a letiltani kívánt alkalmazás csomagnevét. Ezután próbálja ki ezeket a parancsokat. Ha valamelyik nem sikerül, próbálkozzon a következő lehetőséggel.
-
pm letilt
- Az újbóli engedélyezéshez használja pm engedélyezése
-
pm disable-user --user 0
- Az újbóli engedélyezéshez használja pm engedélyezése
-
pm bújj el
- Az újbóli engedélyezéshez használja pm felfed
-
délután felfüggesztés
- Az újbóli engedélyezéshez használja pm felfüggesztés
-
pm uninstall -k --user 0
- Az újbóli engedélyezéshez használja pm telepítés-létező
- Ez hatékonyan eltávolítja az alkalmazást a felhasználói profilból. Miközben az újraengedélyezési parancsot kellene működik, semmi garancia nincs rá. Előfordulhat, hogy az alkalmazás visszaállításához vissza kell állítania a gyári beállításokat.
- Ha több felhasználói profilt használ az eszközön, győződjön meg róla, hogy a fenti parancsok 0-ját cserélje ki a tényleges felhasználói azonosítóra.
- Az újbóli engedélyezéshez használja pm telepítés-létező
Ha többet szeretne megtudni, tekintse meg oktatóanyagunkat hogyan lehet eltávolítani a szolgáltatót és az OEM bloatware-t root hozzáférés nélkül.
Képernyőképek rögzítése
A legtöbb Android ROM két praktikus shell-segédprogramot kínál – a screencap-et és a screenrecord-ot – képernyőképek készítéséhez, illetve képernyőtevékenységek rögzítéséhez. Közvetlenül az ADB-héjból hívhatja őket, hogy statikus képernyőképet vagy videórészletet készítsen a telefon képernyőjéről, és közvetlenül az eszköz belső tárhelyére mentse.
A képernyőkép rögzítésének szintaxisa meglehetősen egyszerű:
adb shell screencap /sdcard/screenshot.png
Hasonlóképpen, ha dinamikus képernyőképet kell megragadnia, tegye a következőket:
adb shell screenrecord /sdcard/recording.mp4
Ahogy az várható volt, a screencap eszköz meglehetősen egyszerű, míg a screenrecord segédprogram számos paramétert kínál. Ez utóbbira a következő lehetőségek vannak:
-
--méret WIDTHxHEIGHT
- Állítsa be a videofájl felbontását (pl. „1280x720”). Alapértelmezés szerint megpróbálja felvenni a céleszköz fő kijelzőjének felbontását (ha támogatott), és visszamegy 1280x720-ra, ha nem.
-
--bitráta RATE
- Állítsa be a videó bitsebességét, bit per másodpercben. Az érték megadható bitben vagy megabitben, pl. A „4000000” a „4M”-nek felel meg.
-
--Hibajelentés
- Hozzáadhat további információkat, például időbélyegző fedvényt, amely hasznos lehet a hibák illusztrálására.
-
--time-limit TIME
- Állítsa be a maximális felvételi időt, másodpercben. Az alapértelmezett / maximum 180.
-
-- Display-ID ID
- Adja meg a rögzítendő fizikai megjelenítési azonosítót. Az alapértelmezett az elsődleges kijelző. Az érvényes megjelenítési azonosítókért lásd: "dumpsys SurfaceFlinger --display-id".
-
--bőbeszédű
- A felvételi munkamenettel kapcsolatos részletes információk megjelenítése.
Tovább bővítheti az Android beépített képernyőrögzítő segédprogramjainak képességeit, ha scrcpy. Ez egy nyílt forráskódú képernyőtükrözési megoldás, amely az ADB erejét használja ki.
Bináris adatok átvitele a számítógép és az Android készülék között
Abban az esetben, ha nem szeretne teljes értékű ADB-héjat létrehozni, hanem szeretné beépíteni a bináris adatok egyszerű továbbítását a gazdaszámítógép és a cél Android-eszköz közé, használhatja a végrehajtó
és exec-out
parancsokat.
Annak ellenére, hogy elhúzódó létezés, az exec-in és exec-out parancsok még mindig nem dokumentáltak. Fájlsérüléshez vezethetnek a különböző parancsértelmezők bemeneti és kimeneti kezelése miatt. Óvatosan használja.
Az első segít egy parancs végrehajtásában Androidon, és a szűretlen konzolbemenetet adja meg paramétereként, míg a A második pont az ellenkezőjét teszi, azaz futtat egy parancsot Androidon, és rögzíti annak szűretlen bináris kimenetét a gazdagép operációs rendszerrel.
Példa:
adb végrehajtó-ki "screencap -p" > "D:\screenshot.png"
Ez fogja használni a képernyősapka
Az Android parancsával képernyőképet készíthet a telefon kijelzőjéről, de közvetlenül elmenti screenshot.png néven a gazdagép PC D: partíciójába (feltéve, hogy Windows fut). Másrészről,
adb végrehajtó-ban ben"cd /sdcard && tar -xf -" < "D:\backup.tar"
Ezzel kibontja a gazdaszámítógép (Windows alatt) D: partíciójában tárolt backup.tar fájl tartalmát az Android-eszköz belső tárhelyének gyökerében.
Az ADB egy hihetetlenül hatékony eszköz, és sokkal többre képes, mint a fentiek. A cikkben található parancsok csak hasznos kiindulópontot jelentenek. Haladóbb használathoz nézze meg a parancsokat, mint pl cmd -l különböző szolgáltatások megtekintéséhez, amelyekkel interakcióba léphet, és ls -l /rendszer/bin az Android ROM-on elérhető különböző parancs-végrehajtási fájlok megtekintéséhez.
Egyéb Android-utazások és kullancsok tekintetében tekintse meg útmutatónkat a következő oldalon hogyan rootolja az Android okostelefonját, hogyan kell telepíteni a TWRP helyreállítást, és hogyan telepíthet egyéni ROM-ot Android-eszközére.