ADB (Android Debug Bridge) — је вишенаменски конзолни алат који је део Android SDK-а. Омогућава рачунару да директно комуницира са Android уређајем преко USB кабла или Wi-Fi-ја. Помоћу ADB-а можете инсталирати и деинсталирати апликације, копирати датотеке, покретати shell команде, прегледати системске дневнике, правити снимке екрана и снимати екран, управљати подешавањима, па чак и извршавати аутоматизоване тестове. Алат је незаменљив за програмере, тестере и ентузијасте који желе потпуну контролу над уређајем.
Главне напомене
Android Debug Bridge (ADB) — је клијент-сервер апликација која се састоји од три компоненте: клијента (покреће се на рачунару), сервера (позадински процес на рачунару) и демона adbd (извршава се на самом Android уређају). Када програмер или инжењер повеже паметни телефон са рачунаром, ADB ствара поуздан канал комуникације кроз који се могу преносити команде, датотеке и подаци.
Основни сценарији коришћења ADB-а укључују отклањање грешака на апликацијама на стварном уређају без потребе за објављивањем APK-а у продавници, издвајање дневника за анализу грешака, аутоматизацију тестирања, прављење резервних копија података, флешовање recovery слика и добијање root приступа. Чак и ако не пишете код, ADB може бити користан за издвајање снимака екрана из апликација, снимање видео водича са екрана телефона или враћање уређаја након неуспешног флешовања.
Подршка за ADB је уграђена у све званичне верзије Android-а почевши од верзије 2.1 (API 7). За рад је потребна укључена опција „Отклањање грешака преко USB-а“ у подешавањима за програмере. Почевши од Android 4.2, при првом повезивању уређај тражи потврду: потребно је дозволити отклањање грешака за одређени рачунар на основу његовог RSA кључа.
За Windows — преузмите Platform Tools са званичног сајта Google Developers, распакујте архиву у фасциклу C:\adb и додајте ову путању у променљиву окружења PATH. Након поновног покретања терминала, команда adb ће бити глобално доступна.
За macOS — најједноставније је инсталирати ADB преко менаџера пакета Homebrew: извршите brew install android-platform-tools. Све зависности ће бити решене аутоматски.
За Linux — у дистрибуцијама заснованим на Debian / Ubuntu: sudo apt install adb. Након инсталације додајте корисника у групу plugdev: sudo usermod -aG plugdev $USER и поново се пријавите да би ADB добио приступ USB уређајима.
Исправност инсталације можете проверити командом adb version. Ако се у одговору прикаже број верзије Android Debug Bridge-а, алат је спреман за рад.
Прво повезивање увек почиње командом adb devices. Она приказује листу повезаних уређаја и њихов статус. Ако се уређај приказује као unauthorized, откључајте екран и потврдите отклањање грешака на телефону.
adb devices
List of devices attached
emulator-5554 device
0123456789ABCD device
Инсталација апликације — једна од најчешћих операција. Довољно је навести путању до APK датотеке:
adb install C:\apps\myapp.apk
Ако је апликација већ инсталирана, али је потребно заменити је ажурираном верзијом, додајте заставицу -r (replace):
adb install -r C:\apps\myapp-v2.apk
Деинсталација апликације се врши по имену пакета:
adb uninstall com.example.myapp
Копирање датотека — adb pull издваја датотеку са уређаја на рачунар, adb push отпрема датотеку на уређај:
adb pull /sdcard/DCIM/screenshot.png .
adb push myfile.txt /sdcard/Documents/
Интерактивни shell — команда adb shell отвара командну љуску уређаја. Унутар ње се могу извршавати стандардне Linux команде: ls, ps, top, dumpsys, pm, am и друге.
adb shell
tissot_sprout:/ $ ls -la /sdcard/
tissot_sprout:/ $ ps | grep com.android.chrome
Покретање активности преко ADB-а омогућава отварање било које апликације или екрана без ручног тражења иконе:
adb shell am start -n com.android.chrome/com.google.android.apps.chrome.Main
Logcat — је систем евидентирања Android-а који прикупља поруке од апликација, системских сервиса и језгра. Алат је незаменљив при отклањању грешака: из дневника се може разумети зашто је апликација пала, који метод је изазвао изузетак или колико дуго траје одређена операција.
Једноставно покретање без филтера — adb logcat. Ток дневника је бесконачан, за заустављање притисните Ctrl+C. Да бисте филтрирали поруке по ознаци, користите параметар -s:
adb logcat -s MainActivity:V
Нивои важности евидентирања (од најдетаљнијег до критичног): V (Verbose), D (Debug), I (Info), W (Warning), E (Error), F (Fatal). Комбинација ознаке и нивоа омогућава издвајање само потребних порука.
За чишћење нагомиланог бафера пре теста:
adb logcat -c
А да бисте сачували дневнике у датотеку:
adb logcat -d > app_logs.txt
Заставица -d (dump) приказује тренутни бафер и завршава рад без блокирања терминала. Ово је згодно за скрипте аутоматизације.
Снимак екрана се прави командом adb shell screencap. Резултат се чува у датотеку, која се затим издваја преко adb pull:
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png
Могуће је објединити обе операције у једну линију помоћу замене и цевовода. У пракси ово убрзава креирање документације и извештаја о тестирању.
Снимање екрана је доступно на Android 4.4+ (API 19). Подразумевано трајање снимања — 180 секунди, битрејт — 4 Mbit/s. Основна команда:
adb shell screenrecord /sdcard/demo.mp4
За заустављање снимања притисните Ctrl+C. Резолуција видеа одговара резолуцији екрана уређаја, али не прелази 1080p. За промену битрејта наведите --bit-rate:
adb shell screenrecord --bit-rate 8000000 /sdcard/demo.mp4
Дијагностичке команде: adb shell dumpsys приказује стање свих системских сервиса. Да бисте добили информације само о батерији:
adb shell dumpsys battery
Листу инсталираних пакета можете добити преко Package Manager-а:
adb shell pm list packages
Ресетовање подешавања апликације (аналогно брисању података у подешавањима):
adb shell pm clear com.example.myapp
Wi-Fi отклањање грешака ослобађа потребе да уређај буде прикључен преко USB-а. Уверите се да су рачунар и уређај у истој мрежи. Прво извршите adb tcpip 5555, искључите USB, затим се повежите преко IP-а:
adb tcpip 5555
adb connect 192.168.1.100:5555
Ако је IP адреса уређаја непозната, сазнајте је преко adb shell ip addr show wlan0 пре искључивања кабла.
Резервна копија података апликације или целог система се прави без root-а:
adb backup -apk -shared -all -system -f mybackup.ab
Враћање из резервне копије:
adb restore mybackup.ab
Емулација уноса — команда adb shell input омогућава симулацију додира, превлачења, притиска тастера и уноса текста. Ово је основа за аутоматизацију UI тестова без додатних оквира:
adb shell input tap 500 1000
adb shell input swipe 300 500 800 500
adb shell input text "Hello, ADB!"
Поновно покретање у различите режиме:
adb reboot # обично поновно покретање
adb reboot recovery # режим опоравка
adb reboot bootloader # покретач (fastboot)
Fastboot режим отвара приступ флешовању слика, откључавању покретача и инсталацији прилагођеног recovery-а.
Када је повезано више уређаја или емулатора истовремено, ADB захтева навођење одређеног серијског броја. Команда adb devices приказује све повезане уређаје са њиховим серијским бројевима.
За усмеравање команде одређеном уређају користите заставицу -s:
adb -s 0123456789ABCD install myapp.apk
Ако је уређај један, можете без заставице. Међутим, у CI окружењу где је истовремено покренуто више емулатора, навођење серијског броја је обавезно.
Убијање ADB сервера — ако уређај престане да се детектује или даје грешку, поновно покретање сервера помаже:
adb kill-server
adb start-server
Након тога извршите adb devices — сервер ће се поново покренути и преусмерити захтеве на демоне уређаја.
| Команда | Опис |
|---|---|
| adb devices | Прикажи листу повезаних уређаја |
| adb install |
Инсталирање APK датотеке на уређај |
| adb uninstall |
Деинсталирање апликације по имену пакета |
| adb shell | Покретање интерактивне командне љуске |
| adb push |
Копирање датотеке са рачунара на уређај |
| adb pull |
Копирање датотеке са уређаја на рачунар |
| adb logcat | Преглед дневника система и апликација |
| adb shell screencap | Прављење снимка екрана |
| adb shell screenrecord | Снимање видеа са екрана |
| adb reboot | Поновно покретање уређаја |
| adb tcpip 5555 | Пребацивање ADB-а у TCP/IP режим за Wi-Fi |
| adb connect |
Повезивање са уређајем преко Wi-Fi-ја |
Често постављана питања
Отворите „Подешавања" → „О телефону" и притисните 7 пута на „Број верзије". Вратите се у главни мени подешавања — појавиће се одељак „За програмере". Унутра укључите „Отклањање грешака преко USB-а". Почевши од Android 4.2, при првом повезивању са рачунаром потребно је потврдити RSA кључ за отклањање грешака на екрану уређаја.
Уређај не верује рачунару. Откључајте екран телефона, када се појави дијалог „Дозволити отклањање грешака преко USB-а?", означите „Увек дозволи за овај рачунар" и притисните „ОК". Ако се дијалог не појави, искључите и поново укључите USB кабл или извршите adb kill-server && adb start-server.
ADB не захтева интеракцију са екраном. Повежите уређај преко USB-а, сачекајте да се појави у adb devices (ако је отклањање грешака већ било укључено) и извршите adb install <путања_до_apk>. За отварање апликације користите adb shell am start -n <пакет>/<активност>. Ако отклањање грешака није било укључено унапред, враћање приступа без екрана је знатно сложеније — биће потребан прилагођени recovery.
ADB инсталира APK директно, заобилазећи провере Google Play Protect-а током инсталације, што омогућава тестирање апликација пре објављивања. Ипак, коначна провера на злонамерни код се ипак покреће након инсталације. ADB не захтева Google налог, што је важно за корпоративне киоске и уређаје без Google услуга.
Да, огромна већина ADB команди ради без root-а. Изузеци су команде које захтевају приступ заштићеним системским партицијама (на пример, директно пражњење boot партиције или измена системских датотека). За свакодневне задатке — инсталацију апликација, евидентирање, снимке екрана, резервне копије, емулацију уноса — root није потребан.
ADB (Android Debug Bridge) — је основни алат за све који раде са Android-ом на професионалном нивоу. Од основне инсталације апликација до сложене аутоматизације тестирања и враћања уређаја — ADB покрива практично сваки сценариј интеракције рачунара са паметним телефоном или таблетом.
Савладавши команде описане у овом чланку, моћи ћете самоуверено да управљате Android уређајем преко терминала, анализирате дневнике, правите снимке екрана за документацију, вршите резервне копије и убрзавате процес развоја. Редовна пракса и проучавање излаза adb help учиниће вас искусним корисником овог моћног алата.
Резиме
Резиме
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође