ADB (Android Debug Bridge) — to wielofunkcyjne narzędzie konsolowe wchodzące w skład Android SDK. Pozwala komputerowi bezpośrednio współdziałać z urządzeniem Android przez kabel USB lub przez Wi-Fi. Za pomocą ADB można instalować i odinstalowywać aplikacje, kopiować pliki, uruchamiać polecenia shell, przeglądać logi systemowe, robić zrzuty ekranu i nagrywać ekran, zarządzać ustawieniami, a nawet wykonywać zautomatyzowane testy. Narzędzie jest niezastąpione dla programistów, testerów i entuzjastów, którzy chcą uzyskać pełną kontrolę nad urządzeniem.
Najważniejsze
Android Debug Bridge (ADB) — to aplikacja klient-serwer, która składa się z trzech komponentów: klienta (uruchamianego na komputerze), serwera (proces tła na komputerze) i demona adbd (działającego na samym urządzeniu Android). Gdy programista lub inżynier podłącza smartfon do komputera, ADB tworzy niezawodny kanał komunikacji, przez który można przesyłać polecenia, pliki i dane.
Główne scenariusze użycia ADB obejmują debugowanie aplikacji na prawdziwym urządzeniu bez konieczności publikowania APK w sklepie, pobieranie logów do analizy błędów, automatyzację testów, tworzenie kopii zapasowych, flashowanie obrazów recovery i uzyskiwanie dostępu root. Nawet jeśli nie piszesz kodu, ADB może przydać się do pobierania zrzutów ekranu z aplikacji, nagrywania poradnika wideo z ekranu telefonu lub przywracania urządzenia po nieudanym flashowaniu.
Wsparcie ADB jest wbudowane we wszystkie oficjalne kompilacje Android, począwszy od wersji 2.1 (API 7). Do działania wymagana jest włączona opcja „Debugowanie przez USB” w ustawieniach programisty. Począwszy od Android 4.2, przy pierwszym podłączeniu urządzenie prosi o potwierdzenie: należy zezwolić na debugowanie dla konkretnego komputera na podstawie jego klucza RSA.
Dla Windows — pobierz Platform Tools z oficjalnej strony Google Developers, rozpakuj archiwum do folderu C:\adb i dodaj tę ścieżkę do zmiennej środowiskowej PATH. Po ponownym uruchomieniu terminala polecenie adb będzie dostępne globalnie.
Dla macOS — najłatwiej zainstalować ADB przez menedżera pakietów Homebrew: wykonaj brew install android-platform-tools. Wszystkie zależności zostaną rozwiązane automatycznie.
Dla Linux — w dystrybucjach opartych na Debian / Ubuntu: sudo apt install adb. Po instalacji dodaj użytkownika do grupy plugdev: sudo usermod -aG plugdev $USER i wyloguj się, aby ADB uzyskał dostęp do urządzeń USB.
Poprawność instalacji można sprawdzić poleceniem adb version. Jeśli w odpowiedzi wyświetli się numer wersji Android Debug Bridge, narzędzie jest gotowe do pracy.
Pierwsze podłączenie zawsze zaczyna się od polecenia adb devices. Wyświetla ono listę podłączonych urządzeń i ich status. Jeśli urządzenie wyświetla się jako unauthorized, odblokuj ekran i potwierdź debugowanie na telefonie.
adb devices
List of devices attached
emulator-5554 device
0123456789ABCD device
Instalacja aplikacji — jedna z najczęstszych operacji. Wystarczy wskazać ścieżkę do pliku APK:
adb install C:\apps\myapp.apk
Jeśli aplikacja jest już zainstalowana, ale wymaga zastąpienia zaktualizowaną wersją, dodaj flagę -r (replace):
adb install -r C:\apps\myapp-v2.apk
Odinstalowanie aplikacji wykonuje się po nazwie pakietu:
adb uninstall com.example.myapp
Kopiowanie plików — adb pull pobiera plik z urządzenia na komputer, adb push wysyła plik na urządzenie:
adb pull /sdcard/DCIM/screenshot.png .
adb push myfile.txt /sdcard/Documents/
Interaktywny shell — polecenie adb shell otwiera powłokę poleceń urządzenia. Wewnątrz niej można wykonywać standardowe polecenia Linux: ls, ps, top, dumpsys, pm, am i inne.
adb shell
tissot_sprout:/ $ ls -la /sdcard/
tissot_sprout:/ $ ps | grep com.android.chrome
Uruchamianie aktywności przez ADB pozwala otworzyć dowolną aplikację lub ekran bez ręcznego szukania ikony:
adb shell am start -n com.android.chrome/com.google.android.apps.chrome.Main
Logcat — to system logowania Android, który zbiera komunikaty od aplikacji, usług systemowych i jądra. Narzędzie jest niezastąpione przy debugowaniu: po logach można zrozumieć, dlaczego aplikacja padła, która metoda wywołała wyjątek lub jak długo trwa dana operacja.
Proste uruchomienie bez filtrów — adb logcat. Strumień logów jest nieskończony, aby zatrzymać naciśnij Ctrl+C. Aby odfiltrować komunikaty po tagu, użyj parametru -s:
adb logcat -s MainActivity:V
Poziomy ważności logowania (od najbardziej szczegółowego do krytycznego): V (Verbose), D (Debug), I (Info), W (Warning), E (Error), F (Fatal). Kombinacja tagu i poziomu pozwala wyodrębnić tylko potrzebne komunikaty.
Do wyczyszczenia zgromadzonego bufora przed testem:
adb logcat -c
Aby zapisać logi do pliku:
adb logcat -d > app_logs.txt
Flaga -d (dump) wyświetla bieżący bufor i kończy działanie, nie blokując terminala. Jest to wygodne dla skryptów automatyzacji.
Zrzut ekranu wykonuje się poleceniem adb shell screencap. Wynik zapisywany jest do pliku, który następnie pobiera się przez adb pull:
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png
Można połączyć obie operacje w jednej linii za pomocą podstawiania i potoku. W praktyce przyspiesza to tworzenie dokumentacji i raportów z testów.
Nagrywanie ekranu jest dostępne na Android 4.4+ (API 19). Domyślny czas nagrywania to 180 sekund, bitrate — 4 Mb/s. Główne polecenie:
adb shell screenrecord /sdcard/demo.mp4
Aby zatrzymać nagrywanie, naciśnij Ctrl+C. Rozdzielczość wideo odpowiada rozdzielczości ekranu urządzenia, ale nie przekracza 1080p. Aby zmienić bitrate, wskaż --bit-rate:
adb shell screenrecord --bit-rate 8000000 /sdcard/demo.mp4
Polecenia diagnostyczne: adb shell dumpsys wyświetla stan wszystkich usług systemowych. Aby uzyskać informacje tylko o baterii:
adb shell dumpsys battery
Listę zainstalowanych pakietów można uzyskać przez Package Manager:
adb shell pm list packages
Resetowanie ustawień aplikacji (odpowiednik czyszczenia danych w ustawieniach):
adb shell pm clear com.example.myapp
Debugowanie przez Wi-Fi eliminuje konieczność trzymania urządzenia podłączonego przez USB. Upewnij się, że komputer i urządzenie znajdują się w tej samej sieci. Najpierw wykonaj adb tcpip 5555, odłącz USB, następnie połącz się przez IP:
adb tcpip 5555
adb connect 192.168.1.100:5555
Jeśli adres IP urządzenia jest nieznany, sprawdź go przez adb shell ip addr show wlan0 przed odłączeniem kabla.
Kopia zapasowa danych aplikacji lub całego systemu wykonywana jest bez root:
adb backup -apk -shared -all -system -f mybackup.ab
Przywracanie z kopii zapasowej:
adb restore mybackup.ab
Emulacja wprowadzania — polecenie adb shell input pozwala symulować dotknięcia, przesunięcia, naciśnięcia klawiszy i wprowadzanie tekstu. Jest to podstawa do automatyzacji testów UI bez dodatkowych frameworków:
adb shell input tap 500 1000
adb shell input swipe 300 500 800 500
adb shell input text "Hello, ADB!"
Ponowne uruchomienie w różnych trybach:
adb reboot # zwykłe ponowne uruchomienie
adb reboot recovery # tryb przywracania
adb reboot bootloader # program ładujący (fastboot)
Tryb fastboot otwiera dostęp do flashowania obrazów, odblokowania bootloadera i instalacji niestandardowych recovery.
Gdy podłączonych jest kilka urządzeń lub emulatorów jednocześnie, ADB wymaga podania konkretnego numeru seryjnego. Polecenie adb devices wyświetla wszystkie podłączone urządzenia z ich numerami seryjnymi.
Aby skierować polecenie do konkretnego urządzenia, użyj flagi -s:
adb -s 0123456789ABCD install myapp.apk
Jeśli urządzenie jest jedno, można obejść się bez flagi. Jednak w środowisku CI, gdzie jednocześnie uruchomionych jest kilka emulatorów, podanie numeru seryjnego jest obowiązkowe.
Zabicie serwera ADB — jeśli urządzenie przestało być wykrywane lub wyświetla błąd, pomaga ponowne uruchomienie serwera:
adb kill-server
adb start-server
Następnie wykonaj adb devices — serwer uruchomi się ponownie i przekieruje żądania do demonów urządzeń.
| Polecenie | Opis |
|---|---|
| adb devices | Wyświetl listę podłączonych urządzeń |
| adb install |
Instalacja pliku APK na urządzeniu |
| adb uninstall |
Odinstalowanie aplikacji po nazwie pakietu |
| adb shell | Uruchomienie interaktywnej powłoki poleceń |
| adb push |
Kopiowanie pliku z komputera na urządzenie |
| adb pull |
Kopiowanie pliku z urządzenia na komputer |
| adb logcat | Podgląd logów systemu i aplikacji |
| adb shell screencap | Tworzenie zrzutu ekranu |
| adb shell screenrecord | Nagrywanie wideo z ekranu |
| adb reboot | Ponowne uruchomienie urządzenia |
| adb tcpip 5555 | Przełączenie ADB w tryb TCP/IP dla Wi-Fi |
| adb connect |
Połączenie z urządzeniem przez Wi-Fi |
Często zadawane pytania
Otwórz „Ustawienia" → „O telefonie" i kliknij 7 razy na „Numer kompilacji". Wróć do głównego menu ustawień — pojawi się sekcja „Dla programistów". Wewnątrz włącz „Debugowanie przez USB". Począwszy od Android 4.2, przy pierwszym podłączeniu do komputera należy potwierdzić klucz RSA debugowania na ekranie urządzenia.
Urządzenie nie ufa komputerowi. Odblokuj ekran telefonu, gdy pojawi się okno „Zezwolić na debugowanie przez USB?", zaznacz opcję „Zawsze zezwalaj dla tego komputera" i kliknij „OK". Jeśli okno się nie pojawia, odłącz i ponownie podłącz kabel USB lub wykonaj adb kill-server && adb start-server.
ADB nie wymaga interakcji z ekranem. Podłącz urządzenie przez USB, poczekaj na pojawienie się w adb devices (jeśli debugowanie było już włączone) i wykonaj adb install <ścieżka_do_apk>. Aby otworzyć aplikację, użyj adb shell am start -n
ADB instaluje APK bezpośrednio, omijając sprawdzanie Google Play Protect podczas instalacji, co pozwala testować aplikacje przed publikacją. Jednak ostateczne sprawdzenie na złośliwy kod i tak uruchamia się po instalacji. ADB nie wymaga konta Google, co jest ważne dla korporacyjnych kiosków i urządzeń bez usług Google.
Tak, zdecydowana większość poleceń ADB działa bez root. Wyjątkiem są polecenia wymagające dostępu do chronionych partycji systemowych (na przykład bezpośredni zrzut partycji boot lub modyfikacja plików systemowych). Do codziennych zadań — instalacji aplikacji, logowania, zrzutów ekranu, kopii zapasowych, emulacji wprowadzania — root nie jest wymagany.
ADB (Android Debug Bridge) — to fundamentalne narzędzie dla wszystkich, którzy pracują z Android na profesjonalnym poziomie. Od podstawowej instalacji aplikacji po złożoną automatyzację testów i przywracanie urządzeń — ADB pokrywa praktycznie każdy scenariusz interakcji komputera ze smartfonem lub tabletem.
Opanowując polecenia opisane w tym artykule, będziesz w stanie pewnie zarządzać urządzeniem Android przez terminal, analizować logi, robić zrzuty ekranu do dokumentacji, wykonywać kopie zapasowe i przyspieszać proces programowania. Regularna praktyka i studiowanie wyników adb help uczynią Cię doświadczonym użytkownikiem tego potężnego narzędzia.
Podsumowanie
Podsumowanie
Opracujemy aplikację mobilną pod klucz
IT Sectr tworzy aplikacje na iOS i Androida dla startupów i firm od 2017 roku. Doradzimy Ci i zaproponujemy najlepsze rozwiązanie.
Przeczytaj również