„Android Debug Bridge“ yra daug dalykų, apie kuriuos galbūt nežinote. Spustelėkite čia, jei norite gauti naudingų patarimų ir gudrybių, kaip naudoti ADB!
Greitos nuorodos
- Prieiga prie apvalkalo
- Prisijungimas prie kelių įrenginių
- Failų perkėlimas
- Miško ruoša
- Įdiegtų programų sąrašas per ADB
- Programų diegimas ir pašalinimas per ADB
- APK ištraukimas naudojant ADB
- Programos duomenų atsarginių kopijų kūrimas ir atkūrimas
- Programos komponentų sąrašas
- Veiklos, paslaugų ir transliacijų imtuvų paleidimas
- Beveik bet kurios programos išjungimas ir įjungimas
- Ekrano kopijų fiksavimas
- Dvejetainių duomenų perkėlimas tarp kompiuterio ir „Android“ įrenginio
Jei buvote „Android“ entuziastas, slypintis modifikavimo scenoje, arba programų kūrėjas bet kurį laiką anksčiau ar vėliau pamatysite tvarkingą įrankį, vadinamą Android Debug Bridge arba ADB, skirtu trumpas. Jis plačiai naudojamas „Android Studio“ kaip komandų eilutės pagalbinė priemonė. „Android“ kūrėjai taip pat naudoja jį kaip atskirą sprendimą, skirtą programoms rankiniu būdu įdiegti ir išbandyti
Android išmanieji telefonai taip pat emuliuoti Android įrenginiai.Tačiau ADB gali padaryti daug, ir dauguma jų yra naudingi ne tik kūrėjams. Net jei nesate kūrėjas ir skaitote šį straipsnį, yra didelė tikimybė, kad vieną ar du kartus naudojote ADB įkelti programą iš šono arba pakoreguokite leidimą. Tačiau tai dar ne viskas, kam galima naudoti ADB. Skaitykite toliau, kad gautumėte patarimų ir gudrybių, kaip naudoti ADB, apie kuriuos galbūt nežinojote.
Kompiuteryje turi būti įdiegta ir paleista ADB. Būtinai perskaitykite mūsų straipsnį apie kaip įdiegti ADB jei reikia pagalbos. Jei naudojate „Windows“, tai taip pat reikia įdiekite atitinkamas OEM USB tvarkykles jūsų Android įrenginiui.
Prieiga prie apvalkalo
Jei anksčiau naudojote ADB, galite būti įpratę vykdyti komandas vienoje eilutėje. Tačiau taip pat galite naudoti ADB, kad atidarytumėte savo įrenginio terminalo apvalkalą ir tiesiogiai vykdytumėte komandas. Ir tai lengva!
Terminalo arba komandų eilutės lange:
adb shell
Tada būsite pasveikinti su a $
simbolis, kuriuo galite paleisti komandas tiesiai savo įrenginyje.
Prisijungimas prie kelių įrenginių
ADB gali bendrauti su keliais įrenginiais vienu metu. Tačiau tokiais atvejais išduodami ADB komandas turite nurodyti tikslinį įrenginį.
Norėdami tai padaryti, turėsite žinoti tikslinio įrenginio serijos numerį. Serialą galite gauti naudodami įrenginių komandą:
adb devices
Dabar naudokite -s
parinktis nurodyti tikslinio įrenginio serijos numerį. Pavyzdys:
adb -s <serialnumber> shell
Failų perkėlimas
Komandinės eilutės mėgėjams ADB suteikia labai paprastą būdą perkelti failus į „Android“ įrenginį ir iš jo. Tiesiog naudokite pull
komanda kopijuoti failus ir katalogus iš įrenginio ir push
komanda kopijuoti failus ir katalogus į įrenginį:
Jei norite nukopijuoti failą ar katalogą su jo pakatalogiais į „Android“ įrenginį:
adb push local_path device_path
- Pavyzdys:
adb push D:\image.png /sdcard
Ši komanda nukopijuos failą arba katalogą su jo pakatalogiais iš „Android“ įrenginio į pagrindinį kompiuterį:
adb pull device_path local_path
- Pavyzdys:
adb pull /sdcard/backup_April.tar D:\Backup
Miško ruoša
„Android Studio“ teikia Logcat langas, kuri palaiko žurnalų rodymą iš jūsų įrenginio realiuoju laiku. Tačiau tai nėra visiškai naudinga paketiniam apdorojimui. Laimei, „Android“ įrenginiai pristatomi su logcat komanda, pasiekiama per ADB, kurią galima naudoti sistemos ir programų žurnalo pranešimams iškelti ir spausdinti ekrane.
Pagrindinė sintaksė yra tokia:
adb logcat
Norėdami sužinoti daugiau, peržiūrėkite mūsų mokymo programą kaip paimti sistemos logcats, branduolio žurnalus ir dmesg sistemoje „Android“..
Velykų kiaušiniai
„Google“ siūlo du puikius velykinius kiaušinius, susijusius su „logcat“ komanda.
- Pirmasis yra lolcat, linktelėjimas į LOLcat meme. Ji suteikia tokią pat išvestį kaip ir įprasta logcat komanda.
adb lolcat
- Antrasis yra longcat, kuris atitinka logcat -v long komandą. Jame rodomi visi metaduomenų laukai ir atskiri pranešimai su tuščia eilute.
adb longcat
Įdiegtų programų sąrašas per ADB
Norėdami pamatyti įrenginyje įdiegtas programas, galite naudoti šią komandą:
adb shell pm list packages
Bus pateiktas įdiegtų programų paketų pavadinimų sąrašas, prie kurio bus pridėta kiekviena atskira eilutė package:
.
Galimybės
Taip pat yra keletas parinkčių, kurias galite naudoti norėdami gauti konkretesnius sąrašus.
- -f bus įtrauktas kelias į kiekvienos programos pagrindinį APK kartu su paketo pavadinimu.
- -a pasirūpins, kad būtų grąžintos visos žinomos ne APEX pakuotės.
- -d komanda grąžins tik išjungtus paketus.
- -e komanda grąžins tik įgalintus paketus.
- -s komanda grąžins tik sistemos paketus.
- -3 komanda grąžins tik trečiųjų šalių paketus.
- -i bus įtrauktas kiekvieno paketo diegimo programos paketo pavadinimas.
- -U bus įtrauktas kiekvieno paketo UID.
- -u apims pašalintus paketus.
- -- Rodyti versijos kodą bus įtrauktas kiekvieno paketo versijos kodas.
- --tik viršūnė grąžins tik APEX paketus.
- --uid bus rodomi tik paketai su nurodytu UID.
- --Vartotojas bus rodomi tik paketai, priklausantys nurodytam vartotojo ID.
Programų diegimas ir pašalinimas per ADB
Tai gana dažnas ADB naudojimas, bet vis tiek verta paminėti. Be kitų būdų, taip pat galite naudoti ADB įdiegti ir pašalinti Android programas į savo Android įrenginį.
APK diegimas
Jei kompiuteryje turite APK, galite jį įdiegti įrenginyje naudodami šiuos veiksmus:
adbinstall-rsomeapk.apk
Nepamirškite pakeisti someapk.apk
su visu keliu į APK, kurį norite įdiegti.
Galimybės
Yra daugybė APK diegimo per ADB parinkčių.
- The -r parinktis leidžia ADB įdiegti per esamą programą (ty atnaujinti). „Android Pie“ ir naujesnėje versijoje šios parinkties nurodyti nereikia.
- The -R parinktį, „Android Pie“ ir naujesnėms versijoms diegti nepavyks, jei programa jau įdiegta.
- The -i parinktis leidžia nurodyti diegimo programos paketo pavadinimą. Tai grąžinama, jei „Android“ nori sužinoti, kas įdiegė APK.
- The -t parinktis leidžia APK su Android: testOnly="true" jo manifeste, kurį reikia įdiegti.
- The -d parinktis leidžia nurodytam APK grąžinti į jau įdiegtą programą. Tai veikia tik tuo atveju, jei galima derinti abi programos versijas.
- The -g parinktis, skirta „Android Marshmallow“ ir naujesnėms priemonėms, automatiškai suteikia visus vykdymo laiko leidimus įdiegtai programai.
Tai dar ne visi. Jei norite viso sąrašo, galite peržiūrėti integruotą dokumentaciją.
Keli APK ir paketai
Jei turite daugybę APK, kuriuos norite įdiegti vienu metu iš kelių programų arba dėl to, kad diegiate programų rinkinį, galite naudoti ADB install-multiple
ir install-multi-package
funkcijos.
Jei visi jūsų APK yra skirti vienai programai, naudokite install-multiple
:
adbinstall-multipleapk1.apkapk2.apk ...
Kitu atveju naudokite install-multi-package
:
adbinstall-multi-packageapp1.apkapp2.apk ...
Šių komandų parinktys yra panašios į install
, bet su tam tikrais apribojimais. Peržiūrėkite ADB integruotą dokumentaciją, kurios parinktys galimos.
Programos pašalinimas
Jei norite pašalinti naudodami ADB, jums reikės programos, kurią norite pašalinti, paketo pavadinimo. Peržiūrėkite skyrių, skirtą Įdiegtų programų sąrašas jei dar to nepadarėte.
Kai turėsite paketo pavadinimą, pašalinkite taip paprastai:
adb uninstall <packagename>
Paprastai negalite pašalinti sistemos arba iš anksto įdiegtų programų naudodami šią komandą. Tačiau galbūt galėsite juos išjungti naudodami ADB. Peržiūrėkite skyrių Beveik bet kurios programos išjungimas ir įjungimas dėl detalių.
APK ištraukimas naudojant ADB
Yra daugybė priežasčių, kodėl galbūt norėsite išgauti programos APK. Galbūt norite sukurti atsarginę jo kopiją, kad galėtumėte ją naudoti ateityje, o gal jos nebepasiekiama internete ir norite perkelti ją į kitą įrenginį.
Programos išskleidimo naudojant ADB yra gana paprasta. Pirmiausia norėsite rasti programos, kurią norite išgauti, paketo pavadinimą. Tai galima padaryti keliais būdais, tačiau paprastai lengviausia yra naudoti įrenginio Nustatymų programą, kad peržiūrėtumėte visų įdiegtų programų sąrašą, pasirinkite norimą ir slinkite žemyn, kol rasite paketo pavadinimą arba programą ID.
Kai turėsite paketo pavadinimą, paleiskite šią komandą:
adb shell pm path <packagename>
Ši komanda pateiks visų to paketo pavadinimo APK kelią.
Tada galite naudoti šią komandą, kad ištrauktumėte kiekvieną APK į kompiuterį:
adb pull /path/to/apk.apk
Programos duomenų atsarginių kopijų kūrimas ir atkūrimas
Nors „Google“ dar turi pateikti „iOS“ tipo atsarginės kopijos vienu paspaudimu metodiką, galite naudoti ADB, kad sukurtumėte atsargines įdiegtų programų kopijas ir atkurtumėte jų duomenis. Tačiau funkcionalumas toli gražu nėra tobulas, o „Google“ jau padarė pažymėjo funkciją kaip nebenaudojamą.
Atgal į viršų
Norėdami sukurti atsarginę vienos programos su jos APK kopiją:
adb backup -apk <packagename> -f package_name_backup.ab
Jei norite sukurti visų programos duomenų atsarginę kopiją iš karto:
adb backup -f all -all -apk -nosystem
Kadangi atkūrimo modulis negali atlikti atskiro konkrečios programos atkūrimo, geriau sukurti konkretaus paketo atsargines kopijas. Šis komandos fragmentas (suderinamas su „Linux“ / „macOS“ ir „Windows“ posistemiu, skirtas Linux) gali tai padaryti už jus:
for APP in $(adb shell pm list packages -3)
do
APP=$( echo${APP} | sed "s/^package://")
adb backup -f ${APP}.backup ${APP}
done
Atkurti
Pirmiausia turite įdiegti išsaugotą APK;
adb install <packagename>.apk
Tada galite atkurti jo duomenis:
adbrestorepackage_name_backup.ab
Pakartotinai, ADB atsarginės kopijos ir atkūrimo funkcijos turi keletą įspėjimų, įskaitant kintamus rezultatus, priklausančius nuo ROM.
Programos komponentų sąrašas
Programos komponentai yra tokie, kaip jos veikla, transliacijos imtuvai, paslaugos ir pan. Kartais naudinga žinoti šių komponentų pavadinimus konkrečioje programoje, ypač jei norite paleisti paslėptas veiklas arba siųsti transliaciją su konkrečiais duomenimis.
Deja, ADB neturi labai švaraus būdo išvardyti programos komponentus. Bet tai įmanoma. Vykdykite šią komandą:
adb shell dumpsys package
Bus grąžinta visa krūva teksto.
- Slinkite, kol rasite Veiklos sprendimo lentelė pavadinimą, kad pamatytumėte veiklą.
- Pažiūrėk apačioje Imtuvo sprendimo lentelė „BroadcastReceivers“.
- Patikrink Paslaugų sprendimo lentelė už Paslaugas.
- Ir taip toliau.
Kiekvienas komponentas parodys veiksmą, kurio reikia norint jį paleisti, komponento pavadinimą ir galbūt šiek tiek papildomos informacijos.
Arba, jei norite paprastesnio būdo peržiūrėti veiklą, paslaugas ir imtuvus, galite naudoti „XDA Recognized Developer“ programą „Root Activity Launcher“. Zacharee1. Tai parodys tuos kiekvienos programos komponentus kartu su daugybe kitų patogių funkcijų.
Kaina: 0,99.
Veiklos, paslaugų ir transliacijų imtuvų paleidimas
ADB taip pat gali būti naudojamas norint paleisti veiklą, paleisti paslaugas ir pranešti „BroadcastReceivers“. Jei reikia, netgi galite nurodyti duomenų URI ir ketinimo priedus.
Norėdami paleisti komponentus, jums reikės komponento pavadinimo, kurį norite paleisti. Galite pamatyti, kaip tai gauti iš Programos komponentų sąrašas skyrius.
Veiklos paleidimo komandų sintaksė yra maždaug tokia:
am start -a <action> -n <component>
Paslaugos paleidimo komandų sintaksė yra maždaug tokia:
am startservice -a <action> -n <component>
Komandos sintaksė, skirta pranešti BroadcastReceiver, yra maždaug tokia:
am broadcast -a <action> -n <component>
Daugeliu atvejų veiklai ir paslaugoms veiksmo aiškiai nurodyti nereikia. Paprastai jo prireiks tik tuo atveju, jei komponentas naudoja kitą nei android.intent.action. PAGRINDINĖ.
Be pagrindinės sintaksės, štai kaip nurodyti daugiau duomenų, kuriuos reikia perduoti. Apskritai visos duomenų reikšmės turėtų būti pateiktos dvigubose kabutėse.
- -d leidžia nurodyti duomenų URI.
- -e arba --es leidžia nurodyti papildomą eilutę.
- --esn leidžia nurodyti nulinę eilutę.
- --ez naudojamas loginiam papildymui nurodyti.
- --ei naudojamas norint nurodyti sveikąjį papildomą skaičių.
- --el skirtas ilgam priedui nurodyti.
- --ef perduos plūdę papildomai.
- --eu perduoda papildomą URI.
- --ecn gali būti naudojamas papildomam komponento pavadinimui nurodyti.
-
--eia
perduos reikšmes kaip Integer[] priedą., ,... -
--Eial
perduos reikšmes kaip sąrašą, ,... . - Tie patys masyvo ir sąrašo argumentai taip pat tinka ilgiesiems, plūdiniams ir eilutėms. Tiesiog pakeiskite i su atitinkama raide.
- -f leidžia nurodyti vėliavėlę.
Galite naudoti dar daugiau elgesio parinkčių, todėl išsamios informacijos ieškokite integruotoje dokumentacijoje.
Beveik bet kurios programos išjungimas ir įjungimas
„Android“ sistemos programų negalima pašalinti ir, deja, daugelio jų taip pat negalima išjungti nustatymuose. Nors ADB neleis jums jų pašalinti, tai gali padėti juos išjungti.
Pirmiausia įsitikinkite, kad gavote norimos išjungti programos paketo pavadinimą. Tada išbandykite šias komandas. Jei nepavyksta, išbandykite kitą parinktį.
-
pm išjungti
- Norėdami vėl įjungti, naudokite pm įjungti
-
pm disable-user --user 0
- Norėdami vėl įjungti, naudokite pm įjungti
-
pm slėpti
- Norėdami vėl įjungti, naudokite pm neslėpti
-
pm sustabdyti
- Norėdami vėl įjungti, naudokite pm atšaukti sustabdymą
-
pm pašalinti -k --user 0
- Norėdami vėl įjungti, naudokite pm įdiegti-esamas
- Tai veiksmingai pašalina programą iš jūsų vartotojo profilio. Nors komandą iš naujo įjungti turėtų dirbs, nėra garantijos, kad veiks. Gali reikėti atkurti gamyklinius nustatymus, kad atkurtumėte programą.
- Jei įrenginyje naudojate kelis naudotojo profilius, būtinai pakeiskite 0 aukščiau pateiktose komandose tikruoju turimu vartotojo ID.
- Norėdami vėl įjungti, naudokite pm įdiegti-esamas
Norėdami sužinoti daugiau, peržiūrėkite mūsų mokymo programą kaip pašalinti operatorių ir OEM bloatware be root prieigos.
Ekrano kopijų fiksavimas
Dauguma Android ROM siūlo dvi patogias apvalkalo programas – ekrano dangtelį ir ekrano įrašą – atitinkamai ekrano kopijoms daryti ir ekrano veiklai įrašyti. Galite skambinti jiems tiesiai iš ADB apvalkalo, kad užfiksuotumėte statinę ekrano kopiją arba vaizdo įrašo fragmentą iš telefono ekrano ir išsaugotumėte jį tiesiai įrenginio vidinėje atmintyje.
Ekrano kopijos fiksavimo sintaksė yra gana paprasta:
adb shell screencap /sdcard/screenshot.png
Panašiai, jei reikia patraukti dinamišką ekrano užsklandą, atlikite šiuos veiksmus:
adb shell screenrecord /sdcard/recording.mp4
Kaip ir galima tikėtis, ekrano dangtelio įrankis yra gana paprastas, o ekrano įrašymo įrankis siūlo keletą parametrų. Pastarosios parinktys yra šios:
-
--dydis WIDTHxHEIGHT
- Nustatykite vaizdo failo skiriamąją gebą (pvz., „1280 x 720“). Pagal numatytuosius nustatymus jis bando naudoti tikslinio įrenginio pagrindinę ekrano skiriamąją gebą (jei palaikoma), o jei ne, ji grįžta į 1280 x 720.
-
--bitų sparta RATE
- Nustatykite vaizdo įrašo pralaidumą bitais per sekundę. Reikšmė gali būti nurodyta bitais arba megabitais, pvz. „4000000“ atitinka „4M“.
-
--pranešimas apie klaidas
- Galite pridėti papildomos informacijos, pvz., laiko žymos perdangą, kuri gali būti naudinga iliustruojant klaidas.
-
--time-limit TIME
- Nustatykite maksimalų įrašymo laiką sekundėmis. Numatytasis / didžiausias yra 180.
-
--vaizdo ID
- Nurodykite fizinį rodymo ID, kurį norite įrašyti. Numatytasis yra nustatytas kaip pagrindinis ekranas. Norėdami sužinoti galiojančius rodymo ID, žr. „dumpsys SurfaceFlinger --display-id“.
-
-- žodinis
- Rodyti išsamią informaciją apie įrašymo sesiją.
Galite dar labiau išplėsti „Android“ įtaisytųjų ekrano fiksavimo paslaugų galimybes scrcpy. Tai atvirojo kodo ekrano atspindėjimo sprendimas, kuris naudoja ADB galią.
Dvejetainių duomenų perkėlimas tarp kompiuterio ir „Android“ įrenginio
Jei nenorite sukurti visaverčio ADB apvalkalo, bet norite įtraukti supaprastintą dvejetainių duomenų perdavimą tarp pagrindinio kompiuterio ir tikslinio „Android“ įrenginio, galite pasinaudoti exec-in
ir exec-out
komandas.
Nepaisant jų užsitęsęs egzistavimas, vykdymo įvedimo ir vykdymo komandos vis dar nedokumentuotos. Jie gali sukelti failų sugadinimą dėl to, kaip skirtingi apvalkalai apdoroja įvestis ir išvestis. Naudokite atsargiai.
Pirmasis padeda vykdyti komandą „Android“ ir pateikti nefiltruotą konsolės įvestį kaip jos parametrą, o antroji veikia visiškai priešingai, t. y. paleidžia komandą „Android“ ir užfiksuoja jos nefiltruotą dvejetainę išvestį iš pagrindinio kompiuterio OS.
Pavyzdys:
adb exec-out "screencap -p" > "D:\screenshot.png"
Tai naudos screencap
Android komanda, kad užfiksuotų telefono ekrano ekrano kopiją, bet tiesiogiai išsaugo ją kaip screenshot.png pagrindinio kompiuterio D: skaidinyje (jei jame veikia Windows). Iš kitos pusės,
adb exec-in"cd /sdcard && tar -xf -" < "D:\backup.tar"
Tai ištrauks backup.tar failo turinį, saugomą pagrindinio kompiuterio (kuriame veikia Windows) skaidinyje D: Android įrenginio vidinės atminties šaknyje.
ADB yra neįtikėtinai galingas įrankis ir gali padaryti daug daugiau nei tik tai, kas aprašyta aukščiau. Šiame straipsnyje pateiktos komandos yra tik naudingas atskaitos taškas. Jei norite daugiau naudoti, peržiūrėkite komandas, pvz cmd -l norėdami pamatyti įvairias paslaugas, su kuriomis galbūt galėsite bendrauti ir ls -l /sistema/bin norėdami pamatyti skirtingus komandų vykdomuosius failus, esančius jūsų „Android“ ROM.
Jei norite sužinoti daugiau apie kitas „Android“ keliones ir žymes, peržiūrėkite mūsų vadovus kaip išjungti savo Android išmanųjį telefoną, kaip įdiegti TWRP atkūrimą, ir kaip įdiegti pasirinktinį ROM savo „Android“ įrenginyje.