АДБ савети и трикови: команде за које би сваки искусни корисник требало да зна

click fraud protection

Андроид Дебуг Бридге има много тога о чему можда не знате. Кликните овде за неке корисне савете и трикове за коришћење АДБ-а!

Брзе везе

  • Схелл приступ
  • Повезивање са више уређаја
  • Пренос датотека
  • Логгинг
  • Навођење инсталираних апликација преко АДБ-а
  • Инсталирање и деинсталирање апликација преко АДБ-а
  • Екстраховање АПК-ова помоћу АДБ-а
  • Прављење резервне копије и враћање података апликације
  • Навођење компоненти апликације
  • Покретање активности, услуга и пријемника за емитовање
  • Онемогућавање и омогућавање скоро сваке апликације
  • Снимање снимака екрана
  • Пренос бинарних података између рачунара и Андроид уређаја

Ако сте били Андроид ентузијаста који вреба у модинг сцени, или програмер апликација на било коју дужину када, пре или касније, наићи ћете на уредан алат који се зове Андроид Дебуг Бридге, или АДБ за кратак. Увелико се користи у Андроид Студију као помоћни програм командне линије. Андроид програмери га такође користе као самостално решење за ручно инсталирање и тестирање апликација Андроид паметни телефони као и емулирани Андроид уређаји.

Али постоји много тога што АДБ може да уради, а већина тога није корисна само програмерима. Чак и ако нисте програмер, а читате овај чланак, постоји велика шанса да сте вероватно једном или двапут користили АДБ да учитајте апликацију или промените дозволу. Али то није све за шта се АДБ може користити. Наставите да читате за неке савете и трикове за коришћење АДБ-а за које можда нисте знали.

Мораћете да имате покренут и покренут АДБ на вашем рачунару. Обавезно погледајте наш чланак о како инсталирати АДБ ако ти је потребна помоћ. У случају да користите Виндовс, такође морате инсталирајте одговарајуће ОЕМ УСБ драјвере за ваш Андроид уређај.

Схелл приступ

Ако сте раније користили АДБ, можда сте навикли да изводите све команде у једном реду. Али такође можете користити АДБ да отворите терминалску шкољку на свом уређају и директно покренете команде. И то је лако!

У прозору терминала или командне линије:

adb shell

Тада ћете бити поздрављени са а $ симбол где можете да покрећете команде директно на свом уређају.

Повезивање са више уређаја

АДБ може да комуницира са више уређаја истовремено. Међутим, морате навести циљни уређај када издајете АДБ команде у таквим сценаријима.

Да бисте то урадили, мораћете да знате серијски број циљног уређаја. Серију можете добити помоћу команде девицес:

adb devices

Сада, користите -s опција за одређивање серијског броја циљног уређаја. Пример:

adb -s <serialnumber> shell

Пренос датотека

За љубитеље командне линије, АДБ пружа веома једноставан начин за пренос датотека на и са вашег Андроид уређаја. Само користите pull команду за копирање датотека и директоријума са уређаја и push команда за копирање датотека и директоријума на уређај:

Ако желите да копирате датотеку или директоријум са његовим поддиректоријумима на Андроид уређај:

adb push local_path device_path
  • Пример: adb push D:\image.png /sdcard

Следећа команда ће копирати датотеку или директоријум са својим поддиректоријумима са Андроид уређаја на рачунар домаћин:

adb pull device_path local_path
  • Пример: adb pull /sdcard/backup_April.tar D:\Backup

Логгинг

Андроид Студио пружа Логцат прозор, који подржава приказивање дневника са вашег уређаја у реалном времену. Међутим, није баш корисно за групну обраду. Срећом, Андроид уређаји се испоручују са командом логцат доступном преко АДБ-а, која се може користити за испис порука система и апликација и њихово штампање на екрану.

Основна синтакса је следећа:

adb logcat

Да бисте сазнали више, погледајте наш водич на како узети системске логцате, евиденције кернела и дмесг на Андроид-у.

Ускршња јаја

Гоогле нуди два сјајна ускршња јаја повезана са командом логцат.

  1. Први је лолцат, климање за ЛОЛцат меме. Даје исти излаз као обична логцат команда.
    adb lolcat
  2. Други је лонгцат, што је еквивалентно логцат -в лонг команди. Приказује сва поља метаподатака и засебне поруке са празним редом.
    adb longcat

Навођење инсталираних апликација преко АДБ-а

Да бисте видели инсталиране апликације на свом уређају, можете користити следећу команду:

adb shell pm list packages

Ово ће вратити листу имена пакета инсталираних апликација, са сваком од њих у свом реду испред package:.

Опције

Постоје и неке опције које можете користити за преузимање конкретнијих листа.

  • ће укључити путању до основног АПК-а за сваку апликацију, заједно са називом њеног пакета.
  • ће се побринути да сви познати пакети који нису АПЕКС буду враћени.
  • ће проузроковати да наредба врати само онеспособљене пакете.
  • ће проузроковати да наредба врати само омогућене пакете.
  • ће проузроковати да наредба врати само системске пакете.
  • -3 ће проузроковати да наредба врати само пакете треће стране.
  • ће укључити име инсталационог пакета за сваки пакет.
  • ће укључити УИД пакета за сваки пакет.
  • ће укључивати деинсталиране пакете.
  • --схов-версионцоде ће укључити код верзије за сваки пакет.
  • --апек-онли ће вратити само АПЕКС пакете.
  • --уид ће приказати само пакете са датим УИД-ом.
  • --усер ће приказати само пакете који припадају датом корисничком ИД-у.

Инсталирање и деинсталирање апликација преко АДБ-а

Ово је релативно уобичајена употреба АДБ-а, али ипак вреди поменути. Између осталих начина, можете користити и АДБ за инсталирајте и деинсталирајте Андроид апликације на ваш Андроид уређај.

Инсталирање АПК-а

Ако имате АПК на рачунару, можете га инсталирати на свој уређај помоћу следећег:

adbinstall-rsomeapk.apk

Не заборавите да замените someapk.apk са пуном путањом до АПК-а који желите да инсталирате.

Опције

Постоји гомила опција за инсталирање АПК-ова преко АДБ-а.

  • Тхе опција омогућава АДБ-у да инсталира преко постојеће апликације (тј. ажурирање). На Андроид Пие-у и новијим верзијама, не морате да наведете ову опцију.
  • Тхе опција, за Андроид Пие и новије верзије ће довести до неуспеха инсталације ако је апликација већ инсталирана.
  • Тхе опција вам омогућава да наведете име инсталационог пакета. Ово се враћа ако Андроид жели да зна шта је инсталирало АПК.
  • Тхе опција дозвољава АПК са андроид: тестОнли="тачно" у свом манифесту да се инсталира.
  • Тхе опција омогућава да наведени АПК буде старија верзија на већ инсталирану апликацију. Ово функционише само ако обе верзије апликације могу да отклоне грешке.
  • Тхе опција за Андроид Марсхмаллов и касније аутоматски даје све дозволе за време извршавања инсталираној апликацији.

То нису сви они. Ако желите комплетну листу, можете погледати уграђену документацију.

Више АПК-ова и пакета

Ако имате гомилу АПК-ова које желите да инсталирате одједном, било из више апликација, или зато што инсталирате скуп апликација, можете да користите АДБ-ове install-multiple и install-multi-package Карактеристике.

Ако су сви ваши АПК-ови за једну апликацију, користите install-multiple:

adbinstall-multipleapk1.apkapk2.apk ...

У супротном, користите install-multi-package:

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

Опције за ове команде су сличне install, али са неким ограничењима. Погледајте АДБ-ову уграђену документацију за које су опције доступне.

Деинсталирање апликације

Да бисте деинсталирали помоћу АДБ-а, требаће вам име пакета апликације коју желите да деинсталирате. Погледајте одељак за Списак инсталираних апликација ако већ нисте.

Када добијете име пакета, деинсталирање је једноставно као:

adb uninstall <packagename>

Обично не можете да деинсталирате систем или унапред инсталиране апликације помоћу ове команде. Међутим, можда ћете моћи да их онемогућите помоћу АДБ-а. Погледајте одељак Онемогућавање и омогућавање скоро сваке апликације за детаље.

Екстраховање АПК-ова помоћу АДБ-а

Постоји много разлога због којих бисте можда желели да издвојите АПК(е) за апликацију. Можда желите да направите резервну копију за будућу употребу или можда више није доступна на мрежи и желите да је пренесете на други уређај.

Екстраховање апликације помоћу АДБ-а је прилично једноставно. Прво ћете желети да пронађете назив пакета апликације коју желите да издвојите. Постоји више начина да то урадите, али најлакши је обично да користите апликацију Подешавања на уређају да бисте видели листу свих инсталираних апликација, изаберите ону коју желите и померајте се надоле док не пронађете назив пакета или апликацију ИД.

Када добијете име пакета, покрените следећу команду:

adb shell pm path <packagename>

Ова команда ће вратити путању свих АПК-ова за тај назив пакета.

Затим можете користити следећу команду да повучете сваки АПК на рачунар:

adb pull /path/to/apk.apk

Прављење резервне копије и враћање података апликације

Иако Гоогле тек треба да осмисли иОС методологију прављења резервних копија једним кликом, можете користити АДБ за прављење резервних копија и враћање инсталираних апликација заједно са њиховим подацима. Међутим, функционалност је далеко од савршене, а Гоогле већ јесте означио је функцију као застарелу.

Направи резервну копију

Да бисте направили резервну копију једне апликације, са њеним АПК-ом:

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

У случају да желите да направите резервну копију свих података апликације одједном:

adb backup -f all -all -apk -nosystem

Пошто модул за враћање не може да изврши индивидуално враћање специфично за апликацију, боље је да направите резервне копије специфичне за пакет. Следећи исечак команде (компатибилан са Линук/мацОС-ом и Виндовс подсистемом за Линук) може то учинити уместо вас:

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

Ресторе

Прво морате да инсталирате сачувани АПК;

adb install <packagename>.apk

Затим можете вратити његове податке:

adbrestorepackage_name_backup.ab

Да поновимо, АДБ функције резервног копирања и враћања имају више упозорења, укључујући променљиве резултате у зависности од РОМ-а

Навођење компоненти апликације

Компоненте апликације су ствари као што су њене активности, БроадцастРецеиверс, услуге итд. Понекад је корисно знати називе ових компоненти у одређеној апликацији, посебно ако желите да покренете скривене активности или пошаљете емитовање са одређеним подацима.

Нажалост, АДБ нема баш чист начин навођења компоненти апликације. Али могуће је. Покрените следећу команду:

adb shell dumpsys package

Читава гомила текста ће бити враћена.

  • Скролујте док не пронађете Табела разређивача активности наслов да видите Активности.
  • Погледај испод Табела разређивача пријемника за БроадцастРецеиверс.
  • Проверите Табела разређивача услуга за услуге.
  • И тако даље.

Свака компонента ће показати радњу потребну за њено покретање, назив компоненте и можда неке додатне информације.

Алтернативно, ако желите лакши начин да видите активности, услуге и примаоце, можете користити апликацију Роот Ацтивити Лаунцхер од КСДА Рецогнизед Девелопер-а Зацхарее1. Показаће вам те компоненте за сваку апликацију, заједно са гомилом других практичних функција.

Роот покретач активностиПрограмер: Зацхари Вандер

Цена: 0,99.

Преузимање

Покретање активности, услуга и пријемника за емитовање

АДБ се такође може користити за покретање активности, покретање услуга и обавештавање БроадцастРецеиверс-а. Можете чак да наведете УРИ-је података и додатке намере ако је потребно.

Да бисте покренули компоненте, требаће вам име компоненте онога што желите да покренете. Можете видети како да то добијете из Навођење компоненти апликације одељак.

Синтакса команде за покретање активности је отприлике оваква:

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

Синтакса команде за покретање услуге је отприлике овако:

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

Синтакса команде за обавештавање БроадцастРецеивер-а је отприлике оваква:

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

У већини случајева, за Активности и услуге, не морате експлицитно да наведете радњу. Обично ће вам требати само ако компонента користи једну другу од андроид.интент.ацтион. ГЛАВНИ.

Поврх основне синтаксе, ево како да наведете више података за прослеђивање. Уопштено, све вредности података треба ставити у двоструке наводнике.

  • омогућава вам да наведете УРИ података.
  • или --ес омогућава вам да наведете стринг ектра.
  • --есн омогућава вам да наведете нулл стринг ектра.
  • --ез се користи за навођење логичког додатка.
  • --еи се користи за спецификацију целобројног екстра.
  • --ел је за одређивање дугог екстра.
  • --еф проћи ће флоат ектра.
  • --ЕУ прослеђује додатни УРИ.
  • --ецн може се користити за одређивање имена компоненте ектра.
  • --еиа ,,... ће проследити вредности као Интегер[] ектра.
  • --еиал ,,... ће проследити вредности као листу.
  • Исти аргументи низа и листе такође функционишу за дуге, флоат и низове. Само замените и са одговарајућим писмом.
  • омогућава вам да одредите заставу.

Постоји још више опција понашања које можете да користите, па погледајте уграђену документацију за детаље.

Онемогућавање и омогућавање скоро сваке апликације

Системске апликације у Андроид-у се не могу деинсталирати, а нажалост, многе од њих се такође не могу онемогућити кроз подешавања. Иако вам АДБ неће дозволити да их деинсталирате, може вам помоћи да их онемогућите.

Прво, уверите се да сте добили назив пакета апликације коју желите да онемогућите. Затим испробајте ове команде. Ако једна не успе, покушајте са следећом опцијом.

  • пм дисабле
    • Да бисте поново омогућили, користите пм омогућити
  • пм дисабле-усер --усер 0
    • Да бисте поново омогућили, користите пм омогућити
  • пм сакрити
    • Да бисте поново омогућили, користите пм унхиде
  • пм суспендовати
    • Да бисте поново омогућили, користите пм унсуспенд
  • пм деинсталирати -к --корисник 0
    • Да бисте поново омогућили, користите пм инсталл-екистинг
      • Овај ефективно деинсталира апликацију са вашег корисничког профила. Док је команда за поновно омогућавање требало би ради, нема гаранције да хоће. Можда ћете морати да вратите на фабричка подешавања да бисте вратили апликацију.
      • Ако на свом уређају користите више корисничких профила, обавезно замените 0 у горњим командама стварним корисничким ИД-ом који имате.

Да бисте сазнали више, погледајте наш водич на како да деинсталирате преносни и ОЕМ софтвер без роот приступа.

Снимање снимака екрана

Већина Андроид РОМ-ова нуди два згодна услужна програма - сцреенцап и сцреенрецорд - за прављење снимака екрана и снимање активности на екрану. Можете их позвати директно из АДБ љуске да бисте снимили статички снимак екрана или видео исечак екрана вашег телефона и сачували га директно у интерној меморији уређаја.

Синтакса за снимање снимка екрана је прилично јасна:

adb shell screencap /sdcard/screenshot.png

Слично томе, ако треба да преузмете динамички снимак екрана, урадите следеће:

adb shell screenrecord /sdcard/recording.mp4

Као што можете очекивати, алатка за снимање екрана је прилично једноставна, док услужни програм за снимање екрана нуди неколико параметара. Опције за последње су следеће:

  • --величина ВИДТХкХЕИГХТ
    • Подесите резолуцију видео датотеке (нпр. "1280к720"). Подразумевано, покушава да преузме главну резолуцију екрана циљног уређаја (ако је подржано), и пада на 1280к720 ако није.
  • --бит-рате РАТЕ
    • Подесите брзину видео записа у битовима у секунди. Вредност може бити наведена као битови или мегабити, нпр. '4000000' је еквивалентно '4М'.
  • --бугрепорт
    • Можете додати додатне информације, као што је преклапање временске ознаке, што може бити корисно за илустрацију грешака.
  • --временско ограничење ВРЕМЕ
    • Подесите максимално време снимања у секундама. Подразумевано/максимално је 180.
  • --дисплаи-ид ИД
    • Одредите ИД физичког приказа за снимање. Подразумевано је подешено на примарни екран. Погледајте „думпсис СурфацеФлингер --дисплаи-ид“ за важеће ИД-ове приказа.
  • --вербосе
    • Прикажите детаљне информације о сесији снимања.

Можете додатно проширити могућности Андроид-ових уграђених услужних програма за снимање екрана сцрцпи. То је решење за пресликавање екрана отвореног кода које користи моћ АДБ-а.

Пренос бинарних података између рачунара и Андроид уређаја

У случају да не желите да створите пуноправну АДБ шкољку, али желите да уградите поједностављен пренос бинарних података између главног рачунара и циљног Андроид уређаја, можете да користите exec-in и exec-out команде.

Упркос њиховим продужено постојање, команде екец-ин и екец-оут су још недокументоване. Они могу довести до оштећења датотеке због начина на који различите шкољке рукују улазима и излазима. Користите са опрезом.

Први вам помаже да извршите команду на Андроид-у и унесете нефилтрирани унос конзоле као њен параметар, док други ради управо супротно, тј. покреће команду на Андроид-у и снима њен нефилтрирани бинарни излаз од ОС-а домаћина.

Пример:

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

Ово ће користити screencap команду Андроид-а да сними снимак екрана екрана телефона, али га директно чува као сцреенсхот.пнг на Д: партицији главног рачунара (под условом да ради под оперативним системом Виндовс). С друге стране,

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

Ово ће издвојити садржај датотеке бацкуп.тар ускладиштене на Д: партицији главног рачунара (који ради под Виндовсом) у корену интерне меморије Андроид уређаја.


АДБ је невероватно моћан алат и може учинити много више од онога што је горе наведено. Команде у овом чланку су само корисна полазна тачка. За напреднију употребу, погледајте команде попут цмд -л да бисте видели различите услуге са којима бисте могли да комуницирате и лс -л /систем/бин да видите различите извршне команде доступне у вашем Андроид РОМ-у.

За друга Андроид путовања и тикете, погледајте наше водиче како да рутујете свој Андроид паметни телефон, како инсталирати ТВРП опоравак, и како да инсталирате прилагођени РОМ на свој Андроид уређај.