ADB näpunäited ja nipid: käsud, mida iga energiakasutaja peaks teadma

Android Debug Bridge'is on palju, millest te ei pruugi teada. ADB kasutamise kohta kasulike näpunäidete ja nippide saamiseks klõpsake siin!

Kiirlingid

  • Shelli juurdepääs
  • Ühendamine mitme seadmega
  • Failide ülekandmine
  • Logimine
  • Installitud rakenduste loend ADB kaudu
  • Rakenduste installimine ja desinstallimine ADB kaudu
  • APK-de ekstraktimine ADB-ga
  • Rakenduse andmete varundamine ja taastamine
  • Rakenduse komponentide loend
  • Tegevuste, teenuste ja saatevastuvõtjate käivitamine
  • Peaaegu iga rakenduse keelamine ja lubamine
  • Ekraanipiltide jäädvustamine
  • Binaarandmete edastamine arvuti ja Android-seadme vahel

Kui olete olnud Androidi entusiast, kes varitseb modifitseerimisstseenis, või rakenduste arendaja. varem või hiljem komistate kena tööriista otsa, mida nimetatakse Androidi silumissildiks või ADB-ks. lühike. Seda kasutatakse Android Studios laialdaselt käsurea utiliidina. Androidi arendajad kasutavad seda ka eraldiseisva lahendusena rakenduste käsitsi installimiseks ja testimiseks Android nutitelefonid samuti emuleeritud Android-seadmed.

Kuid ADB saab palju teha ja suurem osa sellest pole kasulik ainult arendajatele. Isegi kui te ei ole arendaja ja loete seda artiklit, on tõenäoline, et olete ADB-d üks või kaks korda kasutanud. külglaadige rakendus või muutke luba. Kuid see pole veel kõik, milleks ADB-d kasutada saab. Jätkake lugemist mõnede näpunäidete ja näpunäidete saamiseks ADB kasutamise kohta, millest te võib-olla ei teadnud.

Teie arvutis peab olema ADB töökorras. Tutvuge kindlasti meie artikliga kuidas installida ADB kui vajate abi. Kui kasutate Windowsi, peate ka seda tegema installige sobivad OEM-i USB-draiverid teie Android-seadme jaoks.

Shelli juurdepääs

Kui olete varem ADB-d kasutanud, võite olla harjunud käivitama käske ühel real. Kuid saate kasutada ka ADB-d, et avada oma seadmes terminali kest ja käivitada käske otse. Ja see on lihtne!

Terminali või käsuviiba aknas tehke järgmist.

adb shell

Seejärel tervitatakse teid a $ sümbol, kus saate käske otse oma seadmes käivitada.

Ühendamine mitme seadmega

ADB saab suhelda mitme seadmega korraga. Selliste stsenaariumide korral ADB-käskude väljastamisel peate siiski määrama sihtseadme.

Selleks peate teadma sihtseadme seerianumbrit. Saate hankida seeria, kasutades seadmete käsku:

adb devices

Nüüd kasutage -s suvand sihtseadme seerianumbri määramiseks. Näide:

adb -s <serialnumber> shell

Failide ülekandmine

Käsurea fännidele pakub ADB väga lihtsat viisi failide ülekandmiseks Android-seadmesse ja sealt välja. Kasutage lihtsalt pull käsk failide ja kataloogide kopeerimiseks seadmest ja push käsk failide ja kataloogide seadmesse kopeerimiseks:

Kui soovite kopeerida faili või kataloogi koos selle alamkataloogidega Android-seadmesse:

adb push local_path device_path
  • Näide: adb push D:\image.png /sdcard

Järgmine käsk kopeerib faili või kataloogi koos selle alamkataloogidega Android-seadmest hostarvutisse:

adb pull device_path local_path
  • Näide: adb pull /sdcard/backup_April.tar D:\Backup

Logimine

Android Studio pakub Logcati aken, mis toetab teie seadme logide kuvamist reaalajas. Siiski pole see partii töötlemisel just kasulik. Õnneks tarnitakse Android-seadmetes ADB kaudu saadaolevat käsku logcat, mida saab kasutada süsteemi ja rakenduste logiteadete kustutamiseks ja nende ekraanile printimiseks.

Põhiline süntaks on järgmine:

adb logcat

Lisateabe saamiseks vaadake meie õpetust kuidas võtta Androidis süsteemi logcate, kerneli logisid ja dmesg.

lihavõttemunad

Google pakub kahte vahvat lihavõttemuna, mis on seotud käsuga logcat.

  1. Esimene on lolcat, nod the LOLcat meem. See annab sama väljundi kui tavaline logcat käsk.
    adb lolcat
  2. Teine on longcat, mis on samaväärne käsuga logcat -v long. See kuvab kõik metaandmete väljad ja eraldi sõnumid tühja reaga.
    adb longcat

Installitud rakenduste loend ADB kaudu

Seadmesse installitud rakenduste vaatamiseks võite kasutada järgmist käsku:

adb shell pm list packages

See tagastab installitud rakenduste pakettide nimede loendi, mille ees on igaühe eraldi real package:.

Valikud

Samuti on mõned valikud, mida saate kasutada täpsemate loendite hankimiseks.

  • -f sisaldab iga rakenduse põhi-APK teed koos paketi nimega.
  • -a tagab, et kõik teadaolevad mitte-APEX-pakid tagastatakse.
  • -d põhjustab käsu tagastamise ainult keelatud pakette.
  • -e põhjustab käsu tagastamise ainult lubatud paketid.
  • -s põhjustab käsu tagastamise ainult süsteemipakette.
  • -3 põhjustab käsu tagastamise ainult kolmanda osapoole pakette.
  • -i sisaldab iga paketi installipaketi nime.
  • -U sisaldab iga paketi UID-d.
  • -u sisaldab desinstallitud pakette.
  • -- näita versioonikoodi sisaldab iga paketi versioonikoodi.
  • --ainult tipus tagastab ainult APEX paketid.
  • --uid kuvab ainult antud UID-ga pakette.
  • --kasutaja kuvab ainult antud kasutajatunnusele kuuluvaid pakette.

Rakenduste installimine ja desinstallimine ADB kaudu

See on ADB suhteliselt levinud kasutusala, kuid see väärib siiski mainimist. Muuhulgas saate kasutada ka ADB-d installige ja desinstallige Androidi rakendused oma Android-seadmesse.

APK installimine

Kui teie arvutis on APK, saate selle oma seadmesse installida järgmiselt.

adbinstall-rsomeapk.apk

Ärge unustage välja vahetada someapk.apk koos installitava APK täieliku teega.

Valikud

APK-de installimiseks ADB kaudu on palju võimalusi.

  • The -r valik võimaldab ADB-l installida olemasoleva rakenduse kaudu (st värskendada). Android Pie ja uuemates versioonides ei pea te seda valikut määrama.
  • The -R Android Pie ja uuemate versioonide puhul põhjustavad installimise nurjumise, kui rakendus on juba installitud.
  • The -i suvand võimaldab määrata installipaketi nime. See tagastatakse, kui Android soovib teada, mis APK installis.
  • The -t valik võimaldab APK-d koos android: testOnly="true" selle installitavas manifestis.
  • The -d suvand võimaldab määratud APK-d minna üle juba installitud rakendusele. See toimib ainult siis, kui rakenduse mõlemad versioonid on silutavad.
  • The -g valik Android Marshmallow ja uuemate jaoks annab installitud rakendusele automaatselt kõik käitusaja load.

See pole veel kõik. Kui soovite täielikku loendit, võite vaadata sisseehitatud dokumentatsiooni.

Mitu APK-d ja kogumit

Kui teil on hunnik APK-sid, mida soovite korraga installida kas mitmest rakendusest või seetõttu, et installite rakenduste kogumit, saate kasutada ADB-sid. install-multiple ja install-multi-package Funktsioonid.

Kui kõik teie APK-d on ühe rakenduse jaoks, kasutage install-multiple:

adbinstall-multipleapk1.apkapk2.apk ...

Vastasel juhul kasutage install-multi-package:

adbinstall-multi-packageapp1.apkapp2.apk ...

Nende käskude valikud on sarnased install, kuid teatud piirangutega. Vaadake saadaolevate valikute kohta ADB sisseehitatud dokumentatsiooni.

Rakenduse desinstallimine

ADB-ga desinstallimiseks vajate desinstallitava rakenduse paketi nime. Tutvuge jaotisega Installitud rakenduste loend kui sa seda juba teinud ei ole.

Kui teil on paketi nimi, on desinstallimine sama lihtne:

adb uninstall <packagename>

Tavaliselt ei saa te seda käsku kasutades süsteemi ega eelinstallitud rakendusi desinstallida. Siiski võib teil olla võimalik need ADB-ga keelata. Tutvu jaotisega Peaaegu iga rakenduse keelamine ja lubamine üksikasjade saamiseks.

APK-de ekstraktimine ADB-ga

On palju põhjuseid, miks võiksite rakenduse APK(id) ekstraktida. Võib-olla soovite selle edaspidiseks kasutamiseks varundada või pole see enam võrgus saadaval ja soovite selle teise seadmesse üle kanda.

Rakenduse ekstraheerimine ADB abil on üsna lihtne. Esiteks peaksite leidma ekstraktitava rakenduse paketi nime. Selleks on mitu võimalust, kuid kõige lihtsam on tavaliselt kasutada oma seadme rakendust Seaded, et vaadata kõigi installitud rakenduste loendisse, valige soovitud rakendus ja kerige alla, kuni leiate paketi nime või rakenduse ID.

Kui teil on paketi nimi, käivitage järgmine käsk:

adb shell pm path <packagename>

See käsk tagastab kõigi selle paketinime APK-de tee.

Seejärel saate iga APK arvutisse tõmbamiseks kasutada järgmist käsku:

adb pull /path/to/apk.apk

Rakenduse andmete varundamine ja taastamine

Kuigi Google ei ole veel iOS-i jaoks mõeldud ühe klõpsuga varundamise metoodikat välja mõelnud, saate ADB-d kasutada installitud rakenduste varundamiseks ja taastamiseks koos nende andmetega. Funktsionaalsus pole aga kaugeltki täiuslik ja Google on seda juba teinud märkis funktsiooni aegunuks.

Tagasi üles

Ühe rakenduse ja selle APK varundamiseks tehke järgmist.

adb backup -apk <packagename> -f package_name_backup.ab

Kui soovite kõik rakenduse andmed korraga varundada, toimige järgmiselt.

adb backup -f all -all -apk -nosystem

Kuna taastemoodul ei saa teostada individuaalset rakendusepõhist taastamist, on parem luua paketipõhised varukoopiad. Järgmine käsulõik (ühildub Linuxi/macOS-i ja Windowsi alamsüsteemiga Linuxile) saab seda teie eest teha:

for APP in $(adb shell pm list packages -3)
do
APP=$( echo${APP} | sed "s/^package://")
adb backup -f ${APP}.backup ${APP}
done

Taastama

Esiteks peate installima salvestatud APK;

adb install <packagename>.apk

Seejärel saate selle andmed taastada:

adbrestorepackage_name_backup.ab

Kordame veelkord, et ADB varundamise ja taastamise funktsioonidel on mitu hoiatust, sealhulgas sõltuvalt ROM-ist erinevad tulemused

Rakenduse komponentide loend

Rakenduse komponendid on näiteks selle tegevused, leviedastuse vastuvõtjad, teenused ja nii edasi. Mõnikord on kasulik teada nende komponentide nimesid konkreetses rakenduses, eriti kui soovite käivitada peidetud tegevusi või saata ülekande konkreetsete andmetega.

Kahjuks ei ole ADB-l väga puhas viis rakenduse komponentide loetlemiseks. Aga see on võimalik. Käivitage järgmine käsk:

adb shell dumpsys package

Tagasi saadetakse terve hulk teksti.

  • Kerige, kuni leiate Tegevuste lahendamise tabel tegevuste vaatamiseks pealkiri.
  • Vaata alla Vastuvõtja lahendamise tabel BroadcastReceiversile.
  • Kontrolli Teenuse lahendamise tabel teenuste jaoks.
  • Ja nii edasi.

Iga komponent näitab selle käivitamiseks vajalikku toimingut, komponendi nime ja võib-olla ka lisateavet.

Teise võimalusena, kui soovite tegevusi, teenuseid ja vastuvõtjaid lihtsamalt näha, võite kasutada XDA tunnustatud arendaja rakendust Root Activity Launcher. Sacharee1. See näitab teile iga rakenduse neid komponente koos hulga muude käepäraste funktsioonidega.

Juurtegevuse käivitajaArendaja: Zachary Wander

Hind: 0,99.

Lae alla

Tegevuste, teenuste ja saatevastuvõtjate käivitamine

ADB-d saab kasutada ka tegevuste käivitamiseks, teenuste käivitamiseks ja BroadcastReceivers teavitamiseks. Vajadusel saate määrata isegi andmete URI-sid ja Intenti lisasid.

Komponentide käivitamiseks vajate käivitatava komponendi nime. Saate vaadata, kuidas seda saada Rakenduse komponentide loend osa.

Käskude süntaks tegevuse käivitamiseks on umbes selline:

am start -a <action> -n <component>

Teenuse käivitamise käsu süntaks on umbes selline:

am startservice -a <action> -n <component>

BroadcastReceiveri teavitamise käsu süntaks on umbes selline:

am broadcast -a <action> -n <component>

Enamikul juhtudel ei pea te tegevuste ja teenuste puhul toimingut selgesõnaliselt määrama. Tavaliselt vajate seda ainult siis, kui komponent kasutab mõnda muud kui android.intent.action. PEAMISED.

Lisaks põhisüntaksile saate määrata rohkem edastatavaid andmeid. Üldiselt tuleks kõik andmeväärtused lisada jutumärkidesse.

  • -d võimaldab määrata andmete URI.
  • -e või --es võimaldab määrata stringi lisa.
  • --esn võimaldab määrata nullstringi lisa.
  • --ez kasutatakse tõeväärtuse lisa määramiseks.
  • --ei kasutatakse täisarvu lisa määramiseks.
  • --el on mõeldud pika lisa määramiseks.
  • --ef läbib ujuki lisa.
  • --eu läbib URI lisa.
  • --ecn saab kasutada komponendi lisanime määramiseks.
  • --eia ,,... edastab väärtused Integer[] lisana.
  • --eial ,,... edastab väärtused loendina.
  • Samad massiivi ja loendi argumendid töötavad ka pikkade, ujukite ja stringide puhul. Lihtsalt asendage i vastava kirjaga.
  • -f võimaldab määrata lipu.

Saate kasutada veelgi rohkem käitumisvalikuid, seega vaadake üksikasju sisseehitatud dokumentatsioonist.

Peaaegu iga rakenduse keelamine ja lubamine

Androidi süsteemirakendusi ei saa desinstallida ja kahjuks ei saa paljusid neist ka seadete kaudu keelata. Kuigi ADB ei lase teil neid desinstallida, võib see aidata teil need keelata.

Esiteks veenduge, et saate selle rakenduse paketi nime, mille soovite keelata. Seejärel proovige neid käske. Kui üks ebaõnnestub, proovige järgmist võimalust.

  • pm keelata
    • Uuesti lubamiseks kasutage pm luba
  • pm disable-user --user 0
    • Uuesti lubamiseks kasutage pm luba
  • pm peida
    • Uuesti lubamiseks kasutage pm too peidus välja
  • pm peatada
    • Uuesti lubamiseks kasutage pm katkestada
  • pm uninstall -k --user 0
    • Uuesti lubamiseks kasutage pm install-olemasolev
      • See desinstallib rakenduse teie kasutajaprofiilist tõhusalt. Kuigi käsk uuesti lubada peaks töötab, pole mingit garantiid, et see toimib. Rakenduse taastamiseks peate võib-olla lähtestama tehaseseadetele.
      • Kui kasutate oma seadmes mitut kasutajaprofiili, asendage ülaltoodud käskudes kindlasti 0 tegeliku kasutaja ID-ga.

Lisateabe saamiseks vaadake meie õpetust kuidas eemaldada operaatori ja OEM-i bloatware ilma juurjuurdepääsuta.

Ekraanipiltide jäädvustamine

Enamik Androidi ROM-e pakub vastavalt ekraanipiltide tegemiseks ja ekraanitoimingute salvestamiseks kahte käepärast kestautiliiti – ekraanikorki ja ekraanisalvestust. Saate neile helistada otse ADB kestast, et jäädvustada staatiline ekraanipilt või videolõik oma telefoni ekraanist ja salvestada see otse seadme sisemällu.

Ekraanipildi tegemise süntaks on üsna lihtne:

adb shell screencap /sdcard/screenshot.png

Kui teil on vaja haarata dünaamiline ekraanipildi, tehke järgmist.

adb shell screenrecord /sdcard/recording.mp4

Nagu arvata võis, on ekraanipildi tööriist üsna lihtne, samas kui ekraanisalvestuse utiliit pakub mitmeid parameetreid. Viimase valikud on järgmised:

  • --suurus WIDTHxHEIGHT
    • Seadistage videofaili eraldusvõime (nt "1280x720"). Vaikimisi proovib see võtta sihtseadme põhiekraani eraldusvõimet (kui seda toetatakse) ja langeb tagasi eraldusvõimele 1280 x 720, kui seda ei ole.
  • --bitikiirus RATE
    • Määrake video bitikiirus bittides sekundis. Väärtuse võib määrata bittide või megabittidena, nt. "4000000" võrdub "4M".
  • --veateade
    • Saate lisada lisateavet, näiteks ajatempli ülekatte, mis võib olla kasulik vigade illustreerimiseks.
  • --ajapiirang TIME
    • Määrake maksimaalne salvestusaeg sekundites. Vaikimisi / maksimum on 180.
  • --kuva ID ID
    • Määrake salvestatav kuvari füüsiline ID. Vaikimisi kuvatakse esmane ekraan. Sobivate kuva ID-de kohta vaadake jaotist "dumpsys SurfaceFlinger --display-id".
  • --sõnaline
    • Kuvage salvestusseansi kohta põhjalik teave.

Saate Androidi sisseehitatud ekraani jäädvustamise utiliitide võimalusi veelgi laiendada, kui scrcpy. See on avatud lähtekoodiga ekraani peegeldamise lahendus, mis kasutab ära ADB võimsust.

Binaarandmete edastamine arvuti ja Android-seadme vahel

Kui te ei soovi luua täieõiguslikku ADB-kesta, kuid soovite lisada binaarandmete sujuva ülekande hostarvuti ja siht-Android-seadme vahele, saate kasutada exec-in ja exec-out käske.

Vaatamata nendele pikaajaline olemasolu, on exec-in ja exec-out käsud endiselt dokumenteerimata. Need võivad põhjustada failide rikkumist, kuna erinevad kestad käitlevad sisendeid ja väljundeid. Kasutage ettevaatlikult.

Esimene aitab teil Androidis käsku täita ja sisestada selle parameetrina filtreerimata konsooli sisendi, samas kui teine ​​toimib täpselt vastupidiselt, st käivitab Androidis käsu ja salvestab selle filtreerimata kahendväljundi host OS-i poolt.

Näide:

adb exec-out "screencap -p" > "D:\screenshot.png"

See kasutab screencap Androidi käsk telefoni ekraanist ekraanipildi jäädvustamiseks, kuid salvestab selle otse hostarvuti partitsiooni D: (eeldusel, et sellel töötab Windows) kui screenshot.png. Teiselt poolt,

adb exec-in"cd /sdcard && tar -xf -" < "D:\backup.tar"

See ekstraktib faili backup.tar sisu, mis on salvestatud Android-seadme sisemälu juurtes asuvasse hostarvuti (käitab Windows) partitsiooni D:.


ADB on uskumatult võimas tööriist ja suudab teha palju enamat kui lihtsalt ülaltoodu. Selle artikli käsud on vaid kasulikuks lähtepunktiks. Täpsemaks kasutamiseks vaadake selliseid käske nagu cmd -l et näha erinevaid teenuseid, millega võiksite suhelda ja ls -l /süsteem/bin Androidi ROM-is saadaolevate erinevate käskude käivitatavate failide vaatamiseks.

Muude Androidi reiside ja puukide kohta vaadake meie juhendeid aadressil kuidas oma Androidi nutitelefoni juurida, kuidas installida TWRP taastamist, ja kuidas installida kohandatud ROM oma Android-seadmesse.