Android Debug Bridge (adb
), tek bir kullanıcı hesabıyla iletişim kurmanızı sağlayan çok yönlü bir komut satırı aracıdır
olanak tanır. adb
komutu, yükleme ve alma gibi çeşitli cihaz işlemlerini kolaylaştırır.
hata ayıklama uygulamalarıdır. adb
, çeşitli çalıştırmak için kullanabileceğiniz bir Unix kabuğuna erişim sağlar
bir kontrol listesidir. Bu, üç bileşen içeren bir istemci-sunucu programıdır:
- Komut gönderen bir istemci. İstemci, geliştirme makinenizde çalışır. Şunları yapabilirsiniz:
adb
komutu vererek komut satırı terminalinden istemci çağırın. - Arka plan programı (adbd), cihazda komut çalıştırır. Arka plan programı arka plan olarak çalışır gerçekleştirebilirsiniz.
- İstemci ile arka plan programı arasındaki iletişimi yöneten bir sunucu. Sunucu makinenizde arka plan işlemi olarak çalışır.
adb
, Android SDK Platform Araçları paketinde yer almaktadır. Bunu indirin
SDK Manager'la yükleyin. Bu SDK
saat android_sdk/platform-tools/
olduğunda. Bağımsız Android SDK'sını istiyorsanız
Platform Tools paketini buradan indirebilirsiniz.
adb
üzerinden kullanım için bir cihazı bağlama hakkında bilgi (Bağlantının nasıl kullanılacağı dahil)
Sık karşılaşılan sorunları gidermek için Asistan'ın
Uygulamaları donanım cihazında çalıştırma.
Adb'nin işleyiş şekli
Bir adb
istemcisini başlattığınızda istemci ilk olarak
adb
sunucu işlemi zaten çalışıyor. Yoksa sunucu işlemi başlatılır.
Sunucu başladığında, yerel TCP bağlantı noktası 5037'ye bağlanır ve
adb
istemci.
Not: Tüm adb
istemcileri iletişim kurmak için 5037 numaralı bağlantı noktasını kullanır.
adb
sunucusuyla yapılıyor.
Ardından sunucu, çalışan tüm cihazlarla bağlantı kurar.
Aralıktaki tek numaralı bağlantı noktalarını tarayarak emülatörleri bulur
5555 ile 5585 arasında, ilk 16 emülatör tarafından kullanılan aralıktır. Sunucunun adb
bulduğu yer
arka plan programı (adbd) kullanıyorsa bu bağlantı noktasıyla bir bağlantı kurar.
Her emülatör bir çift sıralı bağlantı noktası kullanır. Bu,
konsol bağlantıları ve adb
bağlantıları için tek numaralı bağlantı noktası. Örnek:
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
öğesine bağlanan emülatör, emülatörle aynı
dinlemesini sağlayan kullanıcı konsoludur.
Sunucu tüm cihazlara bağlantı kurduğunda adb
komutlarını kullanarak
erişim sağlarsınız. Çünkü sunucu, cihazlarla olan bağlantıları yönetir ve
adb
istemcisinden gelen komutları kullanıyorsanız, herhangi bir cihazı herhangi bir istemci veya
bir komut dosyasıdır.
Cihazınızda adb hata ayıklama özelliğini etkinleştirin
Adb'yi USB üzerinden bağlı bir cihazla kullanmak için şunları etkinleştirmeniz gerekir: USB üzerinden hata ayıklama, cihaz sistem ayarlarında altında Geliştirici seçenekleri. Android 4.2 (API düzeyi 17) ve sonraki sürümlerde Geliştirici seçenekleri ekranı varsayılan olarak gizlidir. Görünür hale getirmek için Geliştirici seçenekleri.
Artık cihazınızı USB ile bağlayabilirsiniz. Cihazınızın şunlar olduğunu doğrulayabilirsiniz:
şuradan adb devices
yürütülerek bağlanır ve
android_sdk/platform-tools/
dizini. Bağlıysa
cihaz adının "cihaz" olarak listelendiğini görürsünüz.
Not: Android 4.2.2 (API) çalıştıran bir cihaz bağladığınızda 17. seviye) veya üstüne çıkarsa sistem, hata ayıklama çalışması yapabilirsiniz. Bu güvenlik mekanizması, USB hata ayıklama ve diğer adb komutlarının yürütülemeyeceğini belirtmek için iletişim kutusunu onaylayın.
Bir cihaza USB üzerinden bağlanma hakkında daha fazla bilgi için şu makaleyi inceleyin: Uygulamaları donanım cihazında çalıştırma.
Kablosuz ağ üzerinden bir cihaza bağlanın
Not: Aşağıdaki talimatlar, şu anda çalışan Wear cihazlar için geçerli değildir: Android 11 (API düzeyi 30). Bu kılavuza göz atın: Wear OS uygulamasında hata ayıklama daha fazla bilgi edinin.
Android 11 (API düzeyi 30) ve sonraki sürümler, uygulamanızı aşağıdaki cihazlardan kablosuz olarak dağıtma ve hata ayıklamayı destekler. iş istasyonunuzdaki talimatları uygulayın. Örneğin, hata ayıklanabilir dosyanızı dağıtabilirsiniz. uygulamasını kullanarak cihazınızı fiziksel olarak bağlamanıza gerek kalmadan birden fazla uzak cihaza bağlanabilirsiniz. USB'ye dokunun. Bu sayede, sürücü gibi yaygın USB bağlantısı sorunlarıyla ilgilenme ihtiyacı ortadan kalkar. teşekkür ederiz.
Kablosuz hata ayıklama özelliğini kullanmaya başlamadan önce aşağıdakileri yapın:
-
İş istasyonunuzun ve cihazınızın aynı kablosuz ağa bağlı olduğundan emin olun.
-
Cihazınızın, telefon veya Android için Android 11 (API düzeyi 30) veya sonraki bir sürümü çalıştırdığından emin olun TV ve WearOS için 13 (API düzeyi 33) veya sonraki sürümler. Daha fazla bilgi için bkz. Kontrol et ve CANNOT TRANSLATE Android sürümü.
-
IDE (Entegre Geliştirme Ortamı) kullanıyorsanız Android Studio'nun en son sürümünün yüklü olduğundan emin olun. İndirebilirsiniz burada bulabilirsiniz.
-
İş istasyonunuzda SDK Platformu Araçları.
Kablosuz hata ayıklama özelliğini kullanmak için bir QR kodu veya bir eşleme kodu kullanılır. İş istasyonunuz ve cihazınız aynı kablosuz ağa bağlı olmalıdır. Alıcı: cihazınıza bağlanmak için şu adımları uygulayın:
-
Geliştirici seçeneklerini etkinleştirme cihazınızda.
-
Android Studio'yu açın ve çalıştırma sırasında Cihazları Kablosuz Bağlantı Kullanarak Eşle'yi seçin. yapılandırma menüsü.
Şekil 1. Yapılandırmaları çalıştır menüsü.Şekil 2'de gösterildiği gibi Cihazları kablosuz ağ üzerinden eşle penceresi açılır.
Şekil 2. QR kodu veya eşleme kullanarak cihazları eşlemek için pop-up pencere girin. -
Cihazınızda Kablosuz hata ayıklama'ya dokunun ve cihazınızı eşleyin:
Şekil 3. Kablosuz hata ayıklama ayarının ekran görüntüsü Google Pixel telefon.-
Cihazınızı QR koduyla eşlemek için Cihazı QR koduyla eşle'yi seçin. Şekil 2'de gösterilen Cihazları kablosuz ağ üzerinden eşle pop-up'ından alınan QR kodu.
-
Cihazınızı bir eşleme koduyla eşlemek için şuradan Cihazı eşleme koduyla eşle'yi seçin: Kablosuz ağ üzerinden cihazları eşle pop-up'ı. Cihazınızda Şunu kullanarak eşle'yi seçin: eşleme kodunu kullanın ve verilen altı basamaklı kodu not edin. Cihazınız Kablosuz ağ üzerinden cihazları eşle penceresinde, Eşle'yi seçebilir ve cihazınızda gösterilen kodu kullanabilirsiniz.
4.Şekil Altı basamaklı kod girişi örneği.
-
-
Cihazınız eşlendikten sonra uygulamanızı cihazınıza dağıtmayı deneyebilirsiniz.
Farklı bir cihazı eşlemek veya iş istasyonunuzdaki geçerli cihazı unutmak için şuraya gidin: Cihazınızda kablosuz hata ayıklama. Eşlenenler bölümünden iş istasyonu adınıza dokunun cihazlara dokunun ve Unut'u seçin.
-
Kablosuz hata ayıklama özelliğini hızlı bir şekilde açıp kapatmak istiyorsanız Hızlı ayarlar geliştirici kutuları Kablosuz hata ayıklama, Geliştirici Seçenekleri'nde bulunur > Hızlı ayarlar geliştiricisi kartları edinin.
5. Şekil. Hızlı ayarlar geliştirici kutuları ayarı kablosuz hata ayıklamayı hızlı bir şekilde açıp kapatmanızı sağlar.
Komut satırı kullanarak kablosuz bağlantı
Alternatif olarak, Android Studio olmadan komut satırını kullanarak cihazınıza bağlanmak için şu adımları uygulayın:
-
Cihazınızda geliştirici seçeneklerini daha önce açıklandığı şekilde etkinleştirin.
-
Cihazınızda Kablosuz hata ayıklama'yı daha önce açıklandığı şekilde etkinleştirin.
-
İş istasyonunuzda bir terminal penceresi açın ve şu konuma gidin:
android_sdk/platform-tools
-
IP adresinizi, bağlantı noktası numaranızı ve eşleme kodunuzu, Cihazı şununla eşle: eşleme kodunu kullanın. Görüntülenen IP adresini, bağlantı noktası numarasını ve eşleme kodunu not edin: için geçerlidir.
-
İş istasyonunuzun terminalinde
adb pair ipaddr:port
komutunu çalıştırın. IP adresini kullanın ve bağlantı noktası numarasını kaldırın. -
İstendiğinde eşleme kodunu aşağıda gösterildiği gibi girin.
6. Şekil. Cihazınızın başarıyla etkinleştirildiğini belirten bir mesaj eşlendi.
Kablosuz bağlantı sorunlarını çözme
Cihazınıza kablosuz olarak bağlanma konusunda sorun yaşıyorsanız aşağıdakileri deneyin: adımları uygulayın.
İş istasyonunuzun ve cihazınızın ön koşulları karşılayıp karşılamadığını kontrol edin
İş istasyonunun ve cihazın bunları okuyun.
Diğer bilinen sorunları kontrol etme
Aşağıda kablosuz hata ayıklama ile ilgili bilinen mevcut sorunların bir listesi verilmiştir (adb veya Android ile Studio) ve bunların nasıl çözüleceği:
-
Kablosuz ağ bağlanmıyor: Kurumsal kablosuz ağlar gibi güvenli kablosuz ağlar, p2p bağlantılarını engelleyebilir ve kablosuz ağ üzerinden bağlanmanıza izin vermeyebilir. Kablo ile bağlanmayı deneyin veya başka bir (kurumsal olmayan) kablosuz ağ. Şunu kullanarak kablosuz bağlantı: TCP/ip üzerinden
adb connect ip:port
(ilk USB bağlantısından sonra) başka bir seçenektir. kurumsal olmayan bir ağa başvurmanın bir seçenek olması ihtimaline karşı. -
Kablosuz bağlantı üzerinden
adb
bazen otomatik olarak kapanabilir: Bu durum, cihaz kablosuz ağları değiştirir veya ağ bağlantısını keser. Sorunu çözmek için yeniden bağlanın ağa bağlayın. -
Eşleştirme işlemi başarıyla tamamlandıktan sonra cihaz bağlanmıyor:
adb
, mDNS'yi kullanarak eşlenen cihazları keşfedip otomatik olarak bağlanabilir. Ağınız veya cihazınız yapılandırması mDNS'yi desteklemiyorsa veya devre dışı bıraktıysa, manuel olarakadb connect ip:port
ile cihaza bağlan.
İlk USB bağlantısından sonra bir cihaza kablosuz olarak bağlanma (yalnızca Android 10 ve önceki sürümlerde kullanılabilir)
Not: Bu iş akışı, Android 11 (ve aynı zamanda fiziksel USB üzerinden *başlangıç* bağlantısı içerdiğine dikkat edin.
Not: Aşağıdaki talimatlar Wear cihazlar için geçerli değildir Android 10 (API düzeyi 29) veya önceki sürümleri çalıştıran. Aşağıdakilerle ilgili rehbere bakın: Wear OS uygulamasında hata ayıklama daha fazla bilgi edinin.
adb
genellikle USB üzerinden cihazla iletişim kurar, ancak şunları da kullanabilirsiniz:
Kablosuz ağ üzerinden adb
. Android 10 (API düzeyi 29) veya önceki sürümleri ç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ınızı bağlayın veya ortak bir kablosuz ağa bağlanabilirsiniz. - Cihazı bir USB kablosuyla ana bilgisayara bağlayın.
-
Hedef cihazı, 5555 numaralı bağlantı noktasından 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, bir Nexus cihazda Ayarlar > Tablet hakkında (veya Telefon hakkında) > Durum > IP adresi.
-
Cihaza IP adresinden bağlanın:
adb connect device_ip_address:5555
-
Ana bilgisayarınızın hedef cihaza bağlı olduğunu onaylayın:
$ adb devices List of devices attached device_ip_address:5555 device
Not: Tüm erişim noktalarının
uygun olduğunu gördük. Bir erişim noktası kullanmanız gerekebilir
Güvenlik duvarı adb
destekleyecek şekilde yapılandırılmış olmalıdır.
Cihazınız şu anda adb
ağına bağlandı.
Cihazınızla olan adb
bağlantısı kesilirse:
- Ana makinenizin, 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 yöntem işe yaramazsa
adb
ana makinenizi sıfırlayın:adb kill-server
Ardından en baştan başlayın.
Cihazlarla ilgili sorgu
adb
komutlarını vermeden önce hangi cihaz örneklerinin bağlı olduğunu bilmek faydalı olacaktır
adb
sunucusuna gönderilir. Şunu kullanarak ekli cihazların listesini oluştur:
devices
komutu:
adb devices -l
Buna karşılık, adb
her cihaz için şu durum bilgisini yazdırır:
- Seri numarası:
adb
, cihazı benzersiz şekilde tanımlamak için bir dize oluşturur bağlantı noktası numarasına göre yapılır. Örnek bir seri numarası:emulator-5554
- Durum: Cihazın bağlantı durumu aşağıdakilerden biri olabilir:
offline
: Cihazadb
uygulamasına bağlı değil veya bağlı değil yardımcı olur.device
: Cihazadb
sunucusuna bağlı. Lütfen bu durum, Android sisteminin tamamen başlatıldığı ve çalışır durumda olduğu anlamına gelmez. cihazadb
ağına bağlanıyor sistem önyüklemesi yapılır. Bu, önyüklemeden sonra, normal çalışma durumudur. cihazın durumu.no device
: Bağlı cihaz yok.
- Açıklama:
-l
seçeneğini eklersenizdevices
komutu cihazın ne olduğunu söyler. Bu bilgiler, birden fazla cihazınız olduğunda yararlıdır birbirinden ayırt edebilirsiniz.
Aşağıdaki örnekte devices
komutu ve çıkışı gösterilmektedir. Üç tane var
çalışan cihazlarınızın sayısını görün. Listenin ilk iki satırı emülatörler, üçüncü satır ise donanım
başka bir cihaz kullanıyorsanız.
$ 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
komutu, çalıştırılmasına neden olan bir köşe büyük harf komut sırası içerir
emülatörlerin adb devices
çıkışında görünmemesine neden olabilir
emülatörler masaüstünüzde görünür. Bu durum, aşağıdakilerin tümü geçerli olduğunda gerçekleşir
koşullarının doğru olduğunu varsayalım:
adb
sunucusu çalışmıyor.emulator
komutunu-port
veya 5554 ile 5584 arasında tek numaralı bağlantı noktası değerine sahip-ports
seçeneği.- Seçtiğiniz tek numaralı bağlantı noktası meşgul değil, bu nedenle bağlantı noktası bağlantısı belirtilen bağlantı noktası numarası veya meşgulse emülatör 2'deki gereksinimleri karşılayan başka bir bağlantı noktası seçin.
- 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 başka bir komut çalıştırmasını önlemektir.
16'dan fazla emülatör
kullanabilirsiniz. Diğer bir yöntem de adb
sunucusunu her zaman
emulator
komutunu aşağıdaki örneklerde açıklandığı gibi kullanın.
1. Örnek: Aşağıdaki komut sırasında adb devices
komutu,
adb
sunucusu, ancak cihaz listesi görünmüyor.
adb
sunucusunu durdurun ve aşağıdaki komutları gösterilen sırayla girin. Ortalama görüntüleme süresi için
sisteminizden geçerli bir ortalama görüntüleme süresi adı girin. Ortalama görüntüleme süresi adlarının listesini görmek için şunu yazın:
emulator -list-avds
emulator
komutu,
android_sdk/tools
dizini.
$ 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 sırasında adb devices
,
adb
sunucusu ilk başlatıldığı için cihaz listesine eklendi.
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
komutunun örneği:
$ 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 bkz. Komut Satırı başlatma seçeneklerini inceleyin.
Belirli bir cihaza komut gönderme
Birden fazla cihaz çalışıyorsa hedef cihazı belirtmeniz gerekir
adb
komutunu açtığınızda.
Hedefi belirtmek için aşağıdaki adımları izleyin:
- 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ını içeren-s
seçeneği.- Çok fazla
adb
komutu verecekseniz Seri numarasını içerecek$ANDROID_SERIAL
ortam değişkeni . - Her ikisini de kullanıyorsanız
-s
ve$ANDROID_SERIAL
,-s
geçersiz kılma$ANDROID_SERIAL
.
- Çok fazla
Aşağıdaki örnekte, bağlı cihazların listesi alınmıştır ve ardından
helloWorld.apk
uygulamasını söz konusu cihaza yüklemek için kullanılan cihazlardan biri:
$ 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: Hedef cihaz belirtmeden bir komut yayınlarsanız
birden fazla cihaz kullanılabilir olduğunda adb
hata mesajı gösterir
"adb: birden fazla cihaz/emülatör".
Birden fazla cihazınız varsa ancak yalnızca biri emülatörse
emülatöre komut göndermek için -e
seçeneğini kullanın. Birden fazla
bir donanım cihazı takılı değilse komut göndermek için -d
seçeneğini kullanın.
düzenlemenizi sağlar.
Uygulama yükleme
Bir emülatöre veya bağlı cihaza APK yüklemek için adb
uygulamasını kullanabilirsiniz
install
komutuyla:
adb install path_to_apk
-t
seçeneğini install
ile birlikte kullanmalısınız.
komutunu çalıştırın. Daha fazla bilgi için
-t
adlı makaleyi inceleyin.
Birden fazla APK yüklemek için install-multiple
kullanın. Bu, özellikle de
Play Console'dan uygulamanız için belirli bir cihaza ilişkin APK'ları kullanıyorsanız ve bunları bir
veya fiziksel cihazdan kontrol edebilirsiniz.
Emülatöre/cihaza yükleyebileceğiniz bir APK dosyası oluşturma hakkında daha fazla bilgi için Uygulamanızı derleme ve çalıştırma başlıklı makaleyi inceleyin.
Not: Android Studio kullanıyorsanız
adb
: Uygulamanızı emülatöre veya cihaza doğrudan yükleyebilirsiniz. Bunun yerine Android Studio
uygulamanın paketlenmesi ve yüklenmesiyle ilgilenir.
Bağlantı noktası yönlendirmeyi kur
Rastgele bağlantı noktası yönlendirmeyi ayarlamak için forward
komutunu kullanın.
belirli bir ana makine bağlantı noktasındaki istekleri cihazdaki farklı bir bağlantı noktasına yönlendirir.
Aşağıdaki örnekte ana makine bağlantı noktası 6100'ün cihaz bağlantı noktası 7100'e yönlendirilmesi ayarlanmaktadır:
adb forward tcp:6100 tcp:7100
Aşağıdaki örnekte ana makine bağlantı noktası 6100'ün local:logd'a yönlendirilmesi ayarlanmaktadır:
adb forward tcp:6100 local:logd
Bu, web'deki belirli bir bağlantı noktasına neyin gönderildiğini belirlemeye çalışıyorsanız olanak tanır. Alınan tüm veriler sistem günlüğü arka plan programına yazılır ve görüntülenir. görebilirsiniz.
Bir cihaza/cihazdan dosya kopyalama
Dosyaları kopyalamak için pull
ve push
komutlarını kullanın
elde edebiliyorlar. install
komutundan farklı olarak
Yalnızca bir APK dosyasını belirli bir konuma (pull
ve push
) kopyalar
komutları, rastgele dizinleri ve dosyaları cihazdaki herhangi bir konuma kopyalamanıza olanak tanır.
Bir dosyayı veya dizini ve alt dizinlerini cihazdan kopyalamak için: şunları yapın:
adb pull remote local
Bir dosyayı veya dizini ve alt dizinlerini cihaza kopyalamak için: şunları yapın:
adb push local remote
local
ve remote
değerlerini şu yollarla değiştirin:
geliştirme makinenizdeki (yerel) ve web sitesindeki hedef dosyaları/dizini
cihaz (uzaktan kumanda). Örnek:
adb push myfile.txt /sdcard/myfile.txt
Adb sunucusunu durdurma
Bazı durumlarda, adb
sunucusu işlemini sonlandırıp yeniden başlatmanız gerekebilir.
adım adım açıklıyor. Örneğin, adb
bir komuta yanıt vermezse bu durum gerçekleşebilir.
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ını yayınlama
Geliştirme makinenizdeki bir komut satırından veyaadb
takip etmek için:
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 o cihaza gönderilir. Birden fazla emülatör çalışıyorsa ve/veya birden fazla cihaz varsa
-d
, -e
veya -s
kullanmanız gerekir.
komutun yönlendirilmesi gereken hedef cihazı belirtme seçeneğidir.
Desteklenen tüm adb
komutlarının ayrıntılı bir listesini aşağıdakileri kullanarak görebilirsiniz:
komut:
adb --help
Sorun kabuk komutları
adb
üzerinden cihaz komutları göndermek veya bir komut başlatmak için shell
komutunu kullanabilirsiniz.
kabuktur. Tek bir komut vermek için şu şekilde shell
komutunu 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.
alışılmış Unix komut satırı araçlarının çoğunu Android sağlar. Mevcut araçların listesi için şu komutu kullanın:
adb shell ls /system/bin
--help
bağımsız değişkeni aracılığıyla çoğu komut için yardım sunulur.
Kabuk komutlarının çoğu,
toybox [toybox] gibi mevcuttur.
Tüm oyuncak kutusu komutları için geçerli olan genel yardıma toybox --help
üzerinden ulaşabilirsiniz.
Android Platform Tools 23 ve sonraki sürümlerde adb
, bağımsız değişkenleri olduğu şekilde ele alır.
ssh(1)
komutu çalışır. Bu değişiklik proje yönetimiyle ilgili birçok
komut yerleştirme
kabuk içeren komutların güvenli bir şekilde yürütülmesini mümkün kılar
meta karakterler
(ör. adb install Let\'sGo.apk
). Bu değişiklik, yorumun
içeren tüm komutlar da değişti.
Örneğin, adb shell setprop key 'value'
artık bir hatadır çünkü
tek tırnak ('
) yerel kabuk tarafından yutulduğunda cihaz,
adb shell setprop key value
. Komutun çalışması için tırnak işaretleri içinde iki kez
(ör. yerel kabuk ve uzak kabuk için ayrı ayrı
ssh(1)
Örneğin, adb shell setprop key 'value'
.
Ayrıca, işinize yarayabilecek Logcat komut satırı aracı başlıklı makaleye de bakın. sistem günlüğünü izler.
Arama etkinliği yöneticisi
Bir adb
kabuğunda, etkinlik yöneticisi (am
) aracıyla komut göndererek
işlem başlatma, bir işlemi zorla durdurma ve
Niyet yayınlayabilir, cihazın ekran özelliklerini değiştirebilir ve daha fazlasını yapabilirsiniz.
Bir kabuk içindeyken am
söz dizimi şöyledir:
am command
Ayrıca, doğrudan adb
uygulamasından etkinlik yöneticisi komutu da gönderebilirsiniz
uzaktan kabuğa girmediğinden emin olun. Örnek:
adb shell am start -a android.intent.action.VIEW
Tablo 1. Kullanılabilir etkinlik yöneticisi komutları
Komut | Açıklama |
---|---|
start [options] intent
|
Şu değerde belirtilen bir Activity başlat:
intent . Bkz. Amaç bağımsız değişkenleri için spesifikasyon. Seçenekler:
|
startservice [options] intent
|
Service tarafından belirtilen
intent . Bkz. Amaç bağımsız değişkenleri için spesifikasyon. Seçenekler:
|
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 öldürür
Öldürülmesi güvenli ve kullanıcıyı etkilemeyecek işlemler
sahip olacaksınız.
Seçenekler:
|
kill-all
|
Tüm arka plan işlemlerini sonlandırın. |
broadcast [options] intent
|
Yayın amacı gönderin. Bkz. Amaç bağımsız değişkenleri için spesifikasyon. Seçenekler:
|
instrument [options] component
|
İzlemeye
Instrumentation örneği.
Genellikle hedef component
test_package/runner_class biçimidir. Seçenekler:
|
profile start process file
|
process üzerinde profil düzenleyiciyi başlat, sonuçları file adresine yaz.
|
profile stop process
|
process cihazında profil düzenleyiciyi durdurun.
|
dumpheap [options] process file
|
process yığınının dökümünü al, file adresine yaz. Seçenekler:
|
set-debug-app [options] package
|
Hata ayıklamak için package uygulamasını ayarlayın. Seçenekler:
|
clear-debug-app
|
set-debug-app ile hata ayıklama için önceki paketi temizleyin.
|
monitor [options]
|
Kilitlenmeler veya ANR'ler için izlemeye başlayın. Seçenekler:
|
screen-compat {on | off} package
|
Ekranı kontrol et
uyumluluk modu package .
|
display-size [reset | widthxheight]
|
Cihaz görüntü boyutunu geçersiz kılın.
Bu komut, küçük bir ekranı taklit ederek uygulamanızı farklı ekran boyutlarında test etmenize
büyük ekranlı bir cihaz kullanırken ekran çözünürlüğünü veya tam tersini seçin.
Örnek: |
display-density dpi
|
Cihazın görüntü yoğunluğunu geçersiz kıl.
Bu komut, yüksek yoğunluklu bir cihazı taklit ederek uygulamanızı farklı ekran yoğunluklarında test etmenize yardımcı olur
veya düşük yoğunluklu bir ekranla uyumlu bir şekilde çalışır.
Örnek: |
to-uri intent
|
Belirtilen intent spesifikasyonunu URI olarak yazdırın. |
to-intent-uri intent
|
Belirtilen intent spesifikasyonunu intent: URI olarak yazdırın. |
Amaç bağımsız değişkenleri için spesifikasyon
intent
bağımsız değişkeni alan etkinlik yöneticisi komutları için şunları yapabilirsiniz:
amacı aşağıdaki seçeneklerle belirtin:
Paket yöneticisini ara (pm
)
Bir adb
kabuğunda, paket yöneticisi (pm
) aracıyla komut göndererek
Cihazda yüklü uygulama paketlerinde işlem ve sorgu gerçekleştirme.
Bir kabuk içindeyken pm
söz dizimi şöyledir:
pm command
Ayrıca, doğrudan adb
üzerinden bir paket yöneticisi komutu da yayınlayabilirsiniz
uzaktan kabuğa girmediğinden emin olun. Örnek:
adb shell pm uninstall com.example.MyApp
Tablo 2. Kullanılabilir paket yöneticisi komutları
Komut | Açıklama |
---|---|
list packages [options] filter
|
Tüm paketleri (isteğe bağlı olarak yalnızca) yazdırın
paket adı filter içindeki metni içerenler. Seçenekler:
|
list permission-groups
|
Bilinen tüm izin gruplarını yazdırma. |
list permissions [options] group
|
Bilinen tüm izinleri (isteğe bağlı olarak yalnızca) yazdır
group içindekiler. Seçenekler:
|
list instrumentation [options]
|
Tüm test paketlerini listeleyin. Seçenekler:
|
list features
|
Sistemin tüm özelliklerini yazdırın. |
list libraries
|
Geçerli cihaz tarafından desteklenen tüm kitaplıkları yazdır. |
list users
|
Sistemdeki tüm kullanıcıları yazdırın. |
path package
|
Belirtilen package öğesinin APK yolunu yazdır.
|
install [options] path
|
Sisteme path tarafından belirtilen bir paketi yükleyin. Seçenekler:
|
uninstall [options] package
|
Bir paketi sistemden kaldırır. Seçenekler:
|
clear package
|
Bir paketle ilişkilendirilmiş tüm verileri silin. |
enable package_or_component
|
Belirtilen paketi veya bileşeni ("paket/sınıf" olarak yazılır) etkinleştirin. |
disable package_or_component
|
Belirtilen paketi veya bileşeni devre dışı bırakın ("paket/sınıf" olarak yazılır). |
disable-user [options] package_or_component
|
Seçenekler:
|
grant package_name permission
|
Bir uygulamaya izin verin. Android 6.0 (API düzeyi 23) yüklü cihazlarda ve daha yüksek bir izin, uygulama manifest dosyasında beyan edilen herhangi bir izin olabilir. Cihazlarda Android 5.1 (API düzeyi 22) ve önceki sürümleri çalıştıran uygulamalar, uygulamasını indirin. |
revoke package_name permission
|
Uygulamanın iznini iptal etme Android 6.0 (API düzeyi) çalıştıran cihazlarda 23) ve daha üst düzey bir izin, uygulama manifest dosyasında beyan edilen herhangi bir izin olabilir. Cihazlarda Android 5.1 (API düzeyi 22) ve önceki sürümleri çalıştıran uygulamalar, uygulamasını indirin. |
set-install-location location
|
Varsayılan yükleme konumunu değiştirin. Konum değerleri:
Not: Bu seçenek yalnızca hata ayıklama amacıyla hazırlanmıştır. Bu, şunlara neden olabilir: uygulamaları ve diğer istenmeyen davranışları düzeltme. |
get-install-location
|
Geçerli yükleme konumunu döndürür. Döndürülen değerler:
|
set-permission-enforced permission [true | false]
|
Verilen iznin zorunlu kılınıp uygulanmayacağı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ın yazdırılması.
|
remove-user user_id
|
Belirtilen user_id değerine sahip kullanıcıyı kaldırın,
bu kullanıcıyla ilişkili tüm veriler silinir
|
get-max-users
|
Cihazın desteklediği maksimum kullanıcı sayısını yazdırın. |
get-app-links [options] [package]
|
Belirtilen package veya tüm cihazlar için alan doğrulama durumunu yazdır paketlerini ayarlayabilirsiniz. Eyalet kodları aşağıdaki gibi tanımlanır:
Seçenekler:
|
reset-app-links [options] [package]
|
Belirli bir paket veya tüm paket için alan adı doğrulama durumunu sıfırlayın paketlerini ayarlayabilirsiniz.
Seçenekler:
|
verify-app-links [--re-verify] [package]
|
Belirtilen package için veya tüm katılımcılar için doğrulama isteği yayınlayın paketlerini ayarlayabilirsiniz. Yalnızca paket daha önce yanıt kaydetmedi.
|
set-app-links [--package package] state domains
|
Paket için bir alanın durumunu manuel olarak ayarlayın. Alan adı şu olmalıdır: bu özelliğin çalışması için paket tarafından AutoVerify olarak tanımlanmıştır. Bu komut uygulanamayan alanlar için bir hata bildirmez.
|
set-app-links-user-selection --user user_id [--package package]
enabled domains
|
Paket için ana makine kullanıcısı seçiminin durumunu manuel olarak ayarlayın. Alan bunun çalışması için paket tarafından beyan edilmesi gerekir. Bu komut uygulanamayan alanlar için bir hata bildirin.
|
set-app-links-user-selection --user user_id [--package package]
enabled domains
|
Paket için ana makine kullanıcısı seçiminin durumunu manuel olarak ayarlayın. Alan bunun çalışması için paket tarafından beyan edilmesi gerekir. Bu komut uygulanamayan alanlar için bir hata bildirin.
|
set-app-links-allowed --user user_id [--package package] allowed
|
Bir paket için otomatik olarak doğrulanan bağlantı işleme ayarını açın/kapatın.
|
get-app-link-owners --user user_id [--package package] domains
|
Belirli bir kullanıcının belirli bir alan adının sahiplerini düşükten yükseğe doğru sırayla yazdırın.
|
Cihaz politika yöneticisini ara (dpm
)
Cihaz yönetimi uygulamalarınızı geliştirip test etmenize yardımcı olmak için
cihaz politika yöneticisi (dpm
) aracına komut olarak gönderir. Aracı kontrol etmek için etkin
yönetici uygulaması veya cihazdaki bir politikanın durum verilerini değiştirme.
Kabuk içindeyken dpm
söz dizimi şu şekildedir:
dpm command
Dilerseniz doğrudan adb
uygulamasından da bir cihaz politika yöneticisi komutu yayınlayabilirsiniz
uzak kabuğa girmeden:
adb shell dpm command
Tablo 3. Kullanılabilen cihaz politika yöneticisi komutları
Komut | Açıklama |
---|---|
set-active-admin [options] component
|
component adlı kullanıcıyı etkin yönetici olarak ayarlar.
Seçenekler:
|
set-profile-owner [options] component
|
component adresini etkin yönetici olarak ve paketini, mevcut bir kullanıcının profil sahibi olarak ayarlayın.
Seçenekler:
|
set-device-owner [options] component
|
component öğesini etkin yönetici ve paketi cihaz sahibi olarak ayarlayın.
Seçenekler:
|
remove-active-admin [options] component
|
Etkin bir yöneticiyi devre dışı bırakın. Uygulama şunu beyan etmelidir:
android:testOnly .
dosyası olarak gönderin. Bu komut, cihaz ve profil sahiplerini de kaldırır.
Seçenekler:
|
clear-freeze-period-record
|
Cihazın sistem OTA güncellemeleri için önceden ayarlanmış dondurma dönemlerine ait kaydını temizleyin. Faydalı
. Görüntüleyin
Sistem güncellemelerini yönetin.
Android 9.0 (API düzeyi 28) ve sonraki sürümleri çalıştıran cihazlarda desteklenir. |
force-network-logs
|
Sistemi, mevcut ağ günlüklerini bir DPC tarafından alınmaya hazır hale getirmeye zorla Varsa
bağlantı veya DNS günlüklerinin bulunması, DPC'nin
onNetworkLogsAvailable() .
geri arama. Ağ etkinliği günlük kaydı başlıklı makaleyi inceleyin.
Bu komut hızla sınırlıdır. Android 9.0 (API düzeyi 28) ve sonraki sürümleri çalıştıran cihazlarda desteklenir. |
force-security-logs
|
Sistemi, mevcut güvenlik günlüklerini DPC'nin kullanımına sunmaya zorlayın. Günlükler varsa
DPC bu isteği
onSecurityLogsAvailable() .
geri arama. Log Enterprise cihazı" başlıklı makaleyi inceleyin.
etkinliği hakkında daha fazla bilgi edinin.
Bu komut hızla sınırlıdır. Android 9.0 (API düzeyi 28) ve sonraki sürümleri çalıştıran cihazlarda desteklenir. |
Ekran görüntüsü al
screencap
komutu, bir cihazın ekran görüntüsünü almak için kullanılan bir kabuk yardımcı programıdır
görüntüleyin.
Bir kabuk içindeyken screencap
söz dizimi şöyledir:
screencap filename
Komut satırından screencap
kullanmak için aşağıdakileri girin:
adb shell screencap /sdcard/screen.png
Ekran görüntüsünü almak için adb
kabuğunun kullanıldığı, örnek bir ekran görüntüsü oturumunu burada bulabilirsiniz.
Dosyayı cihazdan indirmek için pull
komutunu kullanın:
$ adb shell shell@ $ screencap /sdcard/screen.png shell@ $ exit $ adb pull /sdcard/screen.png
Video kaydet
screenrecord
komutu, cihazların görünümünü kaydetmek için kullanılan bir kabuk yardımcı programıdır
Android 4.4 (API düzeyi 19) ve sonraki sürümleri çalıştıran. Yardımcı program, ekran etkinliğini MPEG-4 olarak kaydeder
dosyası olarak kaydedebilirsiniz. Tanıtım veya eğitim videoları oluşturmak ya da hata ayıklama ve test yapmak için bu dosyayı kullanabilirsiniz.
Bir kabuk içinde, aşağıdaki söz dizimini kullanın:
screenrecord [options] filename
Komut satırından screenrecord
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 veya --time-limit
tarafından ayarlanan süre sınırında otomatik olarak durur.
Cihazınızın ekranını kaydetmeye başlamak için screenrecord
komutunu çalıştırarak kaydetme
seçeceğiz. Ardından videoyu cihazdan ana makineye indirmek için pull
komutunu çalıştırın.
hoş geldiniz. Kayıt oturumuyla ilgili bir örnek:
$ adb shell shell@ $ screenrecord --verbose /sdcard/demo.mp4 (press Control + C to stop) shell@ $ exit $ adb pull /sdcard/demo.mp4
screenrecord
yardımcı programı, kaydettiğiniz tüm çözünürlükte ve bit hızında kayıt yapabilir
isteğine ve cihaz ekranının en boy oranını korur. Yardımcı program yerel sunucudaki kayıtları
varsayılan olarak maksimum üç dakika uzunluktaki ekran çözünürlüğünü ve yönünü seçin.
screenrecord
yardımcı programının sınırlamaları:
- Video dosyasıyla ses kaydedilmez.
- Wear OS yüklü cihazlarda video kaydı yapılamaz.
- Bazı cihazlar yerel ekran çözünürlüklerinde kayıt yapamayabilir. Ekran kaydetmeyle 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 desteklenmiyor. Ekran, çalışma sırasında dönerse kayıt sırasında ekranın bir kısmı kesiliyor.
Tablo 4. screenrecord
seçenekleri
Seçenekler | Açıklama |
---|---|
--help
|
Komut söz dizimini ve seçeneklerini göster |
--size widthxheight
|
Video boyutunu ayarlayın: 1280x720 . Varsayılan değer cihazın yerel değeri
ekran çözünürlüğü (destekleniyorsa), desteklenmiyorsa 1280x720. En iyi sonuçlar için desteklenen bir boyut kullanın
cihazınızın Gelişmiş Video Kodlaması (AVC) kodlayıcısı tarafından gerçekleştirilir. |
--bit-rate rate |
Video için video bit hızını, saniyedeki megabit olarak ayarlayın. Varsayılan değer 20 Mb/sn'dir.
Video kalitesini artırmak için bit hızını artırabilirsiniz, ancak bu işlem daha büyük film oluşturur
dosyası olarak da kaydedebilir. Aşağıdaki örnekte kayıt bit hızı 6 Mb/sn olarak ayarlanmaktadı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 yardımcı program çalışırken hiçbir bilgi görüntülemez. |
Uygulamalar için ART profillerini okuma
Android 7.0 (API düzeyi 24) sürümünden itibaren, Android Çalışma Zamanı (ART) aşağıdakilerle ilgili yürütme profillerini toplar: performansı optimize etmek için kullanılan, yüklenen uygulamaları kontrol edin. Toplanan profilleri inceleyerek hangi yöntemlerin sık yürütüldüğünü ve uygulama başlatılırken hangi sınıfların kullanıldığını anlayın.
Not: Yalnızca yürütme profili alınabilir dosya sistemine kök erişiminiz varsa (ör. bir emülatörde) dosya adını girin.
Profil bilgilerini metin biçiminde oluşturmak için aşağıdaki komutu kullanın:
adb shell cmd package dump-profiles package
Oluşturulan dosyayı almak için şunu kullanın:
adb pull /data/misc/profman/package.prof.txt
Test cihazlarını sıfırlayın
Uygulamanızı birden fazla test cihazında test ediyorsanız
test ortamını sıfırlamanız gerekebilir. Fabrika ayarlarına giderek
Android 10 (API düzeyi 29) veya sonraki sürümleri çalıştıran bir test cihazının
testharness
adb
kabuk komutu, gösterildiği gibi:
adb shell cmd testharness enable
Cihaz, testharness
uygulamasını kullanarak geri yüklenirken RSA'yı otomatik olarak yedekler
anahtarı ile birlikte, kalıcı konumdaki geçerli iş istasyonunda hata ayıklamaya olanak tanır. Başka bir deyişle,
Cihaz sıfırlanırsa iş istasyonu hata ayıklamaya devam edebilir ve adb
komutlarını
cihazı manuel olarak yeni bir anahtar kaydetmeden cihaza kaydedin.
Ayrıca,
testharness
bir cihazı geri yüklemek için aşağıdaki cihaz ayarlarını da değiştirir:
- 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
varsayılan ayarlarını algılayıp buna uyum sağlaması gerekiyorsa
komutunda,
ActivityManager.isRunningInUserTestHarness()
.
sqlite
sqlite3
, SQLite veritabanlarını incelemek için sqlite
komut satırı programını başlatır.
Bir tablonun içeriğini yazdırmak için kullanılan .dump
gibi komutlar içerir.
SQL CREATE
ifadesini mevcut bir tablo için yazdırmak üzere .schema
.
Ayrıca, gösterildiği gibi komut satırından SQLite komutlarını 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: Yalnızca SQLite veritabanına erişilebilir (ör. bir emülatörde) dosya sistemine kök erişiminiz varsa.
Daha fazla bilgi için sqlite3
komut satırı dokümanlarına bakın.
adb USB arka uçları
Adb sunucusu, USB yığınıyla iki arka uç üzerinden etkileşim kurabilir. Ya da hem yerel reklam
işletim sisteminin arka ucu (Windows, Linux veya macOS) 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 sistemleri arasında değişiklik gösterir. Başlangıç
ADB v34 ile
liubusb
arka ucu, yerel arka ucun yerel arka ucun kullanıldığı Windows hariç tüm işletim sistemlerinde varsayılan olarak kullanılır
varsayılan olarak kullanılır. ADB_LIBUSB
ise
yerel arka ucun mu libusb
mi kullanılacağını belirler. Bkz.
adb manuel sayfası
adb ortam değişkenleri hakkında daha fazla bilgi edinin.
adb mDNS arka uçları
ADB, sunucuyu ve cihazları otomatik olarak bağlamak için çoklu yayın DNS protokolünü kullanabilir. ADB sunucusu Bonjour (Apple'ın mdnsReplyer) ve Openscreen adlı iki arka ucuyla birlikte sunulur.
Bonjour arka ucunun ana makinede çalıştırılabilmesi için bir arka plan programı gerekir.
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ürse ADB, Bonjour arka ucunu kullanıyor ancak Bonjour arka plan programı çalıştırılmıyordur.
Openscreen arka ucunun makinede çalıştırılması için bir arka plan programının çalışması gerekmez. macOS'te Openscreen arka ucu desteği ADB v35'ten başlar. Windows ve Linux, ADB 34 sürümü itibarıyla 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 ayarlayın).
Daha fazla ayrıntı için ADB manuel sayfasına bakın.