ADB (Android Debug Bridge) — Android SDK-nın tərkibinə daxil olan çoxfunksiyalı konsol yardımçı proqramıdır. O, kompüterə USB kabel və ya Wi-Fi vasitəsilə Android cihazı ilə birbaşa qarşılıqlı əlaqə yaratmağa imkan verir. ADB ilə proqramları quraşdırmaq və silmək, faylları köçürmək, shell əmrlərini işə salmaq, sistem jurnallarına baxmaq, ekran görüntüləri və ekran yazısı etmək, parametrləri idarə etmək və hətta avtomatlaşdırılmış testləri yerinə yetirmək olar. Alət proqramçılar, testçilər və cihaz üzərində tam nəzarət əldə etmək istəyən həvəskarlar üçün əvəzolunmazdır.
Əsas qeydlər
Android Debug Bridge (ADB) — üç komponentdən ibarət olan klient-server proqramıdır: klient (kompüterdə işə salınır), server (kompüterdə fon prosesi) və adbd demonu (birbaşa Android cihazında işləyir). Proqramçı və ya mühəndis smartfonu kompüterə qoşduqda, ADB əmrlər, fayllar və məlumatlar ötürmək üçün etibarlı rabitə kanalı yaradır.
ADB-nin istifadəsinin əsas ssenarilərinə APK-nı mağazada dərc etmədən real cihazda proqramların sazlanması, səhvlərin təhlili üçün jurnalların çıxarılması, test avtomatlaşdırması, məlumatların ehtiyat nüsxəsi, recovery görüntülərinin yazılması və root girişinin əldə edilməsi daxildir. Hətta kod yazmasanız belə, ADB proqramlardan ekran görüntüləri çıxarmaq, telefon ekranından video bələdçi çəkmək və ya uğursuz yazılmadan sonra cihazı bərpa etmək üçün faydalı ola bilər.
ADB dəstəyi Android 2.1 (API 7) versiyasından başlayaraq bütün rəsmi Android qurğularına daxil edilmişdir. İş üçün tərtibatçı parametrlərində «USB vasitəsilə sazlama» seçiminin aktiv edilməsi tələb olunur. Android 4.2-dən başlayaraq, ilk qoşulmada cihaz təsdiq tələb edir: RSA açarına əsasən konkret kompüter üçün sazlamaya icazə vermək lazımdır.
Windows üçün — Google Developers rəsmi saytından Platform Tools yükləyin, arxivi C:\adb qovluğuna çıxarın və bu yolu PATH mühit dəyişəninə əlavə edin. Terminalı yenidən başlatdıqdan sonra adb əmri qlobal olaraq əlçatan olacaq.
macOS üçün — ən asan yol Homebrew paket meneceri vasitəsilə ADB quraşdırmaqdır: brew install android-platform-tools icra edin. Bütün asılılıqlar avtomatik həll olunacaq.
Linux üçün — Debian / Ubuntu əsaslı paylamalarda: sudo apt install adb. Quraşdırmadan sonra istifadəçini plugdev qrupuna əlavə edin: sudo usermod -aG plugdev $USER və ADB-nin USB cihazlarına giriş əldə etməsi üçün yenidən daxil olun.
Quraşdırmanın düzgünlüyünü adb version əmri ilə yoxlamaq olar. Cavabda Android Debug Bridge versiya nömrəsi göstərilirsə, alət işə hazırdır.
İlk qoşulma həmişə adb devices əmri ilə başlayır. O, qoşulmuş cihazların siyahısını və onların statusunu göstərir. Cihaz unauthorized kimi göstərilirsə, ekranı kiliddən çıxarın və telefonda sazlamanı təsdiq edin.
adb devices
List of devices attached
emulator-5554 device
0123456789ABCD device
Proqramın quraşdırılması — ən çox yayılmış əməliyyatlardan biridir. APK faylına yolu göstərmək kifayətdir:
adb install C:\apps\myapp.apk
Proqram artıq quraşdırılıbsa, lakin yenilənmiş versiya ilə əvəz edilməsi tələb olunursa, -r (replace) bayrağını əlavə edin:
adb install -r C:\apps\myapp-v2.apk
Proqramın silinməsi paket adı ilə yerinə yetirilir:
adb uninstall com.example.myapp
Faylların köçürülməsi — adb pull faylı cihazdan kompüterə çıxarır, adb push faylı cihaza yükləyir:
adb pull /sdcard/DCIM/screenshot.png .
adb push myfile.txt /sdcard/Documents/
İnteraktiv shell — adb shell əmri cihazın əmr qabığını açır. Onun içərisində standart Linux əmrlərini yerinə yetirmək olar: ls, ps, top, dumpsys, pm, am və digərləri.
adb shell
tissot_sprout:/ $ ls -la /sdcard/
tissot_sprout:/ $ ps | grep com.android.chrome
Aktivliyin işə salınması ADB vasitəsilə ikonanı əl ilə axtarmadan istənilən proqramı və ya ekranı açmağa imkan verir:
adb shell am start -n com.android.chrome/com.google.android.apps.chrome.Main
Logcat — proqramlardan, sistem xidmətlərindən və nüvədən mesajları toplayan Android jurnal sistemidir. Alət sazlama zamanı əvəzolunmazdır: jurnallar vasitəsilə proqramın niyə çökdüyünü, hansı metodun istisna yaratdığını və ya konkret əməliyyatın nə qədər davam etdiyini anlamaq olar.
Filtrlərsiz sadə işə salma — adb logcat. Jurnal axını sonsuzdur, dayandırmaq üçün Ctrl+C düyməsini basın. Mesajları teq üzrə filtrləmək üçün -s parametrindən istifadə edin:
adb logcat -s MainActivity:V
Jurnalın vaciblik səviyyələri (ən ətraflıdan kritikə): V (Verbose), D (Debug), I (Info), W (Warning), E (Error), F (Fatal). Teq və səviyyənin birləşməsi yalnız lazımi mesajları ayırmağa imkan verir.
Testdən əvvəl toplanmış buferi təmizləmək üçün:
adb logcat -c
Jurnalları fayla saxlamaq üçün:
adb logcat -d > app_logs.txt
-d (dump) bayrağı cari buferi göstərir və terminalı bloklamadan işi bitirir. Bu, avtomatlaşdırma skriptləri üçün əlverişlidir.
Ekran görüntüsü adb shell screencap əmri ilə çəkilir. Nəticə faylda saxlanılır, daha sonra adb pull vasitəsilə çıxarılır:
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png
Hər iki əməliyyatı əvəzetmə və boru kəmərindən istifadə edərək bir sətirdə birləşdirmək olar. Praktikada bu, sənədləşmə və test hesabatlarının yaradılmasını sürətləndirir.
Ekran yazısı Android 4.4+ (API 19) üzərində mövcuddur. Standart yazı müddəti — 180 saniyə, bitrate — 4 Mbit/s. Əsas əmr:
adb shell screenrecord /sdcard/demo.mp4
Yazını dayandırmaq üçün Ctrl+C düyməsini basın. Video rezolyusiyası cihazın ekran rezolyusiyasına uyğundur, lakin 1080p-dən çox deyil. Bitrate-i dəyişmək üçün --bit-rate qeyd edin:
adb shell screenrecord --bit-rate 8000000 /sdcard/demo.mp4
Diaqnostik əmrlər: adb shell dumpsys bütün sistem xidmətlərinin vəziyyətini göstərir. Yalnız batareya haqqında məlumat almaq üçün:
adb shell dumpsys battery
Quraşdırılmış paketlərin siyahısını Package Manager vasitəsilə almaq olar:
adb shell pm list packages
Proqram parametrlərinin sıfırlanması (parametrlərdə məlumatların təmizlənməsinin analoqu):
adb shell pm clear com.example.myapp
Wi-Fi sazlama cihazı USB ilə qoşulu saxlamaq məcburiyyətindən azad edir. Kompüter və cihazın eyni şəbəkədə olduğundan əmin olun. Əvvəlcə adb tcpip 5555 icra edin, USB-ni ayırın, sonra IP üzərindən qoşulun:
adb tcpip 5555
adb connect 192.168.1.100:5555
Cihazın IP ünvanı məlum deyilsə, kabeli ayırmamışdan əvvəl adb shell ip addr show wlan0 vasitəsilə öyrənin.
Məlumatların ehtiyat nüsxəsi proqram və ya bütün sistem root olmadan yerinə yetirilir:
adb backup -apk -shared -all -system -f mybackup.ab
Ehtiyat nüsxədən bərpa:
adb restore mybackup.ab
Daxiletmə emulyasiyası — adb shell input əmri toxunuşları, sürüşdürmələri, düymə basmalarını və mətn daxil etməni simulyasiya etməyə imkan verir. Bu, əlavə freymvorksuz UI testlərinin avtomatlaşdırılması üçün əsasdır:
adb shell input tap 500 1000
adb shell input swipe 300 500 800 500
adb shell input text "Hello, ADB!"
Müxtəlif rejimlərdə yenidən başlatma:
adb reboot # adi yenidən başlatma
adb reboot recovery # bərpa rejimi
adb reboot bootloader # yükləyici (fastboot)
Fastboot rejimi görüntülərin yazılmasına, yükləyicinin blokdan çıxarılmasına və fərdi recovery quraşdırılmasına giriş açır.
Bir neçə cihaz və ya emulyator eyni anda qoşulduqda, ADB konkret seriya nömrəsinin göstərilməsini tələb edir. adb devices əmri bütün qoşulmuş cihazları onların seriya nömrələri ilə göstərir.
Əmri konkret cihaza ünvanlamaq üçün -s bayrağından istifadə edin:
adb -s 0123456789ABCD install myapp.apk
Cihaz təkdirsə, bayraq olmadan da işləmək olar. Lakin CI mühitində, eyni anda bir neçə emulyator işə salındıqda, seriya nömrəsinin göstərilməsi məcburidir.
ADB serverini öldürmək — cihaz aşkarlanmağı dayandırıbsa və ya xəta verirsə, serverin yenidən başladılması kömək edir:
adb kill-server
adb start-server
Bundan sonra adb devices icra edin — server yenidən başlayacaq və sorğuları cihaz demonlarına yönləndirəcək.
| Əmr | İzahı |
|---|---|
| adb devices | Qoşulmuş cihazların siyahısını göstər |
| adb install |
Quraşdırma APK faylını cihaza |
| adb uninstall |
Proqramı paket adı ilə sil |
| adb shell | İnteraktiv əmr qabığını işə sal |
| adb push |
Köçürmə faylı kompüterdən cihaza |
| adb pull |
Faylı cihazdan kompüterə köçür |
| adb logcat | Sistem və proqram jurnallarına bax |
| adb shell screencap | Ekran görüntüsü yarat |
| adb shell screenrecord | Ekrandan video yaz |
| adb reboot | Yenidən başlat cihazı |
| adb tcpip 5555 | ADB-ni Wi-Fi üçün TCP/IP rejiminə keçir |
| adb connect |
Cihaza Wi-Fi vasitəsilə qoşul |
Tez-tez verilən suallar
«Parametrlər» → «Telefon haqqında» bölməsini açın və «Qurğu nömrəsi»nə 7 dəfə klikləyin. Parametrlərin əsas menyusuna qayıdın — «Tərtibatçılar üçün» bölməsi görünəcək. İçəridə «USB vasitəsilə sazlama»nı yandırın. Android 4.2-dən başlayaraq, kompüterə ilk qoşulmada cihaz ekranında RSA sazlama açarını təsdiq etmək lazımdır.
Cihaz kompüterə etibar etmir. Telefonun ekranını kiliddən çıxarın, «USB vasitəsilə sazlamaya icazə verilsin?» dialoqu göründükdə «Həmişə bu kompüter üçün icazə ver» işarəsini qoyun və «OK» düyməsini basın. Dialoq görünmürsə, USB kabeli ayırıb yenidən qoşun və ya adb kill-server && adb start-server icra edin.
ADB ekranla qarşılıqlı əlaqə tələb etmir. Cihazı USB ilə qoşun, adb devices-də görünməsini gözləyin (sazlama artıq aktiv idisə) və adb install
ADB APK-nı birbaşa quraşdırır, Google Play Protect yoxlamalarını quraşdırma zamanı keçir, bu da proqramları dərc olunmamışdan əvvəl test etməyə imkan verir. Bununla belə, zərərli kod üçün yekun yoxlama quraşdırmadan sonra yenə də işə düşür. ADB Google hesabı tələb etmir, bu, korporativ köşklər və Google xidmətləri olmayan cihazlar üçün vacibdir.
Bəli, ADB əmrlərinin böyük əksəriyyəti root olmadan işləyir. İstisnalar — qorunan sistem bölmələrinə giriş tələb edən əmrlər (məsələn, boot bölməsinin birbaşa dumpsı və ya sistem fayllarının dəyişdirilməsi). Gündəlik tapşırıqlar üçün — proqramların quraşdırılması, jurnallaşdırma, ekran görüntüləri, ehtiyat nüsxələr, daxiletmə emulyasiyası — root tələb olunmur.
ADB (Android Debug Bridge) — peşəkar səviyyədə Android ilə işləyən hər kəs üçün əsas alətdir. Proqramların əsas quraşdırılmasından testlərin mürəkkəb avtomatlaşdırılmasına və cihazların bərpasına qədər — ADB kompüterin smartfon və ya planşetlə qarşılıqlı əlaqəsinin demək olar ki, hər hansı ssenarisini əhatə edir.
Bu məqalədə təsvir olunan əmrləri mənimsəyərək, terminal vasitəsilə Android cihazını inamla idarə edə, jurnalları təhlil edə, sənədləşmə üçün ekran görüntüləri çəkə, ehtiyat nüsxələr yarada və inkişaf prosesini sürətləndirə biləcəksiniz. Müntəzəm təcrübə və adb help çıxışının öyrənilməsi sizi bu güclü alətin təcrübəli istifadəçisinə çevirəcək.
Xülasə
Xülasə
Açar təslim mobil tətbiq hazırlayacağıq
IT Sectr 2017-ci ildən startaplar və bizneslər üçün iOS və Android tətbiqləri yaradır. Sizə məsləhət verəcəyik və ən yaxşı həlli təklif edəcəyik.
Həm də oxuyun