ADB (Android Debug Bridge), Android SDK'nın bir parçası olan çok işlevli bir komut satırı yardımcı programıdır. Bilgisayarın bir Android cihazla USB kablosu veya Wi-Fi aracılığıyla doğrudan etkileşime girmesini sağlar. ADB ile uygulamaları yükleyip kaldırabilir, dosyaları kopyalayabilir, shell komutları çalıştırabilir, sistem günlüklerini görüntüleyebilir, ekran görüntüsü alabilir ve ekran kaydı yapabilir, ayarları yönetebilir ve hatta otomatik testler gerçekleştirebilirsiniz. Araç, cihaz üzerinde tam kontrol isteyen geliştiriciler, test uzmanları ve meraklılar için vazgeçilmezdir.
Önemli Noktalar
Android Debug Bridge (ADB), üç bileşenden oluşan bir istemci-sunucu uygulamasıdır: istemci (bilgisayarda çalışır), sunucu (bilgisayarda arka plan işlemi) ve arkaplan programı adbd (Android cihazın kendisinde çalışır). Bir geliştirici veya mühendis akıllı telefonu PC'ye bağladığında, ADB komutların, dosyaların ve verilerin iletilebileceği güvenilir bir iletişim kanalı oluşturur.
ADB'nin ana kullanım alanları arasında, APK'yı bir mağazada yayınlamadan gerçek bir cihazda uygulamaları hata ayıklama, hata analizi için günlükleri çıkarma, test otomasyonu, veri yedekleme, kurtarma görüntülerini flashlama ve root erişimi elde etme yer alır. Kod yazmasanız bile, ADB uygulamalardan ekran görüntüsü çıkarma, telefon ekranından video kılavuzu kaydetme veya başarısız bir donanım yazılımı güncellemesinden sonra cihazı kurtarma için yararlı olabilir.
ADB desteği, Android 2.1 (API 7) sürümünden itibaren tüm resmi Android yapılarında yerleşiktir. Geliştirici ayarlarında USB Hata Ayıklama seçeneğinin etkinleştirilmesini gerektirir. Android 4.2'den itibaren, ilk bağlantıda cihaz onay ister: RSA anahtarıyla belirli bilgisayar için hata ayıklamaya izin vermelisiniz.
Windows için — Google Developers resmi web sitesinden Platform Tools'u indirin, arşivi C:\adb klasörüne çıkarın ve bu yolu PATH ortam değişkenine ekleyin. Terminali yeniden başlattıktan sonra adb komutu genel olarak kullanılabilir olacaktır.
macOS için — en kolay yol, ADB'yi Homebrew paket yöneticisi aracılığıyla kurmaktır: brew install android-platform-tools komutunu çalıştırın. Tüm bağımlılıklar otomatik olarak çözülecektir.
Linux için — Debian / Ubuntu tabanlı dağıtımlarda: sudo apt install adb. Kurulumdan sonra kullanıcıyı plugdev grubuna ekleyin: sudo usermod -aG plugdev $USER ve ADB'nin USB cihazlarına erişebilmesi için yeniden oturum açın.
adb version komutuyla kurulumu doğrulayın. Çıktı Android Debug Bridge sürüm numarasını gösteriyorsa, araç kullanıma hazırdır.
İlk bağlantı her zaman adb devices komutuyla başlar. Bağlı cihazların listesini ve durumlarını gösterir. Cihaz unauthorized olarak görünüyorsa, ekranın kilidini açın ve telefonda hata ayıklamayı onaylayın.
adb devices
List of devices attached
emulator-5554 device
0123456789ABCD device
Uygulama yükleme — en sık yapılan işlemlerden biridir. Sadece APK dosyasının yolunu belirtin:
adb install C:\apps\myapp.apk
Uygulama zaten yüklüyse ancak güncellenmiş bir sürümle değiştirilmesi gerekiyorsa, -r (replace) bayrağını ekleyin:
adb install -r C:\apps\myapp-v2.apk
Uygulama kaldırma paket adına göre yapılır:
adb uninstall com.example.myapp
Dosya kopyalama — adb pull cihazdan bilgisayara dosya alır, adb push cihaza dosya yükler:
adb pull /sdcard/DCIM/screenshot.png .
adb push myfile.txt /sdcard/Documents/
Etkileşimli shell — adb shell komutu cihazın komut shell'ini açar. İçinde standart Linux komutlarını çalıştırabilirsiniz: ls, ps, top, dumpsys, pm, am ve diğerleri.
adb shell
tissot_sprout:/ $ ls -la /sdcard/
tissot_sprout:/ $ ps | grep com.android.chrome
Bir aktiviteyi başlatma ADB aracılığıyla, simgeyi manuel olarak aramadan herhangi bir uygulama veya ekranı açmanıza olanak tanır:
adb shell am start -n com.android.chrome/com.google.android.apps.chrome.Main
Logcat, uygulamalardan, sistem hizmetlerinden ve çekirdekten mesajları toplayan Android günlük sistemidir. Araç, hata ayıklama için vazgeçilmezdir: günlükler sayesinde bir uygulamanın neden çöktüğünü, hangi yöntemin istisnaya yol açtığını veya belirli bir işlemin ne kadar sürdüğünü anlayabilirsiniz.
Filtresiz basit başlatma — adb logcat. Günlük akışı sonsuzdur; durdurmak için Ctrl+C tuşlarına basın. Mesajları etikete göre filtrelemek için -s parametresini kullanın:
adb logcat -s MainActivity:V
Günlük önem seviyeleri (en ayrıntılıdan kritiğe): V (Verbose), D (Debug), I (Info), W (Warning), E (Error), F (Fatal). Bir etiket ve seviye kombinasyonu, yalnızca gerekli mesajları vurgulamanıza olanak tanır.
Testten önce birikmiş arabelleği temizlemek için:
adb logcat -c
Ve günlükleri bir dosyaya kaydetmek için:
adb logcat -d > app_logs.txt
-d (dump) bayrağı mevcut arabelleği çıktılar ve terminali bloke etmeden sonlanır. Bu, otomasyon betikleri için kullanışlıdır.
Ekran görüntüsü adb shell screencap komutuyla alınır. Sonuç bir dosyaya kaydedilir ve daha sonra adb pull ile alınır:
adb shell screencap /sdcard/screen.png
adb pull /sdcard/screen.png
Her iki işlemi de değiştirme ve yönlendirme kullanarak tek bir satırda birleştirebilirsiniz. Pratikte bu, belgelerin ve test raporlarının oluşturulmasını hızlandırır.
Ekran kaydı Android 4.4+ (API 19) üzerinde kullanılabilir. Varsayılan kayıt süresi 180 saniye, bit hızı 4 Mbps'dir. Ana komut:
adb shell screenrecord /sdcard/demo.mp4
Kaydı durdurmak için Ctrl+C tuşlarına basın. Video çözünürlüğü cihaz ekran çözünürlüğüne karşılık gelir ancak 1080p'yi geçmez. Bit hızını değiştirmek için --bit-rate belirtin:
adb shell screenrecord --bit-rate 8000000 /sdcard/demo.mp4
Tanı komutları: adb shell dumpsys tüm sistem hizmetlerinin durumunu çıktılar. Yalnızca pil bilgisi almak için:
adb shell dumpsys battery
Yüklü paketlerin listesi Package Manager aracılığıyla alınabilir:
adb shell pm list packages
Uygulama ayarlarını sıfırlama (ayarlardaki verileri temizlemeye eşdeğer):
adb shell pm clear com.example.myapp
Wi-Fi hata ayıklama, cihazı USB'ye bağlı tutma ihtiyacını ortadan kaldırır. Bilgisayar ve cihazın aynı ağda olduğundan emin olun. Önce adb tcpip 5555'i çalıştırın, USB'yi çıkarın, ardından IP üzerinden bağlanın:
adb tcpip 5555
adb connect 192.168.1.100:5555
Cihazın IP adresi bilinmiyorsa, kabloyu çıkarmadan önce adb shell ip addr show wlan0 ile öğrenin.
Veri yedekleme bir uygulamanın veya tüm sistemin root olmadan yapılabilir:
adb backup -apk -shared -all -system -f mybackup.ab
Yedekten geri yükleme:
adb restore mybackup.ab
Giriş simülasyonu — adb shell input komutu, dokunma, kaydırma, tuş basma ve metin girişini simüle etmenizi sağlar. Bu, ek çerçeveler olmadan UI test otomasyonunun temelidir:
adb shell input tap 500 1000
adb shell input swipe 300 500 800 500
adb shell input text "Hello, ADB!"
Farklı modlarda yeniden başlatma:
adb reboot # normal reboot
adb reboot recovery # recovery mode
adb reboot bootloader # bootloader (fastboot)
Fastboot modu, görüntüleri flashlama, önyükleyici kilidini açma ve özel kurtarma yükleme erişimi sağlar.
Birden çok cihaz veya öykünücü aynı anda bağlandığında, ADB belirli bir seri numarası gerektirir. adb devices komutu, seri numaralarıyla birlikte tüm bağlı cihazları listeler.
Belirli bir cihaza komut göndermek için -s bayrağını kullanın:
adb -s 0123456789ABCD install myapp.apk
Yalnızca bir cihaz varsa, bayrak atlanabilir. Ancak birden çok öykünücünün aynı anda çalıştığı bir CI ortamında, seri numarası belirtilmesi zorunludur.
ADB sunucusunu öldürme — bir cihaz algılanmayı durdurursa veya hata verirse, sunucuyu yeniden başlatmak yardımcı olur:
adb kill-server
adb start-server
Bundan sonra adb devices'ı çalıştırın — sunucu yeniden başlayacak ve istekleri cihaz arkaplan programlarına yönlendirecektir.
| Komut | Açıklama |
|---|---|
| adb devices | Bağlı cihazların listesini göster |
| adb install |
Cihaza APK dosyasını yükle |
| adb uninstall |
Paket adına göre uygulamayı kaldır |
| adb shell | Etkileşimli komut shell'i aç |
| adb push |
Dosyayı bilgisayardan cihaza kopyala |
| adb pull |
Dosyayı cihazdan bilgisayara kopyala |
| adb logcat | Sistem ve uygulama günlüklerini görüntüle |
| adb shell screencap | Ekran görüntüsü al |
| adb shell screenrecord | Ekran videosu kaydet |
| adb reboot | Cihazı yeniden başlat |
| adb tcpip 5555 | Wi-Fi için ADB'yi TCP/IP moduna geçir |
| adb connect |
Wi-Fi üzerinden cihaza bağlan |
Sıkça Sorulan Sorular
Ayarlar → Telefon hakkında bölümünü açın ve Derleme numarasına 7 kez dokunun. Ana ayarlar menüsüne dönün — Geliştirici seçenekleri bölümü görünecektir. İçinde USB hata ayıklamayı etkinleştirin. Android 4.2'den itibaren, bilgisayara ilk bağlanışta, cihaz ekranında RSA hata ayıklama anahtarını onaylamanız gerekir.
Cihaz bilgisayara güvenmiyor. Telefon ekranının kilidini açın; USB hata ayıklamaya izin ver iletişim kutusu göründüğünde, Bu bilgisayar için her zaman izin ver seçeneğini işaretleyin ve Tamam'a dokunun. İletişim kutusu görünmezse, USB kablosunu çıkarıp tekrar takın veya adb kill-server && adb start-server komutunu çalıştırın.
ADB, ekran etkileşimi gerektirmez. Cihazı USB ile bağlayın, adb devices'da görünmesini bekleyin (hata ayıklama zaten etkinse) ve adb install
ADB, APK'yı doğrudan yükler, yükleme sırasında Google Play Protect denetimlerini atlayarak uygulamaları yayınlamadan önce test etmenize olanak tanır. Ancak yüklemeden sonra nihai kötü amaçlı yazılım taraması yine de çalışır. ADB, bir Google hesabı gerektirmez, bu da kurumsal kiosklar ve Google hizmetleri olmayan cihazlar için önemlidir.
Evet, ADB komutlarının büyük çoğunluğu root olmadan çalışır. İstisnalar, korumalı sistem bölümlerine erişim gerektiren komutlardır (örneğin, önyükleme bölümünün doğrudan dökümü veya sistem dosyalarını değiştirme). Günlük görevler için — uygulama yükleme, günlük kaydı, ekran görüntüleri, yedekleme, giriş simülasyonu — root gerekli değildir.
ADB (Android Debug Bridge), profesyonel düzeyde Android ile çalışan herkes için temel bir araçtır. Temel uygulama yüklemeden karmaşık test otomasyonu ve cihaz kurtarmaya kadar — ADB, bilgisayar ile akıllı telefon veya tablet arasındaki hemen hemen her etkileşim senaryosunu kapsar.
Bu makalede açıklanan komutlara hakim olarak, terminal aracılığıyla bir Android cihazı güvenle yönetebilecek, günlükleri analiz edebilecek, belgeler için ekran görüntüleri alabilecek, yedeklemeler yapabilecek ve geliştirme sürecini hızlandırabileceksiniz. Düzenli pratik ve adb help çıktısını incelemek, sizi bu güçlü aracın deneyimli bir kullanıcısı yapacaktır.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun