Android Debug Bridge (adb
), bir cihazla iletişim kurmanıza olanak tanıyan çok yönlü bir komut satırı aracıdır. adb
komutu, uygulama yükleme ve hata ayıklama gibi çeşitli cihaz işlemlerini kolaylaştırır. adb
, cihazda çeşitli komutlar çalıştırmak için kullanabileceğiniz bir Unix kabuğuna erişim sağlar. Üç bileşenden oluşan bir istemci-sunucu programıdır:
- Komut gönderen bir istemci. İstemci, geliştirme makinenizde çalışır.
adb
komutunu vererek bir istemciyi komut satırı terminalinden çağırabilirsiniz. - Cihazda komutları çalıştıran bir arka plan programı (adbd). Arka plan programı, her cihazda arka plan işlemi olarak çalışır.
- İstemci ile arka plan programı arasındaki iletişimi yöneten bir sunucu. Sunucu, geliştirme makinenizde arka plan işlemi olarak çalışır.
adb
, Android SDK Platform Tools paketine dahildir. Bu paketi SDK Yöneticisi ile indirin. Bu paket, android_sdk/platform-tools/
konumuna yüklenir. Bağımsız Android SDK Platform Tools paketini istiyorsanız buradan indirebilirsiniz.
adb
üzerinden kullanılmak üzere cihaz bağlama (bağlantı yardımcısını kullanarak yaygın sorunları giderme dahil) hakkında bilgi edinmek için Uygulamaları donanım cihazda çalıştırma başlıklı makaleyi inceleyin.
adb'nin işleyiş şekli
Bir adb
istemcisini başlattığınızda istemci önce halihazırda çalışan bir adb
sunucu işlemi olup olmadığını kontrol eder. Yoksa sunucu işlemi başlatılır.
Sunucu başlatıldığında yerel TCP bağlantı noktası 5037'ye bağlanır ve adb
istemcilerinden gönderilen komutları dinler.
Not: Tüm adb
istemcileri, adb
sunucusuyla iletişim kurmak için 5037 numaralı bağlantı noktasını kullanır.
Ardından sunucu, çalışan tüm cihazlarla bağlantı kurar.
Bu araç, ilk 16 emülatörün kullandığı aralık olan 5555-5585 aralığındaki tek numaralı bağlantı noktalarını tarayarak emülatörleri bulur. Sunucu, adb
daemon (adbd) bulduğu yerde bu bağlantı noktasıyla bağlantı kurar.
Her emülatör, sıralı bağlantı noktalarından oluşan bir çift kullanır. Konsol bağlantıları için çift numaralı bir bağlantı noktası, adb
bağlantıları için ise tek numaralı bir bağlantı noktası kullanılır. Örneğin:
Emülatör 1, konsol: 5554
Emülatör 1, adb
: 5555
Emülatör 2, konsol: 5556
Emülatör 2, adb
: 5557
vb.
Gösterildiği gibi, 5555 numaralı bağlantı noktasında adb
'ya bağlı olan emülatör, konsolu 5554 numaralı bağlantı noktasında dinleyen emülatörle aynıdır.
Sunucu tüm cihazlarla bağlantı kurduktan sonra adb
komutlarını kullanarak bu cihazlara erişebilirsiniz. Sunucu, cihazlara bağlantıları yönettiği ve birden fazla adb
istemciden gelen komutları işlediği için herhangi bir cihazı herhangi bir istemciden veya komut dosyasından kontrol edebilirsiniz.
Cihazınızda ADB hata ayıklama işlevini etkinleştirme
USB üzerinden bağlı bir cihazla adb'yi kullanmak için cihazın sistem ayarlarındaki Geliştirici seçenekleri bölümünde USB üzerinden hata ayıklama'yı etkinleştirmeniz gerekir. Android 4.2 (API düzeyi 17) ve sonraki sürümlerde Geliştirici seçenekleri ekranı varsayılan olarak gizlenir. Görünür hale getirmek için Geliştirici seçenekleri'ni etkinleştirin.
Artık cihazınızı USB ile bağlayabilirsiniz. adb devices
komutunu android_sdk/platform-tools/
dizininden çalıştırarak cihazınızın bağlı olduğunu doğrulayabilirsiniz. Bağlıysa cihaz adını "cihaz" olarak listelenmiş şekilde görürsünüz.
Not: Android 4.2.2 (API düzeyi 17) veya sonraki sürümleri çalıştıran bir cihazı bağladığınızda sistem, bu bilgisayar üzerinden hata ayıklamaya izin veren bir RSA anahtarının kabul edilip edilmeyeceğini soran bir iletişim kutusu gösterir. Bu güvenlik mekanizması, cihazın kilidini açıp iletişim kutusunu onaylamadığınız sürece USB hata ayıklama ve diğer adb komutlarının yürütülememesini sağlayarak kullanıcı cihazlarını korur.
USB üzerinden bir cihaza bağlanma hakkında daha fazla bilgi edinmek için Uygulamaları donanım cihazında çalıştırma başlıklı makaleyi inceleyin.
Kablosuz ağ üzerinden bir cihaza bağlanma
Not: Aşağıdaki talimatlar, Android 11 (API düzeyi 30) çalıştıran Wear cihazlar için geçerli değildir. Daha fazla bilgi için Wear OS uygulamasında hata ayıklama rehberine bakın.
Android 11 (API düzeyi 30) ve sonraki sürümlerde, Android Debug Bridge (adb) kullanarak iş istasyonunuzdan uygulamanızı kablosuz olarak dağıtıp hata ayıklayabilirsiniz. Örneğin, hata ayıklanabilir uygulamanızı cihazınızı USB üzerinden fiziksel olarak bağlamanıza gerek kalmadan birden fazla uzak cihaza dağıtabilirsiniz. Bu sayede, sürücü yükleme gibi yaygın USB bağlantı sorunlarıyla uğraşma ihtiyacı ortadan kalkar.
Kablosuz hata ayıklamayı kullanmaya başlamadan önce şunları yapın:
-
İş istasyonunuzun ve cihazınızın aynı kablosuz ağa bağlı olduğundan emin olun.
-
Cihazınızda telefon için Android 11 (API düzeyi 30) veya sonraki bir sürümün, TV ve WearOS için ise Android 13 (API düzeyi 33) veya sonraki bir sürümün yüklü olduğundan emin olun. Daha fazla bilgi için Android sürümünüzü kontrol etme ve güncelleme başlıklı makaleyi inceleyin.
-
IDE kullanıyorsanız Android Studio'nun en yeni sürümünün yüklü olduğundan emin olun. Uygulamayı buradan indirebilirsiniz.
-
İş istasyonunuzda SDK Platform Araçları'nın en son sürümüne güncelleyin.
Kablosuz hata ayıklamayı kullanmak için cihazınızı QR kodu veya eşleme kodu kullanarak iş istasyonunuzla eşlemeniz gerekir. İş istasyonunuz ve cihazınız aynı kablosuz ağa bağlı olmalıdır. Cihazınıza bağlanmak için aşağıdaki adımları uygulayın:
-
Cihazınızda geliştirici seçeneklerini etkinleştirin.
-
Android Studio'yu açın ve çalıştırma yapılandırmaları menüsünden Pair Devices Using Wi-Fi'ı (Cihazları Kablosuz Bağlantı Kullanarak Eşle) seçin.
1. şekil. Çalıştırma yapılandırmaları menüsü.Şekil 2'de gösterildiği gibi Cihazları kablosuz ağ üzerinden eşleyin penceresi açılır.
Şekil 2. Cihazları QR kodu veya eşleme kodu kullanarak eşlemek için açılan pencere. -
Cihazınızda Kablosuz hata ayıklama'ya dokunun ve cihazınızı eşleyin:
3.Şekil Google Pixel telefondaki Kablosuz hata ayıklama ayarının ekran görüntüsü.-
Cihazınızı QR koduyla eşlemek için Cihazı QR koduyla eşle'yi seçin ve Şekil 2'de gösterilen Cihazları kablosuz ağ üzerinden eşleyin pop-up'ından alınan QR kodunu tarayın.
-
Cihazınızı eşleme koduyla eşlemek için Cihazı eşleme koduyla eşle'yi seçin. Cihazları kablosuz ağ üzerinden eşle pop-up'ında. Cihazınızda Eşleme kodu kullanarak eşle'yi seçin ve verilen altı basamaklı kodu not edin. Cihazınız Kablosuz ağ üzerinden cihaz eşleyin penceresinde göründüğünde Eşle'yi seçip cihazınızda gösterilen altı haneli kodu girebilirsiniz.
Şekil 4. Altı haneli kod girişine örnek.
-
-
Cihazınız eşlendikten sonra uygulamanızı cihazınıza dağıtmayı deneyebilirsiniz.
Farklı bir cihazı eşlemek veya iş istasyonunuzdaki mevcut cihazı unutmak için cihazınızda Kablosuz hata ayıklama'ya gidin. Eşlenmiş cihazlar bölümünde iş istasyonunuzun adına dokunun ve Unut'u seçin.
-
Kablosuz hata ayıklamayı hızlıca açıp kapatmak istiyorsanız Geliştirici Seçenekleri > Hızlı ayarlar geliştirici kutuları bölümünde bulunan Kablosuz hata ayıklama için Hızlı ayarlar geliştirici kutularını kullanabilirsiniz.
5.şekil Hızlı ayarlar geliştirici kutuları ayarı, kablosuz hata ayıklamayı hızlı bir şekilde açıp kapatmanıza olanak tanır.
Komut satırını kullanarak Wi-Fi bağlantısı
Alternatif olarak, Android Studio olmadan komut satırını kullanarak cihazınıza bağlanmak için aşağıdaki adımları uygulayın:
-
Daha önce açıklandığı gibi cihazınızda geliştirici seçeneklerini etkinleştirin.
-
Daha önce açıklandığı gibi cihazınızda Kablosuz hata ayıklama'yı etkinleştirin.
-
İş istasyonunuzda bir terminal penceresi açın ve
android_sdk/platform-tools
dizinine gidin. -
Cihazı eşleme koduyla eşle'yi seçerek IP adresinizi, bağlantı noktası numaranızı ve eşleme kodunuzu bulun. Cihazda gösterilen IP adresini, bağlantı noktası numarasını ve eşleme kodunu not edin.
-
İş istasyonunuzun terminalinde
adb pair ipaddr:port
komutunu çalıştırın. Yukarıdaki IP adresini ve bağlantı noktası numarasını kullanın. -
İstendiğinde, aşağıda gösterildiği gibi eşleme kodunu girin.
6.şekil Cihazınızın başarıyla eşlendiğini belirten bir mesaj gösterilir.
Kablosuz bağlantı sorunlarını çözme
Cihazınıza kablosuz olarak bağlanırken sorun yaşıyorsanız sorunu çözmek için aşağıdaki sorun giderme adımlarını deneyin.
İş istasyonunuzun ve cihazınızın ön koşulları karşılayıp karşılamadığını kontrol edin.
İş istasyonunun ve cihazın, bu bölümün başında listelenen ön koşulları karşıladığını kontrol edin.
Bilinen diğer sorunları kontrol etme
Aşağıda, kablosuz hata ayıklama (adb veya Android Studio ile) ile ilgili mevcut bilinen sorunların listesi ve bunların nasıl çözüleceği açıklanmaktadır:
-
Kablosuz ağa bağlanılamıyor: Şirket kablosuz ağları gibi güvenli kablosuz ağlar, P2P bağlantılarını engelleyebilir ve kablosuz ağ üzerinden bağlanmanıza izin vermeyebilir. Kabloyla veya başka bir (şirket dışı) kablosuz ağa bağlanmayı deneyin. Bir başka seçenek de, şirket dışı bir ağa başvurma imkanınız varsa ilk USB bağlantısından sonra
adb connect ip:port
üzerinden tcp/ip kullanarak kablosuz bağlantı kurmaktır. -
adb
bazen kablosuz bağlantı üzerinden otomatik olarak kapanıyor: Bu durum, cihaz kablosuz ağlar arasında geçiş yaptığında veya ağ bağlantısı kesildiğinde meydana gelebilir. Sorunu çözmek için ağa yeniden bağlanın. -
Cihaz, başarılı eşlemenin ardından bağlanmıyor:
adb
, eşlenen cihazları bulmak ve bunlara otomatik olarak bağlanmak için mDNS'yi kullanır. Ağınız veya cihaz yapılandırmanız mDNS'yi desteklemiyorsa ya da mDNS devre dışı bırakılmışsaadb connect ip:port
kullanarak cihaza manuel olarak bağlanmanız gerekir.
İlk USB bağlantısından sonra bir cihaza kablosuz olarak bağlanma (Android 10 ve önceki sürümlerdeki tek seçenek)
Not: Bu iş akışı Android 11 (ve sonraki sürümler) için de geçerlidir. Ancak bu iş akışında fiziksel USB üzerinden *ilk* bağlantı da kurulması gerekir.
Not: Aşağıdaki talimatlar, Android 10 (API düzeyi 29) veya daha eski bir sürümü çalıştıran Wear cihazlar için geçerli değildir. Daha fazla bilgi için Wear OS uygulamasında hata ayıklama hakkındaki kılavuza bakın.
adb
genellikle cihazla USB üzerinden iletişim kurar ancak adb
'yı kablosuz ağ üzerinden de kullanabilirsiniz. Android 10 (API düzeyi 29) veya daha eski bir sürümü çalıştıran bir cihazı bağlamak için USB üzerinden şu ilk adımları uygulayın:
-
Android cihazınızı ve
adb
ana bilgisayarı ortak bir kablosuz ağa bağlayın. - Cihazı bir USB kablosuyla ana bilgisayara bağlayın.
-
Hedef cihazı 5555 numaralı bağlantı noktasında TCP/IP bağlantısını dinleyecek şekilde ayarlayın:
adb tcpip 5555
- USB kablosunu hedef cihazdan çıkarın.
- Android cihazın IP adresini bulun. Örneğin, Nexus cihazlarda IP adresini Ayarlar > Tablet hakkında (veya Telefon hakkında) > Durum > IP adresi bölümünde bulabilirsiniz.
-
Cihaza IP adresini kullanarak bağlanın:
adb connect device_ip_address:5555
-
Ana bilgisayarınızın hedef cihaza bağlı olduğunu doğrulayın:
$ adb devices List of devices attached device_ip_address:5555 device
Not: Tüm erişim noktalarının uygun olmadığını unutmayın. adb
'yı desteklemek için güvenlik duvarı düzgün şekilde yapılandırılmış bir erişim noktası kullanmanız gerekebilir.
Cihazınız artık adb
ağına bağlı.
Cihazınızla adb
bağlantısı kesilirse:
- Sunucunuzun Android cihazınızla aynı kablosuz ağa bağlı olduğundan emin olun.
-
adb connect
adımını tekrar uygulayarak yeniden bağlanın. -
Bu işe yaramazsa
adb
ana makinenizi sıfırlayın:adb kill-server
Ardından baştan başlayın.
Cihaz sorgulama
adb
komutlarını vermeden önce adb
sunucusuna hangi cihaz örneklerinin bağlı olduğunu bilmek faydalıdır. devices
komutunu kullanarak bağlı cihazların listesini oluşturun:
adb devices -l
Buna karşılık adb
, her cihaz için şu durum bilgilerini yazdırır:
- Seri numarası:
adb
, cihazı bağlantı noktası numarasına göre benzersiz şekilde tanımlayan bir dize oluşturur. Örnek bir seri numarası:emulator-5554
- Durum: Cihazın bağlantı durumu aşağıdakilerden biri olabilir:
offline
: Cihazadb
'a bağlı değil veya yanıt vermiyor.device
: Cihaz,adb
sunucusuna bağlıdır. Bu durumun, Android sisteminin tamamen başlatıldığı ve çalıştığı anlamına gelmediğini unutmayın. Çünkü cihaz, sistem başlatılırkenadb
'ya bağlanır. Bu, başlatma işleminden sonra cihazın normal çalışma durumudur.no device
: Bağlı cihaz yok.
- Açıklama:
-l
seçeneğini eklersenizdevices
komutu, cihazın ne olduğunu söyler. Bu bilgi, birden fazla cihaz bağlıyken cihazları birbirinden ayırt edebilmeniz için yararlıdır.
Aşağıdaki örnekte devices
komutu ve çıkışı gösterilmektedir. Üç cihaz çalışıyor. Listedeki ilk iki satır emülatör, üçüncü satır ise bilgisayara bağlı bir donanım cihazıdır.
$ adb devices List of devices attached emulator-5556 device product:sdk_google_phone_x86_64 model:Android_SDK_built_for_x86_64 device:generic_x86_64 emulator-5554 device product:sdk_google_phone_x86 model:Android_SDK_built_for_x86 device:generic_x86 0a388e93 device usb:1-1 product:razor model:Nexus_7 device:flo
Emülatör listede yok
adb devices
komutunda, çalışan emülatörlerin masaüstünüzde görünmesine rağmen adb devices
çıkışında gösterilmemesine neden olan bir uç durum komut sırası var. Bu durum, aşağıdaki koşulların tümü geçerli olduğunda ortaya çıkar:
adb
sunucusu çalışmıyor.emulator
komutunu-port
veya-ports
seçeneğiyle birlikte 5554 ile 5584 arasında tek numaralı bir bağlantı noktası değeriyle kullanırsınız.- Seçtiğiniz tek numaralı bağlantı noktası meşgul değilse bağlantı, belirtilen bağlantı noktası numarası üzerinden kurulabilir. Meşgulse emülatör, 2. adımda belirtilen koşulları karşılayan başka bir bağlantı noktasına geçer.
- Emülatörü başlattıktan sonra
adb
sunucusunu başlatırsınız.
Bu durumdan kaçınmanın bir yolu, emülatörün kendi bağlantı noktalarını seçmesine izin vermek ve aynı anda 16'dan fazla emülatör çalıştırmamaktır. Diğer bir yöntem ise aşağıdaki örneklerde açıklandığı gibi, emulator
komutunu kullanmadan önce her zaman adb
sunucusunu başlatmaktır.
1. örnek: Aşağıdaki komut dizisinde adb devices
komutu adb
sunucusunu başlatır ancak cihaz listesi görünmez.
adb
sunucusunu durdurun ve aşağıdaki komutları gösterilen sırayla girin. AVD
adı için sisteminizdeki geçerli bir AVD adını girin. AVD adlarının listesini almak için emulator -list-avds
yazın. emulator
komutu, android_sdk/tools
dizininde bulunur.
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5555 $ adb devices List of devices attached * daemon not running. starting it now on port 5037 * * daemon started successfully *
2. örnek: Aşağıdaki komut dizisinde, adb
sunucusu önce başlatıldığı için adb devices
, cihaz listesini görüntüler.
Emülatörü adb devices
çıkışında görmek için adb
sunucusunu durdurun ve ardından emulator
komutunu kullandıktan sonra ve adb devices
komutunu kullanmadan önce aşağıdaki şekilde tekrar başlatın:
$ adb kill-server $ emulator -avd Nexus_6_API_25 -port 5557 $ adb start-server $ adb devices List of devices attached emulator-5557 device
Emülatör komut satırı seçenekleri hakkında daha fazla bilgi için Komut satırı başlangıç seçenekleri başlıklı makaleyi inceleyin.
Belirli bir cihaza komut gönderme
Birden fazla cihaz çalışıyorsa adb
komutunu verirken hedef cihazı belirtmeniz gerekir.
Hedefi belirtmek için aşağıdaki adımları uygulayın:
- Hedefin seri numarasını almak için
devices
komutunu kullanın. - Seri numarasını aldıktan sonra, seri numarasını belirtmek için
adb
komutlarıyla birlikte-s
seçeneğini kullanın.- Çok sayıda
adb
komutu verecekseniz bunun yerine$ANDROID_SERIAL
ortam değişkenini seri numarasını içerecek şekilde ayarlayabilirsiniz. - Hem
-s
hem de$ANDROID_SERIAL
kullanırsanız-s
,$ANDROID_SERIAL
'yi geçersiz kılar.
- Çok sayıda
Aşağıdaki örnekte, bağlı cihazların listesi alınır ve ardından cihazlardan birinin seri numarası, ilgili cihaza helloWorld.apk
yüklemek için kullanılır:
$ adb devices List of devices attached emulator-5554 device emulator-5555 device 0.0.0.0:6520 device # To install on emulator-5555 $ adb -s emulator-5555 install helloWorld.apk # To install on 0.0.0.0:6520 $ adb -s 0.0.0.0:6520 install helloWorld.apk
Not: Birden fazla cihaz kullanılabilirken hedef cihazı belirtmeden komut verirseniz adb
"adb: more than one device/emulator" (adb: birden fazla cihaz/emülatör) hatasını gösterir.
Birden fazla cihazınız varsa ancak bunlardan yalnızca biri emülatörse emülatöre komut göndermek için -e
seçeneğini kullanın. Birden fazla cihaz varsa ancak yalnızca bir donanım cihazı bağlıysa donanım cihazına komut göndermek için -d
seçeneğini kullanın.
Uygulama yükleme
adb
komutuyla bir emülatöre veya bağlı cihaza APK yüklemek için install
kullanabilirsiniz:
adb install path_to_apk
Bir test APK'sı yüklerken install
komutuyla birlikte -t
seçeneğini kullanmanız gerekir. Daha fazla bilgi için -t
sayfasına bakın.
Birden fazla APK yüklemek için install-multiple
kullanın. Bu, Play Console'dan uygulamanız için belirli bir cihaza yönelik tüm APK'ları indirip bunları bir emülatöre veya fiziksel cihaza yüklemek istediğinizde kullanışlıdır.
Bir emülatör/cihaz örneğine yükleyebileceğiniz bir APK dosyası oluşturma hakkında daha fazla bilgi için Uygulamanızı oluşturma ve çalıştırma başlıklı makaleyi inceleyin.
Not: Android Studio kullanıyorsanız uygulamanızı emülatöre veya cihaza yüklemek için doğrudan adb
kullanmanız gerekmez. Bunun yerine, Android Studio uygulamanın paketlenmesini ve yüklenmesini sizin için gerçekleştirir.
Bağlantı noktası yönlendirmeyi kur
Belirli bir ana makine bağlantı noktasındaki istekleri bir cihazdaki farklı bir bağlantı noktasına yönlendiren rastgele bağlantı noktası yönlendirmeyi ayarlamak için forward
komutunu kullanın.
Aşağıdaki örnekte, ana makine bağlantı noktası 6100'ün cihaz bağlantı noktası 7100'e yönlendirilmesi ayarlanır:
adb forward tcp:6100 tcp:7100
Aşağıdaki örnekte, ana makine bağlantı noktası 6100'ün local:logd'ye yönlendirilmesi ayarlanmaktadır:
adb forward tcp:6100 local:logd
Bu, cihazdaki belirli bir bağlantı noktasına ne gönderildiğini belirlemeye çalışıyorsanız yararlı olabilir. Alınan tüm veriler, sistem günlüğü tutma arka plan programına yazılır ve cihaz günlüklerinde gösterilir.
Dosyaları bir cihaza ve cihazdan kopyalama
Dosyaları bir cihaza ve cihazdan kopyalamak için pull
ve push
komutlarını kullanın. Yalnızca bir APK dosyasını belirli bir konuma kopyalayan install
komutunun aksine, pull
ve push
komutları, rastgele dizinleri ve dosyaları bir cihazdaki herhangi bir konuma kopyalamanıza olanak tanır.
Bir dosyayı veya dizini ve alt dizinlerini cihazdan kopyalamak için aşağıdakileri yapın:
adb pull remote local
Bir dosyayı veya dizini ve alt dizinlerini cihaza kopyalamak için aşağıdakileri yapın:
adb push local remote
local
ve remote
değerlerini, geliştirme makinenizdeki (yerel) ve cihazdaki (uzak) hedef dosyaların/dizinin yollarıyla değiştirin. Örneğin:
adb push myfile.txt /sdcard/myfile.txt
adb sunucusunu durdurma
Bazı durumlarda, sorunu çözmek için adb
sunucu sürecini sonlandırıp yeniden başlatmanız gerekebilir. Örneğin, adb
bir komuta yanıt vermediğinde bu durum söz konusu olabilir.
adb
sunucusunu durdurmak için adb kill-server
komutunu kullanın.
Ardından, başka bir adb
komutu vererek sunucuyu yeniden başlatabilirsiniz.
adb komutları yayınlama
Geliştirme makinenizdeki bir komut satırından veya aşağıdaki komutları kullanarak bir komut dosyası üzerinden adb
komutları verin:
adb [-d | -e | -s serial_number] command
Yalnızca bir emülatör çalışıyorsa veya yalnızca bir cihaz bağlıysa adb
komutu varsayılan olarak bu cihaza gönderilir. Birden fazla emülatör çalışıyorsa ve/veya birden fazla cihaz bağlıysa komutun yönlendirileceği hedef cihazı belirtmek için -d
, -e
veya -s
seçeneğini kullanmanız gerekir.
Aşağıdaki komutu kullanarak desteklenen tüm adb
komutlarının ayrıntılı listesini görebilirsiniz:
adb --help
Kabuk komutları verme
shell
komutunu kullanarak adb
üzerinden cihaz komutları verebilir veya etkileşimli bir kabuk başlatabilirsiniz. Tek bir komut vermek için shell
komutunu şu şekilde kullanın:
adb [-d |-e | -s serial_number] shell shell_command
Bir cihazda etkileşimli kabuk başlatmak için shell
komutunu şu şekilde kullanın:
adb [-d | -e | -s serial_number] shell
Etkileşimli bir kabuktan çıkmak için Control+D
tuşuna basın veya exit
yazın.
Android, normal Unix komut satırı araçlarının çoğunu sağlar. Kullanılabilir araçların listesi için aşağıdaki komutu kullanın:
adb shell ls /system/bin
Komutların çoğu için --help
bağımsız değişkeni aracılığıyla yardım alabilirsiniz.
Kabuk komutlarının çoğu toybox tarafından sağlanır.
Tüm toybox komutları için geçerli olan genel yardım bilgilerine toybox --help
üzerinden ulaşabilirsiniz.
Android Platform Tools 23 ve sonraki sürümlerde adb
, bağımsız değişkenleri ssh(1)
komutuyla aynı şekilde işler. Bu değişiklik, komut yerleştirme ile ilgili birçok sorunu düzeltti ve kabuk metakarakterleri (ör. adb install Let\'sGo.apk
) içeren komutların güvenli bir şekilde yürütülmesini sağladı. Bu değişiklik, kabuk metakarakterleri içeren komutların yorumlanmasının da değiştiği anlamına gelir.
Örneğin, tırnak işaretleri yerel kabuk tarafından yutulduğu ve cihaz adb shell setprop key two words
gördüğü için adb shell setprop key 'two words'
artık bir hatadır. Komutun çalışması için ssh(1)
ile yaptığınız gibi iki kez alıntı yapın (bir kez yerel kabuk için, bir kez de uzak kabuk için). Örneğin, adb shell setprop key "'two words'"
çalışır. Bunun nedeni, yerel kabuğun dış tırnak düzeyini alması ve cihazın yine de iç tırnak düzeyini (setprop key 'two words'
) görmesidir. Kaçış karakteri kullanmak da bir seçenektir ancak genellikle iki kez tırnak işareti kullanmak daha kolaydır.
Sistem günlüğünü izlemek için yararlı olan Logcat komut satırı aracını da inceleyin.
Arama etkinliği yöneticisi
Bir adb
kabukta, etkinlik yöneticisi (am
) aracıyla komutlar vererek çeşitli sistem işlemleri (ör. etkinlik başlatma, işlemi zorla durdurma, amaç yayınlama, cihaz ekran özelliklerini değiştirme) gerçekleştirebilirsiniz.
Kabukta am
söz dizimi şu şekildedir:
am command
Ayrıca, adb
uzak kabuğa girmeden doğrudan etkinlik yöneticisi komutu da verebilirsiniz. Örneğin:
adb shell am start -a android.intent.action.VIEW
Tablo 1. Kullanılabilir etkinlik yöneticisi komutları
Komut | Açıklama |
---|---|
start [options] intent
|
Activity tarafından belirtilen intent başlatın. Specification for intent arguments (Niyet bağımsız değişkenleri spesifikasyonu) başlıklı makaleyi inceleyin. Şu seçenekleri kullanabilirsiniz:
|
startservice [options] intent
|
Service tarafından belirtilen intent başlatın. Specification for intent arguments (Niyet bağımsız değişkenleri spesifikasyonu) başlıklı makaleyi inceleyin. Şu seçenekleri kullanabilirsiniz:
|
force-stop package
|
package ile ilişkili her şeyi zorla durdurun.
|
kill [options] package
|
package ile ilişkili tüm işlemleri sonlandırın. Bu komut yalnızca sonlandırılması güvenli olan ve kullanıcı deneyimini etkilemeyecek işlemleri sonlandırır.
Şu seçenekleri kullanabilirsiniz:
|
kill-all
|
Tüm arka plan işlemlerini sonlandırın. |
broadcast [options] intent
|
Bir yayın intent'i yayınlayın. Specification for intent arguments (Niyet bağımsız değişkenleri spesifikasyonu) başlıklı makaleyi inceleyin. Şu seçenekleri kullanabilirsiniz:
|
instrument [options] component
|
Instrumentation örneğiyle izlemeye başlayın.
Genellikle hedef component
form test_package/runner_class olur. Şu seçenekleri kullanabilirsiniz:
|
profile start process file
|
process üzerinde profil oluşturma aracını başlatın, sonuçları file konumuna yazın.
|
profile stop process
|
process üzerinde profiler'ı durdurun.
|
dumpheap [options] process file
|
process yığınını boşaltın, file adresine yazın. Şu seçenekleri kullanabilirsiniz:
|
dumpbitmaps [options] [-p process]
|
process
(API düzeyi 36 ve üzeri) bit eşlem bilgilerini boşaltın.
Şu seçenekleri kullanabilirsiniz:
process belirtilmezse tüm işlemlerden bit eşlemler dökülür.
|
set-debug-app [options] package
|
Hata ayıklanacak uygulamayı package olarak ayarlayın. Şu seçenekleri kullanabilirsiniz:
|
clear-debug-app
|
set-debug-app ile hata ayıklama için daha önce ayarlanan paketi temizleyin.
|
monitor [options]
|
Kilitlenmeleri veya ANR'leri izlemeye başlayın. Şu seçenekleri kullanabilirsiniz:
|
screen-compat {on | off} package
|
package cihazının ekran uyumluluğu modunu kontrol edin.
|
display-size [reset | widthxheight]
|
Cihazın ekran boyutunu geçersiz kılın.
Bu komut, büyük ekranlı bir cihaz kullanarak küçük ekran çözünürlüğünü taklit ederek uygulamanızı farklı ekran boyutlarında test etmenize yardımcı olur ve bunun tersi de geçerlidir.
Örnek: |
display-density dpi
|
Cihazın görüntü yoğunluğunu geçersiz kılın.
Bu komut, düşük yoğunluklu bir ekran kullanarak yüksek yoğunluklu ekran ortamını taklit ederek ve bunun tersini yaparak uygulamanızı farklı ekran yoğunluklarında test etmek için kullanışlıdır.
Örnek: |
to-uri intent
|
Belirtilen amaç spesifikasyonunu URI olarak yazdırın. Specification for intent arguments (Niyet bağımsız değişkenleri spesifikasyonu) başlıklı makaleyi inceleyin. |
to-intent-uri intent
|
Belirtilen amaç spesifikasyonunu intent: URI'si olarak yazdır. Specification for intent arguments (Niyet bağımsız değişkenleri spesifikasyonu) başlıklı makaleyi inceleyin. |
Niyet bağımsız değişkenlerinin özellikleri
intent
bağımsız değişkeni alan etkinlik yöneticisi komutları için amacı aşağıdaki seçeneklerle belirtebilirsiniz:
Paket yöneticisini çağırın (pm
)
Bir adb
kabuğunda, cihazda yüklü uygulama paketlerinde işlem ve sorgu yapmak için paket yöneticisi (pm
) aracıyla komutlar verebilirsiniz.
Kabukta pm
söz dizimi şu şekildedir:
pm command
Ayrıca, uzak kabuk girmeden doğrudan adb
üzerinden bir paket yöneticisi komutu da verebilirsiniz. Örneğin:
adb shell pm uninstall com.example.MyApp
Tablo 2. Kullanılabilen paket yöneticisi komutları
Komut | Açıklama |
---|---|
list packages [options] filter
|
Tüm paketleri yazdırın. İsteğe bağlı olarak yalnızca paket adında filter içindeki metni içeren paketleri yazdırabilirsiniz. Seçenekler:
|
list permission-groups
|
Bilinen tüm izin gruplarını yazdırın. |
list permissions [options] group
|
Bilinen tüm izinleri yazdırın. İsteğe bağlı olarak yalnızca group içindeki izinleri yazdırabilirsiniz. Seçenekler:
|
list instrumentation [options]
|
Tüm test paketlerini listeleyin. Seçenekler:
|
list features
|
Sistemin tüm özelliklerini yazdırın. |
list libraries
|
Mevcut cihaz tarafından desteklenen tüm kitaplıkları yazdırın. |
list users
|
Sistemdeki tüm kullanıcıları yazdırın. |
path package
|
Belirtilen package APK'sının yolunu yazdırın.
|
install [options] path
|
path tarafından belirtilen bir paketi sisteme yükler. Seçenekler:
|
uninstall [options] package
|
Paketi sistemden kaldırır. Seçenekler:
|
clear package
|
Bir paketle ilişkili tüm verileri silin. |
enable package_or_component
|
Belirtilen paketi veya bileşeni (ör. "paket/sınıf") etkinleştirin. |
disable package_or_component
|
Belirtilen paketi veya bileşeni devre dışı bırakır ("paket/sınıf" olarak yazılır). |
disable-user [options] package_or_component
|
Seçenekler:
|
grant package_name permission
|
Bir uygulamaya izin verme. Android 6.0 (API seviyesi 23) ve sonraki sürümlerin yüklü olduğu cihazlarda izin, uygulama manifestinde belirtilen herhangi bir izin olabilir. Android 5.1 (API düzeyi 22) ve önceki sürümlerini çalıştıran cihazlarda, uygulama tarafından tanımlanan isteğe bağlı bir izin olmalıdır. |
revoke package_name permission
|
Uygulamalardan izinleri iptal etme. Android 6.0 (API seviyesi 23) ve sonraki sürümlerin yüklü olduğu cihazlarda, izin, uygulama manifestinde belirtilen herhangi bir izin olabilir. Android 5.1 (API düzeyi 22) ve önceki sürümlerini çalıştıran cihazlarda, uygulama tarafından tanımlanan isteğe bağlı bir izin olmalıdır. |
set-install-location location
|
Varsayılan yükleme konumunu değiştirin. Konum değerleri:
Not: Bu yalnızca hata ayıklama amaçlıdır. Bunu kullanmak, uygulamaların bozulmasına ve diğer istenmeyen davranışlara neden olabilir. |
get-install-location
|
Geçerli yükleme konumunu döndürür. Döndürülen değerler:
|
set-permission-enforced permission [true | false]
|
Belirtilen iznin zorunlu kılınıp kılınmayacağını belirtin. |
trim-caches desired_free_space
|
Belirtilen boş alana ulaşmak için önbellek dosyalarını kırpın. |
create-user user_name
|
Belirtilen user_name ile yeni bir kullanıcı oluşturun,
kullanıcının yeni kullanıcı tanımlayıcısını yazdırın.
|
remove-user user_id
|
Belirtilen user_id ile kullanıcıyı kaldırma ve bu kullanıcıyla ilişkili tüm verileri silme
|
get-max-users
|
Cihazın desteklediği maksimum kullanıcı sayısını yazdırın. |
get-app-links [options] [package]
|
Belirtilen package için veya hiçbiri belirtilmemişse tüm paketler için alan adı doğrulama durumunu yazdırın. Eyalet kodları aşağıdaki şekilde tanımlanır:
Şu seçenekleri kullanabilirsiniz:
|
reset-app-links [options] [package]
|
Belirtilen paket veya belirtilmemişse tüm paketler için alan doğrulama durumunu sıfırlar.
Şu seçenekleri kullanabilirsiniz:
|
verify-app-links [--re-verify] [package]
|
Belirtilen package için veya belirtilmemişse tüm paketler için doğrulama isteği yayınlayın. Yalnızca paket daha önce yanıt kaydetmediyse gönderilir.
|
set-app-links [--package package] state domains
|
Bir paketin alan durumunu manuel olarak ayarlayın. Bu özelliğin çalışması için alan, paket tarafından autoVerify olarak bildirilmelidir. Bu komut, uygulanamayan alanlar için hata bildirmez.
|
set-app-links-user-selection --user user_id [--package package]
enabled domains
|
Bir paket için ana makine kullanıcı seçiminin durumunu manuel olarak ayarlayın. Bu özelliğin çalışması için alan adı paket tarafından bildirilmelidir. Bu komut, uygulanamayan alanlar için hata bildirmez.
|
set-app-links-allowed --user user_id [--package package] allowed
|
Bir paket için otomatik olarak doğrulanmış bağlantı işleme ayarını açın veya kapatın.
|
get-app-link-owners --user user_id [--package package] domains
|
Belirli bir alanın sahiplerini, belirli bir kullanıcı için düşükten yükseğe öncelik sırasına göre yazdırın.
|
Cihaz politikası yöneticisini arama (dpm
)
Cihaz yönetimi uygulamalarınızı geliştirip test etmenize yardımcı olmak için cihaz politikası yöneticisi (dpm
) aracına komutlar gönderin. Etkin yönetici uygulamasını kontrol etmek veya cihazdaki bir politikanın durum verilerini değiştirmek için bu aracı kullanın.
Kabukta dpm
söz dizimi:
dpm command
Ayrıca, adb
üzerinden doğrudan bir cihaz politikası yöneticisi komutu da verebilirsiniz. Uzak kabuk girmenize gerek yoktur:
adb shell dpm command
Tablo 3. Kullanılabilir Cihaz Politikası Yöneticisi komutları
Komut | Açıklama |
---|---|
set-active-admin [options] component
|
component öğesini etkin yönetici olarak ayarlar.
Şu seçenekleri kullanabilirsiniz:
|
set-profile-owner [options] component
|
Mevcut bir kullanıcı için component adlı ürünü etkin yönetici ve paketini profil sahibi olarak ayarlayın.
Şu seçenekleri kullanabilirsiniz:
|
set-device-owner [options] component
|
component'yı etkin yönetici, paketini ise cihaz sahibi olarak ayarlayın.
Şu seçenekleri kullanabilirsiniz:
|
remove-active-admin [options] component
|
Etkin bir yöneticiyi devre dışı bırakın. Uygulama, manifest dosyasında
android:testOnly
bildirmelidir. Bu komut, cihaz ve profil sahiplerini de kaldırır.
Şu seçenekleri kullanabilirsiniz:
|
clear-freeze-period-record
|
Cihazın, sistem OTA güncellemeleri için daha önce ayarlanan dondurma dönemleriyle ilgili kaydını temizleyin. Bu, dondurma dönemlerini yöneten uygulamalar geliştirirken cihaz planlama kısıtlamalarını önlemek için kullanışlıdır. Sistem güncellemelerini yönetme başlıklı makaleyi inceleyin.
Android 9.0 (API düzeyi 28) ve sonraki sürümlerin yüklü olduğu cihazlarda desteklenir. |
force-network-logs
|
Sistemi, mevcut ağ günlüklerini bir DPC tarafından alınmaya hazır hale getirmeye zorlayın. Bağlantı veya DNS günlükleri varsa DPC, onNetworkLogsAvailable() geri aramasını alır. Ağ etkinliği günlük kaydı bölümünü inceleyin.
Bu komutun hızı sınırlandırılmıştır. Android 9.0 (API düzeyi 28) ve sonraki sürümlerin yüklü olduğu cihazlarda desteklenir. |
force-security-logs
|
Sistemi, mevcut güvenlik günlüklerini DPC'ye sunmaya zorlayın. Günlükler varsa DPC, onSecurityLogsAvailable() geri aramasını alır. Kurumsal cihaz etkinliğini günlüğe kaydetme başlıklı makaleyi inceleyin.
Bu komutun hızı sınırlandırılmıştır. Android 9.0 (API düzeyi 28) ve sonraki sürümlerin yüklü olduğu cihazlarda desteklenir. |
Ekran görüntüsü alma
screencap
komutu, cihaz ekranının ekran görüntüsünü almak için kullanılan bir kabuk yardımcı programıdır.
Kabukta screencap
söz dizimi şu şekildedir:
screencap filename
screencap
komut satırından kullanmak için aşağıdakileri girin:
adb shell screencap /sdcard/screen.png
Ekran görüntüsünü yakalamak için adb
kabuğunun, dosyayı cihazdan indirmek için ise pull
komutunun kullanıldığı örnek bir ekran görüntüsü oturumunu aşağıda bulabilirsiniz:
$ adb shell shell@ $ screencap /sdcard/screen.png shell@ $ exit $ adb pull /sdcard/screen.png
Alternatif olarak, dosya adını atlarsanız screencap
, resmi standart çıkışa yazar. PNG biçimini belirtme -p
seçeneğiyle birlikte kullanıldığında cihaz ekran görüntüsünü doğrudan yerel makinenizdeki bir dosyaya aktarabilirsiniz.
Ekran görüntüsü alıp tek bir komutla yerel olarak kaydetme örneğini aşağıda bulabilirsiniz:
# use 'exec-out' instead of 'shell' to get raw data $ adb exec-out screencap -p > screen.png
Video kaydetme
screenrecord
komutu, Android 4.4 (API düzeyi 19) ve sonraki sürümleri çalıştıran cihazların ekranını kaydetmek için kullanılan bir kabuk yardımcı programıdır. Bu yardımcı program, ekran etkinliğini MPEG-4 dosyasına kaydeder. Bu dosyayı tanıtım veya eğitim videoları oluşturmak ya da hata ayıklama ve test için kullanabilirsiniz.
Bir kabukta aşağıdaki söz dizimini kullanın:
screenrecord [options] filename
screenrecord
komut satırından kullanmak için aşağıdakileri girin:
adb shell screenrecord /sdcard/demo.mp4
Control+C tuşlarına basarak ekran kaydını durdurun. Aksi takdirde, kayıt üç dakika sonra veya --time-limit
tarafından belirlenen süre sınırında otomatik olarak durdurulur.
Cihazınızın ekranını kaydetmeye başlamak için screenrecord
komutunu çalıştırarak videoyu kaydedin. Ardından, videoyu cihazdan ana bilgisayara indirmek için pull
komutunu çalıştırın. Aşağıda örnek bir kayıt oturumu verilmiştir:
$ adb shell shell@ $ screenrecord --verbose /sdcard/demo.mp4 (press Control + C to stop) shell@ $ exit $ adb pull /sdcard/demo.mp4
screenrecord
yardımcı programı, cihaz ekranının en boy oranını koruyarak istediğiniz desteklenen çözünürlük ve bit hızında kayıt yapabilir. Yardımcı program, varsayılan olarak yerel ekran çözünürlüğünde ve yönünde kayıt yapar. Kayıt süresi en fazla üç dakikadır.
screenrecord
yardımcı programının sınırlamaları:
- Ses, video dosyasıyla birlikte kaydedilmez.
- Video kaydı, Wear OS çalıştıran cihazlarda kullanılamaz.
- Bazı cihazlar, kendi ekran çözünürlüklerinde kayıt yapamayabilir. Ekran kaydıyla ilgili sorunlarla karşılaşırsanız daha düşük bir ekran çözünürlüğü kullanmayı deneyin.
- Kayıt sırasında ekranın döndürülmesi desteklenmez. Kayıt sırasında ekran dönerse kayıtta ekranın bir kısmı kesilir.
Tablo 4. screenrecord
seçenekleri
Seçenekler | Açıklama |
---|---|
--help
|
Komut söz dizimini ve seçeneklerini görüntüleme |
--size widthxheight
|
Video boyutunu ayarlayın: 1280x720 . Varsayılan değer, cihazın yerel ekran çözünürlüğüdür (destekleniyorsa). Desteklenmiyorsa 1280x720'dir. En iyi sonuçlar için cihazınızın Advanced Video Coding (AVC) kodlayıcısı tarafından desteklenen bir boyut kullanın. |
--bit-rate rate |
Videonun video bit hızını saniye başına megabit cinsinden ayarlayın. Varsayılan değer 20 Mb/sn'dir.
Video kalitesini artırmak için bit hızını yükseltebilirsiniz ancak bu durumda film dosyaları daha büyük olur. Aşağıdaki örnekte kayıt bit hızı 6 Mbps olarak ayarlanmıştır:
screenrecord --bit-rate 6000000 /sdcard/demo.mp4 |
--time-limit time |
Maksimum kayıt süresini saniye cinsinden ayarlayın. Varsayılan ve maksimum değer 180'dir (3 dakika). |
--rotate |
Çıkışı 90 derece döndürün. Bu özellik deneyseldir. |
--verbose |
Komut satırı ekranında günlük bilgilerini görüntüleyin. Bu seçeneği ayarlamazsanız, program çalışırken herhangi bir bilgi göstermez. |
Uygulamalar için ART profillerini okuma
Android 7.0 (API düzeyi 24) sürümünden başlayarak Android Çalışma Zamanı (ART), uygulama performansını optimize etmek için kullanılan yüklü uygulamaların yürütme profillerini toplar. Hangi yöntemlerin sık sık yürütüldüğünü ve uygulama başlatılırken hangi sınıfların kullanıldığını anlamak için toplanan profilleri inceleyin.
Not: Yürütme profili dosya adını yalnızca dosya sistemine kök erişiminiz varsa (ör. bir emülatörde) alabilirsiniz.
Profil bilgilerinin metin biçimini oluşturmak için aşağıdaki komutu kullanın:
adb shell cmd package dump-profiles package
Üretilen dosyayı almak için:
adb pull /data/misc/profman/package.prof.txt
Test cihazlarını sıfırlama
Uygulamanızı birden fazla test cihazında test ediyorsanız testler arasında cihazınızı sıfırlamak (ör. kullanıcı verilerini kaldırmak ve test ortamını sıfırlamak için) faydalı olabilir. Android 10 (API düzeyi 29) veya sonraki sürümlerin yüklü olduğu bir test cihazını fabrika ayarlarına sıfırlamak için testharness
adb
kabuk komutunu aşağıdaki gibi kullanabilirsiniz:
adb shell cmd testharness enable
Cihazı testharness
kullanarak geri yüklerken cihaz, mevcut iş istasyonu üzerinden hata ayıklamaya olanak tanıyan RSA anahtarını kalıcı bir konuma otomatik olarak yedekler. Yani cihaz sıfırlandıktan sonra iş istasyonu, yeni bir anahtarı manuel olarak kaydetmeden cihazda hata ayıklamaya ve cihaza adb
komutları vermeye devam edebilir.
Ayrıca, uygulamanızı test etmeye devam etmenizi kolaylaştırmak ve güvenliğini artırmak için testharness
kullanılarak cihaz geri yüklendiğinde aşağıdaki cihaz ayarları da değiştirilir:
- Cihaz, ilk cihaz kurulumu sihirbazlarının görünmemesi için belirli sistem ayarlarını yapar. Yani cihaz, uygulamanızı hızlı bir şekilde yükleyebileceğiniz, hata ayıklayabileceğiniz ve test edebileceğiniz bir duruma girer.
- Ayarlar:
- Kilit ekranını devre dışı bırakır.
- Acil durum uyarılarını devre dışı bırakır.
- Hesaplar için otomatik senkronizasyonu devre dışı bırakır.
- Otomatik sistem güncellemelerini devre dışı bırakır.
- Diğer:
- Önceden yüklenmiş güvenlik uygulamalarını devre dışı bırakır.
Uygulamanızın testharness
komutunun varsayılan ayarlarını algılaması ve bu ayarlara uyum sağlaması gerekiyorsa
ActivityManager.isRunningInUserTestHarness()
kullanın.
sqlite
sqlite3
, SQLite veritabanlarını incelemek için sqlite
komut satırı programını başlatır.
Tablo içeriğini yazdırmak için .dump
ve mevcut bir tablo için SQL CREATE
ifadesini yazdırmak için .schema
gibi komutlar içerir.
Ayrıca, gösterildiği gibi komut satırından SQLite komutları da yürütebilirsiniz:
$ adb -s emulator-5554 shell $ sqlite3 /data/data/com.example.app/databases/rssitems.db SQLite version 3.3.12 Enter ".help" for instructions
Not: SQLite veritabanına yalnızca dosya sistemine kök erişiminiz varsa (ör. bir emülatörde) erişebilirsiniz.
Daha fazla bilgi için sqlite3
komut satırı belgelerine bakın.
adb USB arka uçları
adb sunucusu, USB yığınıyla iki arka uç üzerinden etkileşim kurabilir. İşletim sisteminin (Windows, Linux veya macOS) yerel arka ucunu ya da libusb
arka ucunu kullanabilir.
attach
, detach
ve USB hız algılama gibi bazı özellikler yalnızca libusb
arka ucu kullanılırken kullanılabilir.
ADB_LIBUSB
ortam değişkenini kullanarak bir arka uç seçebilirsiniz.
Ayarlanmazsa adb, varsayılan arka ucunu kullanır. Varsayılan davranış, işletim sistemine göre değişir. ADB v34'ten itibaren, yerel arka uçun varsayılan olarak kullanıldığı Windows hariç tüm işletim sistemlerinde varsayılan olarak liubusb
arka ucu kullanılır. ADB_LIBUSB
ayarlanırsa yerel arka ucun mu yoksa libusb
'nin mi kullanılacağını belirler. adb ortam değişkenleri hakkında daha fazla bilgi için adb kılavuz sayfasına bakın.
adb mDNS backends
ADB, sunucu ile cihazları otomatik olarak bağlamak için çoklu yayın DNS protokolünü kullanabilir. ADB sunucusu, Bonjour (Apple'ın mdnsResponder'ı) ve Openscreen olmak üzere iki arka uçla birlikte gelir.
Bonjour arka ucunun, ana makinede bir daemon'un çalışması gerekir.
macOS'te Apple'ın yerleşik arka plan programı her zaman çalışır ancak Windows ve Linux'ta kullanıcının mdnsd
arka plan programının çalışır durumda olduğundan emin olması gerekir.
adb mdns check
komutu hata döndürüyorsa ADB'nin Bonjour arka ucunu kullandığı ancak Bonjour daemon'unun çalışmadığı anlaşılır.
Openscreen arka ucunun makinede bir arka plan programının çalışması gerekmez. macOS'te Openscreen arka ucu için destek, ADB v35'ten itibaren sunulmaktadır. ADB v34'ten itibaren Windows ve Linux desteklenmektedir.
ADB varsayılan olarak Bonjour arka ucunu kullanır. Bu davranış, ADB_MDNS_OPENSCREEN
ortam değişkeni kullanılarak değiştirilebilir (1
veya 0
olarak ayarlanır).
Daha fazla bilgi için ADB kılavuz sayfasına bakın.
adb Burst Mode (ADB 36.0.0'dan itibaren)
Patlatma modu, ADB'nin cihaz önceki pakete yanıt vermeden bile cihaza paket göndermeye devam etmesini sağlayan deneysel bir özelliktir. Bu, büyük dosyalar aktarılırken ADB'nin işleme hızını önemli ölçüde artırır ve hata ayıklama sırasında gecikmeyi azaltır.
Seri çekim modu varsayılan olarak devre dışıdır. Özelliği etkinleştirmek için aşağıdakilerden birini yapın:
ADB_DELAYED_ACK
ortam değişkenini1
olarak ayarlayın.- Android Studio'da File (veya macOS'te Android Studio) > Settings > Build, Execution, Deployment > Debugger'a giderek hata ayıklayıcı ayarlarını açın ve ADB Server Burst Mode'u Enabled (Etkin) olarak ayarlayın.