ADB padomi un triki: komandas, kas jāzina ikvienam pieredzējušam lietotājam

Ir daudz Android atkļūdošanas tilta, par ko jūs, iespējams, nezināt. Noklikšķiniet šeit, lai iegūtu dažus noderīgus padomus un trikus par ADB lietošanu!

Ātrās saites

  • Piekļuve apvalkam
  • Savienojuma izveide ar vairākām ierīcēm
  • Failu pārsūtīšana
  • Mežizstrāde
  • Instalēto lietotņu uzskaitīšana, izmantojot ADB
  • Programmu instalēšana un atinstalēšana, izmantojot ADB
  • APK izvilkšana, izmantojot ADB
  • Lietojumprogrammu datu dublēšana un atjaunošana
  • Lietotņu komponentu uzskaitījums
  • Darbību, pakalpojumu un apraides uztvērēju palaišana
  • Gandrīz jebkuras lietotnes atspējošana un iespējošana
  • Ekrānuzņēmumu tveršana
  • Bināro datu pārsūtīšana starp datoru un Android ierīci

Ja esat bijis Android entuziasts, kas slēpās modēšanas jomā, vai lietotņu izstrādātājs jebkādu laiku agri vai vēlu jūs paklupsiet uz glītu rīku, ko sauc par Android atkļūdošanas tiltu jeb ADB for īss. To plaši izmanto Android Studio kā komandrindas pavadošo utilītu. Android izstrādātāji to izmanto arī kā atsevišķu risinājumu, lai manuāli instalētu un pārbaudītu lietotnes Android viedtālruņi kā arī emulētas Android ierīces.

Taču ADB var darīt daudz, un lielākā daļa no tā ir noderīga ne tikai izstrādātājiem. Pat ja jūs neesat izstrādātājs un lasāt šo rakstu, pastāv liela iespēja, ka vienu vai divas reizes esat izmantojis ADB, lai sānu ielāde lietotni vai izlabojiet atļauju. Bet tas nav viss, ko var izmantot ADB. Turpiniet lasīt, lai uzzinātu dažus padomus un ieteikumus par ADB izmantošanu, par kuriem jūs, iespējams, nezināt.

Datorā ir jābūt izveidotam un jādarbojas ADB. Noteikti izlasiet mūsu rakstu par kā instalēt ADB ja jums nepieciešama palīdzība. Ja izmantojat operētājsistēmu Windows, tas arī jādara instalējiet atbilstošos OEM USB draiverus jūsu Android ierīcei.

Piekļuve apvalkam

Ja iepriekš esat izmantojis ADB, iespējams, esat pieradis izpildīt komandas vienā rindā. Bet varat arī izmantot ADB, lai ierīcē atvērtu termināļa apvalku un palaistu komandas tieši. Un tas ir viegli!

Termināļa vai komandu uzvednes logā:

adb apvalks

Pēc tam jūs sagaidīs ar a $ simbols, kurā varat palaist komandas tieši savā ierīcē.

Savienojuma izveide ar vairākām ierīcēm

ADB var sazināties ar vairākām ierīcēm vienlaikus. Tomēr, izdodot ADB komandas šādos scenārijos, ir jānorāda mērķa ierīce.

Lai to izdarītu, jums būs jāzina mērķa ierīces sērijas numurs. Jūs varat iegūt seriālu, izmantojot ierīču komandu:

adb ierīces

Tagad izmantojiet -s iespēja norādīt mērķa ierīces sērijas numuru. Piemērs:

adb -s <seriālsnumuru> apvalks

Failu pārsūtīšana

Komandrindas cienītājiem ADB nodrošina ļoti vienkāršu veidu, kā pārsūtīt failus uz Android ierīci un no tās. Vienkārši izmantojiet velciet komanda, lai kopētu failus un direktorijus no ierīces un spiediet komanda, lai kopētu failus un direktorijus ierīcē:

Ja vēlaties kopēt failu vai direktoriju ar tā apakšdirektorijiem Android ierīcē:

adb push vietējais_ceļš ierīces_ceļš
  • Piemērs: adb push D:\image.png /sdcard

Šī komanda kopēs failu vai direktoriju ar tā apakšdirektorijiem no Android ierīces uz resursdatoru:

adb pull ierīces_ceļš vietējais_ceļš
  • Piemērs: adb pull /sdcard/backup_April.tar D:\Backup

Mežizstrāde

Android Studio nodrošina Logcat logs, kas atbalsta jūsu ierīces žurnālu rādīšanu reāllaikā. Tomēr tas nav īsti noderīgs pakešu apstrādei. Par laimi, Android ierīces tiek piegādātas ar logcat komandu, kas pieejama, izmantojot ADB, ko var izmantot, lai izmestu sistēmas un lietojumprogrammu žurnāla ziņojumus un izdrukātu tos ekrānā.

Pamata sintakse ir šāda:

adb logcat

Lai uzzinātu vairāk, skatiet mūsu apmācību par kā lietot sistēmas logcats, kodola žurnālus un dmesg operētājsistēmā Android.

Lieldienu olas

Google piedāvā divas lieliskas Lieldienu olas, kas saistītas ar logcat komandu.

  1. Pirmais ir lolcat, mājiens uz LOLcat meme. Tas dod tādu pašu izvadi kā parastā logcat komanda.
    adb lolcat
  2. Otrais ir longcat, kas ir līdzvērtīgs logcat -v long komandai. Tas parāda visus metadatu laukus un atsevišķus ziņojumus ar tukšu rindiņu.
    adb longcat

Instalēto lietotņu uzskaitīšana, izmantojot ADB

Lai skatītu ierīcē instalētās programmas, varat izmantot šādu komandu:

adb apvalks pm sarakstu iepakojumiem

Tas parādīs instalēto programmu pakotņu nosaukumu sarakstu, katrai no tām pievienojot atsevišķu rindiņu iepakojums:.

Iespējas

Ir arī dažas opcijas, kuras varat izmantot, lai izgūtu konkrētākus sarakstus.

  • -f ietvers ceļu uz katras lietotnes pamata APK, kā arī tās pakotnes nosaukumu.
  • -a pārliecināsies, ka tiek atgriezti visi zināmie iepakojumi, kas nav APEX.
  • -d liks komandai atgriezt tikai atspējotās pakotnes.
  • -e liks komandai atgriezt tikai iespējotās pakotnes.
  • -s liks komandai atgriezt tikai sistēmas pakotnes.
  • -3 liks komandai atgriezt tikai trešās puses pakotnes.
  • -i katrai pakotnei būs iekļauts instalēšanas pakotnes nosaukums.
  • -U katrai pakotnei būs iekļauts pakotnes UID.
  • -u ietvers atinstalētas pakotnes.
  • -- parādīt versijas kodu ietvers katras pakotnes versijas kodu.
  • --tikai virsotnē atgriezīs tikai APEX paketes.
  • --uid tiks rādītas tikai paketes ar norādīto UID.
  • -- lietotājs tiks rādītas tikai paketes, kas pieder norādītajam lietotāja ID.

Programmu instalēšana un atinstalēšana, izmantojot ADB

Tas ir salīdzinoši izplatīts ADB lietojums, taču jebkurā gadījumā to ir vērts pieminēt. Cita starpā varat izmantot arī ADB, lai instalējiet un atinstalējiet Android lietotnes uz jūsu Android ierīci.

APK instalēšana

Ja jūsu datorā ir APK, varat to instalēt savā ierīcē, veicot tālāk norādītās darbības.

adbuzstādīt-rsomeapk.apk

Atcerieties nomainīt someapk.apk ar pilnu ceļu uz APK, kuru vēlaties instalēt.

Iespējas

Ir vairākas iespējas APK instalēšanai, izmantojot ADB.

  • The -r opcija ļauj ADB instalēt, izmantojot esošu lietotni (t.i., atjaunināt). Operētājsistēmā Android Pie un jaunākās versijās šī opcija nav jānorāda.
  • The -R opciju Android Pie un jaunākām versijām izraisīs instalēšanas neveiksmi, ja lietotne jau ir instalēta.
  • The -i opcija ļauj norādīt instalēšanas pakotnes nosaukumu. Tas tiek atgriezts, ja Android vēlas uzzināt, kas ir instalējis APK.
  • The -t opcija ļauj APK ar Android: testOnly="true" instalējamajā manifestā.
  • The -d opcija ļauj norādītajam APK failam pazemināt versiju uz jau instalētu lietotni. Tas darbojas tikai tad, ja abas lietotnes versijas ir atkļūdojamas.
  • The -g opcija Android Marshmallow un vēlāk automātiski piešķir visas izpildlaika atļaujas instalētajai lietotnei.

Tas vēl nav viss. Ja vēlaties pilnu sarakstu, varat iepazīties ar iebūvēto dokumentāciju.

Vairāki APK un komplekti

Ja jums ir vairāki APK faili, kurus vēlaties instalēt vienlaikus vai nu no vairākām lietotnēm, vai tāpēc, ka instalējat lietotņu komplektu, varat izmantot ADB. instalēt-vairāki un instalēt-vairāku pakotne Iespējas.

Ja visi jūsu APK ir paredzēti vienai lietotnei, izmantojiet instalēt-vairāki:

adbinstalēt-vairākiapk1.apkapk2.apk ...

Pretējā gadījumā izmantojiet instalēt-vairāku pakotne:

adbinstalēt-vairāku pakotnelietotne1.apklietotne2.apk ...

Šo komandu opcijas ir līdzīgas uzstādīt, bet ar dažiem ierobežojumiem. Apskatiet ADB iebūvēto dokumentāciju, kuras opcijas ir pieejamas.

Lietotnes atinstalēšana

Lai atinstalētu, izmantojot ADB, ir nepieciešams tās lietotnes pakotnes nosaukums, kuru vēlaties atinstalēt. Apskatiet sadaļu par Instalēto lietotņu saraksts ja vēl neesat to izdarījis.

Kad esat saņēmis pakotnes nosaukumu, atinstalēšana ir tik vienkārša:

adb atinstalēšana <paketes nosaukums>

Parasti nevar atinstalēt sistēmu vai iepriekš instalētās programmas, izmantojot šo komandu. Tomēr, iespējams, varat tos atspējot, izmantojot ADB. Apskatiet sadaļu Gandrīz jebkuras lietotnes atspējošana un iespējošana sīkākai informācijai.

APK izvilkšana, izmantojot ADB

Ir daudz iemeslu, kāpēc vēlaties izvilkt lietotnes APK failu(-us). Varbūt vēlaties to dublēt turpmākai lietošanai vai varbūt tas vairs nav pieejams tiešsaistē un vēlaties to pārsūtīt uz citu ierīci.

Lietotnes izvilkšana, izmantojot ADB, ir diezgan vienkārša. Vispirms vēlēsities atrast tās lietotnes pakotnes nosaukumu, kuru vēlaties iegūt. Ir vairāki veidi, kā to izdarīt, taču visvienkāršāk parasti ir izmantot ierīces lietotni Iestatījumi, lai skatītu visu instalēto programmu sarakstu, atlasiet vajadzīgo un ritiniet uz leju, līdz atrodat pakotnes nosaukumu vai programmu ID.

Kad esat saņēmis pakotnes nosaukumu, palaidiet šādu komandu:

adb apvalks pm ceļš <paketes nosaukums>

Šī komanda atgriezīs visu šī pakotnes nosaukuma APK ceļu.

Pēc tam varat izmantot šo komandu, lai datorā ievilktu katru APK:

adb pull /path/to/apk.apk

Lietojumprogrammu datu dublēšana un atjaunošana

Lai gan Google vēl nav jānāk klajā ar iOS līdzīgu viena klikšķa dublēšanas metodiku, varat izmantot ADB, lai dublētu un atjaunotu instalētās lietotnes kopā ar to datiem. Tomēr funkcionalitāte nebūt nav perfekta, un Google jau to ir izdarījis atzīmēja objektu kā novecojušu.

Dublējiet

Lai dublētu vienu lietojumprogrammu ar tās APK:

adb dublējums -apk <iepakojumsnosaukums> -f pakotnes_nosaukums_backup.ab

Ja vēlaties dublēt visus lietotnes datus vienlaikus:

adb dublējums -f visi -visi -apk -nosistēma

Tā kā atjaunošanas modulis nevar veikt atsevišķu programmu atjaunošanu, labāk ir izveidot pakotnei specifiskas dublējumkopijas. Šis komandas fragments (saderīgs ar Linux/macOS un Windows apakšsistēmu operētājsistēmai Linux) var to izdarīt jūsu vietā:

priekš APP iekšā $(adb shell pm sarakstu pakotnes -3)
darīt
APP=$( atbalss${APP} | sed "s/^package://")
adb dublējums -f ${APP}.dublējums ${APP}
darīts

Atjaunot

Pirmkārt, jums ir jāinstalē saglabātais APK;

adb uzstādīt <iepakojumsnosaukums>.apk

Pēc tam varat atjaunot tā datus:

adbatjaunotpack_name_backup.ab

Lai atkārtotu, ADB dublēšanas un atjaunošanas funkcionalitātēm ir vairāki brīdinājumi, tostarp mainīgi rezultāti atkarībā no ROM.

Lietotņu komponentu uzskaitījums

Lietotnes komponenti ir, piemēram, tās darbības, apraides uztvērēji, pakalpojumi un tā tālāk. Dažreiz ir noderīgi zināt šo komponentu nosaukumus konkrētā lietotnē, it īpaši, ja vēlaties palaist slēptās darbības vai nosūtīt apraidi ar konkrētiem datiem.

Diemžēl ADB nav ļoti tīra veida, kā uzskaitīt lietotnes komponentus. Bet tas ir iespējams. Palaidiet šādu komandu:

adb shell dumpsys iepakojums

Tiks atgriezta vesela virkne teksta.

  • Ritiniet, līdz atrodat Aktivitāšu atrisinātāja tabula virsrakstu, lai skatītu aktivitātes.
  • Paskaties zem Uztvērēja atrisināšanas tabula par BroadcastReceivers.
  • Pārbaudiet Pakalpojumu atrisināšanas tabula par Pakalpojumiem.
  • Un tā tālāk.

Katrs komponents parādīs tā palaišanai nepieciešamo darbību, komponenta nosaukumu un, iespējams, papildu informāciju.

Alternatīvi, ja vēlaties vienkāršāku veidu, kā skatīt aktivitātes, pakalpojumus un uztvērējus, varat izmantot XDA Recognized Developer lietotni Root Activity Launcher. Zaharija1. Tas parādīs šos komponentus katrai lietotnei, kā arī daudzas citas noderīgas funkcijas.

Saknes aktivitāšu palaidējsIzstrādātājs: Zakarijs Wanders

Cena: 0,99.

Lejupielādēt

Darbību, pakalpojumu un apraides uztvērēju palaišana

ADB var izmantot arī, lai palaistu aktivitātes, palaistu pakalpojumus un paziņotu BroadcastReceivers. Ja nepieciešams, varat pat norādīt datu URI un Intent ekstras.

Lai palaistu komponentus, ir nepieciešams palaist komponenta nosaukums. Jūs varat redzēt, kā to iegūt no Lietotņu komponentu uzskaitījums sadaļā.

Komandas sintakse darbības palaišanai ir aptuveni šāda:

esmu sākums -a <darbība> -n <komponents>

Komandu sintakse pakalpojuma palaišanai ir aptuveni šāda:

esmu startservice -a <darbība> -n <komponents>

Komandas sintakse BroadcastReceiver paziņošanai ir aptuveni šāda:

esmu raidījums -a <darbība> -n <komponents>

Vairumā gadījumu darbībām un pakalpojumiem darbība nav skaidri jānorāda. Parasti tas būs nepieciešams tikai tad, ja komponentā tiek izmantots kāds cits, nevis android.intent.action. GALVENĀ.

Papildus pamata sintaksei tālāk ir norādīts, kā norādīt vairāk datu, kas jānodod. Parasti visas datu vērtības jāiekļauj dubultpēdiņās.

  • -d ļauj norādīt datu URI.
  • -e vai --es ļauj norādīt papildu virkni.
  • --esn ļauj norādīt nulles virkni papildu.
  • --ez tiek izmantots, lai norādītu Būla ekstra.
  • --ei tiek izmantots, lai norādītu veselu papildu skaitli.
  • --el ir paredzēts garās ekstras norādīšanai.
  • --ef nodos pludiņu ekstra.
  • --eu nodod papildu URI.
  • --ecn var izmantot, lai norādītu papildu komponenta nosaukumu.
  • --eia ,,... nodos vērtības kā Integer[] papildus.
  • --eiial ,,... nodos vērtības kā sarakstu.
  • Tie paši masīva un saraksta argumenti darbojas arī gariem, pludiņiem un virknēm. Vienkārši nomainiet i ar atbilstošo burtu.
  • -f ļauj norādīt karogu.

Varat izmantot vēl vairāk uzvedības opciju, tāpēc sīkāku informāciju skatiet iebūvētajā dokumentācijā.

Gandrīz jebkuras lietotnes atspējošana un iespējošana

Sistēmas lietotnes operētājsistēmā Android nevar atinstalēt, un diemžēl daudzas no tām nevar arī atspējot, izmantojot iestatījumus. Lai gan ADB neļaus tos atinstalēt, tas var palīdzēt tos atspējot.

Vispirms noteikti iegūstiet tās lietotnes pakotnes nosaukumu, kuru vēlaties atspējot. Pēc tam izmēģiniet šīs komandas. Ja kāds neizdodas, izmēģiniet nākamo iespēju.

  • pm atslēgt
    • Lai atkārtoti iespējotu, izmantojiet pm iespējot
  • pm disable-user --user 0
    • Lai atkārtoti iespējotu, izmantojiet pm iespējot
  • pm slēpties
    • Lai atkārtoti iespējotu, izmantojiet pm rādīt
  • pm apturēt
    • Lai atkārtoti iespējotu, izmantojiet pm atcelt apturēšanu
  • pm atinstalēt -k --user 0
    • Lai atkārtoti iespējotu, izmantojiet pm instalēt-esošs
      • Tas efektīvi atinstalē lietojumprogrammu no jūsu lietotāja profila. Kamēr komanda atkārtoti iespējot vajadzētu strādāt, nav garantijas, ka tā būs. Lai atjaunotu lietotni, iespējams, būs jāatjauno rūpnīcas iestatījumi.
      • Ja ierīcē izmantojat vairākus lietotāju profilus, iepriekš minētajās komandās noteikti aizstājiet 0 ar faktisko lietotāja ID.

Lai uzzinātu vairāk, skatiet mūsu apmācību par kā atinstalēt operatoru un OEM bloatware bez root piekļuves.

Ekrānuzņēmumu tveršana

Lielākā daļa Android ROM piedāvā divas ērtas čaulas utilītas — screencap un screenrecord — attiecīgi ekrānuzņēmumu uzņemšanai un ekrāna darbību ierakstīšanai. Varat piezvanīt viņiem tieši no ADB apvalka, lai uzņemtu statisku ekrānuzņēmumu vai tālruņa ekrāna video fragmentu un saglabātu to tieši ierīces iekšējā atmiņā.

Ekrānuzņēmuma uzņemšanas sintakse ir diezgan vienkārša:

adb shell screencap /sdcard/screenshot.png

Līdzīgi, ja nepieciešams tvert dinamisku ekrānuzņēmumu, rīkojieties šādi:

adb shell screenrecord /sdcard/recording.mp4

Kā jūs varētu gaidīt, ekrāna vāciņa rīks ir diezgan vienkāršs, savukārt ekrāna ierakstīšanas utilīta piedāvā vairākus parametrus. Pēdējās iespējas ir šādas:

  • --izmērs WIDTHxAUGUMS
    • Iestatiet video faila izšķirtspēju (piemēram, "1280x720"). Pēc noklusējuma tas mēģina izmantot mērķa ierīces galvenā displeja izšķirtspēju (ja tiek atbalstīts) un atgriežas līdz 1280 x 720, ja tas netiek atbalstīts.
  • -- bitu pārraides ātrums
    • Iestatiet video bitu pārraides ātrumu bitos sekundē. Vērtību var norādīt kā bitus vai megabitus, piemēram, "4000000" ir līdzvērtīgs "4M".
  • --kļūdu ziņojums
    • Varat pievienot papildu informāciju, piemēram, laikspiedola pārklājumu, kas var būt noderīgs kļūdu ilustrēšanai.
  • -- laika ierobežojums TIME
    • Iestatiet maksimālo ierakstīšanas laiku sekundēs. Noklusējums/maksimums ir 180.
  • -- displeja ID ID
    • Norādiet ierakstāmo fizisko displeja ID. Noklusējuma displejs ir iestatīts uz primāro displeju. Lai iegūtu derīgus displeja ID, skatiet sadaļu "dumpsys SurfaceFlinger --display-id".
  • -- daudzrunīgs
    • Parādiet padziļinātu informāciju par ierakstīšanas sesiju.

Varat vēl vairāk paplašināt Android iebūvēto ekrāna uztveršanas utilītu iespējas, izmantojot scrcpy. Tas ir atvērtā koda ekrāna spoguļošanas risinājums, kas izmanto ADB jaudu.

Bināro datu pārsūtīšana starp datoru un Android ierīci

Ja nevēlaties izveidot pilnvērtīgu ADB čaulu, bet vēlaties iekļaut racionalizētu bināro datu pārraidi starp resursdatoru un mērķa Android ierīci, varat izmantot izpildītājs un izpilde komandas.

Neskatoties uz viņu ilgstoša pastāvēšana, komandas izpilde-in un exec-out joprojām nav dokumentētas. Tie var izraisīt failu bojājumus, jo dažādi apvalki apstrādā ievades un izvades. Lietojiet piesardzīgi.

Pirmais palīdz izpildīt komandu operētājsistēmā Android un kā parametru ievadīt nefiltrēto konsoles ievadi, savukārt otrais darbojas tieši pretēji, t.i., palaiž komandu operētājsistēmā Android un tver tās nefiltrēto bināro izvadi no saimniekdatora OS.

Piemērs:

adb izpild- ārā "screencap -p" > "D:\screenshot.png"

Tas izmantos ekrāna vāciņš Android komandu, lai uzņemtu tālruņa displeja ekrānuzņēmumu, bet tieši saglabā to kā screenshot.png resursdatora D: nodalījumā (ja tajā darbojas sistēma Windows). No otras puses,

adb izpild-iekšā"cd /sdcard && tar -xf -" < "D:\backup.tar"

Tādējādi tiks izvilkts faila backup.tar saturs, kas saglabāts resursdatora D: nodalījumā (kurā darbojas sistēma Windows) Android ierīces iekšējās atmiņas saknē.


ADB ir neticami spēcīgs rīks, un tas var darīt daudz vairāk, nekā tikai iepriekšminētais. Šajā rakstā sniegtās komandas ir tikai noderīgs sākumpunkts. Lai iegūtu plašāku lietošanu, pārbaudiet tādas komandas kā cmd -l lai skatītu dažādus pakalpojumus, ar kuriem varētu mijiedarboties un ls -l /sistēma/bin lai skatītu dažādās Android ROM pieejamās komandu izpildāmās programmas.

Lai uzzinātu par citiem Android ceļojumiem un atzīmēm, skatiet mūsu ceļvežus vietnē kā sakņot savu Android viedtālruni, kā instalēt TWRP atkopšanu, un kā instalēt pielāgotu ROM savā Android ierīcē.