Android Hata Ayıklama Köprüsü (adb)

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:

  1. Geliştirici seçeneklerini etkinleştirme cihazınızda.

  2. 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ü.

    Yapılandırmaları çalıştırma açılır 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.

    Kablosuz ağ üzerinden cihaz eşleme pop-up penceresinin ekran görüntüsü
    Şekil 2. QR kodu veya eşleme kullanarak cihazları eşlemek için pop-up pencere girin.
  3. Cihazınızda Kablosuz hata ayıklama'ya dokunun ve cihazınızı eşleyin:

    Şunun ekran görüntüsü:
            Kablosuz hata ayıklama sistemleri ayarını gösteren bir piksel telefon.
    Şekil 3. Kablosuz hata ayıklama ayarının ekran görüntüsü Google Pixel telefon.
    1. 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.

    2. 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.

      Örnek PIN kodu girişinin ekran görüntüsü
      4.Şekil Altı basamaklı kod girişi örneği.
  4. 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.

  5. 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.

    Şunun ekran görüntüsü:
            Google Pixel telefondaki Hızlı Ayarlar geliştirici kutuları.
    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:

  1. Cihazınızda geliştirici seçeneklerini daha önce açıklandığı şekilde etkinleştirin.

  2. Cihazınızda Kablosuz hata ayıklama'yı daha önce açıklandığı şekilde etkinleştirin.

  3. İş istasyonunuzda bir terminal penceresi açın ve şu konuma gidin: android_sdk/platform-tools

  4. 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.

  5. İş istasyonunuzun terminalinde adb pair ipaddr:port komutunu çalıştırın. IP adresini kullanın ve bağlantı noktası numarasını kaldırın.

  6. İstendiğinde eşleme kodunu aşağıda gösterildiği gibi girin.

    Şunun ekran görüntüsü:
            iki yolu vardır.
    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 olarak adb 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:

  1. Android cihazınızı ve adb ana bilgisayarınızı bağlayın veya ortak bir kablosuz ağa bağlanabilirsiniz.
  2. 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.

  3. Cihazı bir USB kablosuyla ana bilgisayara bağlayın.
  4. Hedef cihazı, 5555 numaralı bağlantı noktasından TCP/IP bağlantısını dinleyecek şekilde ayarlayın:
    adb tcpip 5555
    
  5. USB kablosunu hedef cihazdan çıkarın.
  6. Android cihazın IP adresini bulun. Örneğin, bir Nexus cihazda Ayarlar > Tablet hakkında (veya Telefon hakkında) > Durum > IP adresi.
  7. Cihaza IP adresinden bağlanın:
    adb connect device_ip_address:5555
    
  8. Ana bilgisayarınızın hedef cihaza bağlı olduğunu onaylayın:
    $ adb devices
    List of devices attached
    device_ip_address:5555 device
    

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: Cihaz adb uygulamasına bağlı değil veya bağlı değil yardımcı olur.
    • device: Cihaz adb sunucusuna bağlı. Lütfen bu durum, Android sisteminin tamamen başlatıldığı ve çalışır durumda olduğu anlamına gelmez. cihaz adb 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 eklerseniz devices 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:

  1. Hedefin seri numarasını almak için devices komutunu kullanın.
  2. Seri numarasını aldıktan sonra Seri numarasını belirtmek için adb komutlarını içeren -s seçeneği.
    1. Çok fazla adb komutu verecekseniz Seri numarasını içerecek $ANDROID_SERIAL ortam değişkeni .
    2. Her ikisini de kullanıyorsanız -s ve $ANDROID_SERIAL, -s geçersiz kılma $ANDROID_SERIAL.

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:

  • -D: Hata ayıklamayı etkinleştir.
  • -W: Lansmanın tamamlanmasını bekleyin.
  • --start-profiler file: Profil düzenleyiciyi başlat ve sonuçları şu adrese gönder: file.
  • -P file: --start-profiler gibi, ancak profil çıkarma işlemi, uygulama boşta kaldığında durur.
  • -R count: count etkinlik lansmanını tekrarlayın kez. Her tekrardan önce en üstteki etkinlik tamamlanacak.
  • -S: Etkinliği başlatmadan önce hedef uygulamayı zorla durdurun.
  • --opengl-trace: OpenGL işlevlerinin izlenmesini etkinleştirin.
  • --user user_id | current: Hangi kullanıcının olarak çalıştırılacağını belirtin; eğer değilse belirtilmeli ve ardından geçerli kullanıcı olarak çalıştırılmalıdır.
startservice [options] intent Service tarafından belirtilen intent.

Bkz. Amaç bağımsız değişkenleri için spesifikasyon.

Seçenekler:

  • --user user_id | current: Hangi kullanıcı olarak çalıştırılacağını belirtin. Değilse belirtilmeli ve ardından geçerli kullanıcı olarak çalıştırılmalıdır.
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:

  • --user user_id | all | current: Hangi kullanıcının işlemlerini sonlandıracağınızı belirtin. Belirtilmezse tüm kullanıcıları sonlandır daha fazla bilgi edineceksiniz.
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:

  • [--user user_id | all | current]: İletinin hangi kullanıcıya gönderileceğini belirtin. Değilse belirleyip tüm kullanıcılara gönderebilirsiniz.
instrument [options] component İzlemeye Instrumentation örneği. Genellikle hedef component test_package/runner_class biçimidir.

Seçenekler:

  • -r: Ham sonuçları yazdır (aksi takdirde kodu çöz) report_key_streamresult) tıklayın. Şununla kullan: Performans ölçümleri için ham çıktı oluşturmak üzere [-e perf true].
  • -e name value: name bağımsız değişkenini ayarla alıcı: value. Test koşucuları için en yaygın form -e testrunner_flag value[,value...] şeklindedir.
  • -p file: Profil oluşturma verilerini file hesabına yazın.
  • -w: Geri dönmeden önce enstrümantasyonun tamamlanmasını bekleyin. Şunun için gereklidir: en iyi uygulamaları paylaşacağız.
  • --no-window-animation: Çalışırken pencere animasyonlarını devre dışı bırak.
  • --user user_id | current: Hangi kullanıcı aracının çalışacağını belirtin. Belirtilmezse geçerli kullanıcıda çalıştır.
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:

  • --user [user_id | current]: İşlem adı sağlarken döküm işleminin kullanıcısını belirtir. Belirtilmezse geçerli kullanıcı kullanılır.
  • -b [| png | jpg | webp]: Grafik belleğinden bit eşlemlerin dökümünü al. İsteğe bağlı olarak döküm alınacak biçimi (varsayılan olarak PNG) belirtin.
  • -n: Yönetilen yığın yerine yerel yığının dökümünü alın.
set-debug-app [options] package Hata ayıklamak için package uygulamasını ayarlayın.

Seçenekler:

  • -w: Uygulama başlatıldığında hata ayıklayıcıyı bekleyin.
  • --persistent: Bu değeri koruyun.
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:

  • --gdb: Kilitlenme/ANR sırasında belirtilen bağlantı noktasında gdbserv öğesini başlat.
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:
am display-size 1280x800

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:
am display-density 480

to-uri intent Belirtilen intent spesifikasyonunu URI olarak yazdırın.

Bkz. Amaç bağımsız değişkenleri için spesifikasyon.

to-intent-uri intent Belirtilen intent spesifikasyonunu intent: URI olarak yazdırın.

Bkz. Amaç bağımsız değişkenleri için spesifikasyon.

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:

  • -f: İlişkili dosyayı gösterir.
  • -d: Yalnızca devre dışı bırakılmış paketleri gösterecek şekilde filtreleyin.
  • -e: Yalnızca etkin paketleri gösterecek şekilde filtre uygulayın.
  • -s: Yalnızca sistem paketlerini gösterecek şekilde filtreleyin.
  • -3: Yalnızca üçüncü taraf paketlerini gösterecek şekilde filtreleyin.
  • -i: Paketler için yükleyiciye bakın.
  • -u: Kaldırılmış paketleri dahil eder.
  • --user user_id: Sorgulanacak kullanıcı alanı.
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:

  • -g: Gruba göre organize edin.
  • -f: Tüm bilgileri yazdırır.
  • -s: Kısa özet.
  • -d: Yalnızca tehlikeli izinleri listeler.
  • -u: Yalnızca kullanıcıların göreceği izinleri listeleyin.
list instrumentation [options] Tüm test paketlerini listeleyin.

Seçenekler:

  • -f: Test paketi için APK dosyasını listeleyin.
  • target_package: Yalnızca bu uygulama için test paketlerini listeler.
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:

  • -r: Mevcut bir uygulamayı, verilerini koruyarak yeniden yükleyin.
  • -t: Test APK'larının yüklenmesine izin ver. Gradle aşağıdaki durumlarda test APK'sı oluşturur: Uygulamanızı yalnızca çalıştırdıysanız veya hatalarını ayıkladıysanız ya da Android Studio Derleme > Derleme APK komutunu çağırın. APK, bir geliştirici önizleme SDK'sı kullanılarak oluşturulmuşsa -t seçeneği test APK'sı yüklüyorsanız install komutunu kullanın.
  • -i installer_package_name: Yükleyici paketi adını belirtin.
  • --install-location location: Yükleme konumunu ayarlayın aşağıdaki değerlerden birini kullanın:
    • 0: Varsayılan yükleme konumunu kullan.
    • 1: Dahili cihaz depolama alanına yükleyin.
    • 2: Harici medyaya yükleyin.
  • -f: Paketi dahili sistem belleğine yükleyin.
  • -d: Sürüm kodunun eski sürüme geçirilmesine izin ver.
  • -g: Uygulama manifestinde listelenen tüm izinleri verin.
  • --fastdeploy: Yalnızca bazı bölümlerini güncelleyerek yüklü bir paketi hızla güncelleyin görebilirsiniz.
  • --incremental: Uygulamayı başlatmaya yetecek kadar APK yükler arka planda oynatmaya devam ediyor. Bu özelliği kullanmak için APK için bir APK İmza Şeması v4 dosyası, ve bu dosyayı APK ile aynı dizine yerleştirin. Bu özellik yalnızca belirli cihazlarda kullanılabilir. Bu seçenek, adb adlı müşteriyi özelliği kullanmaya zorlar veya kullanmadığı takdirde başarısız olur ve neden başarısız olduğu hakkında ayrıntılı bilgiler ile birlikte. --wait seçeneğini APK'ya erişim vermeden önce APK'nın tamamen yüklenmesini bekleyin.

    --no-incremental, adb adlı çocuğun bu özelliği kullanmasını engelliyor.

uninstall [options] package Bir paketi sistemden kaldırır.

Seçenekler:

  • -k: Paket kaldırıldıktan sonra verileri ve önbellek dizinlerini koruyun.
  • --user user_id: Paketin kaldırılacağı kullanıcıyı belirtir.
  • --versionCode version_code: Yalnızca uygulama belirtilen sürüm koduna sahipse kaldırılır.
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:

  • --user user_id: Devre dışı bırakılacak kullanıcı.
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:
  • 0: Otomatik: En iyi konumu sistemin belirlemesini sağlar.
  • 1: Dahili: Dahili cihaz depolama alanına yükleyin.
  • 2: Harici: Harici medyaya yükleyin.

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:
  • 0 [auto]: En iyi konumu sistem belirlesin
  • 1 [internal]: Dahili cihaz depolama alanına yükle
  • 2 [external]: Harici medyaya yükle
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:

  • none: Bu alan için hiçbir şey kaydedilmedi
  • verified: Alan başarıyla doğrulandı
  • approved: zorla onaylandı, genellikle kabuk aracılığıyla
  • denied: zorla reddedildi, genellikle kabuk aracılığıyla
  • migrated: eski bir yanıtla korunan doğrulama
  • restored: Kullanıcı verilerini geri yükleme işlemi için korunan doğrulama
  • legacy_failure: eski bir doğrulayıcı tarafından reddedildi, bilinmeyen neden
  • system_configured: Cihaz yapılandırması tarafından otomatik olarak onaylandı
  • >= 1024: Cihaz doğrulayıcıya özgü özel hata kodu

Seçenekler:

  • --user user_id: Kullanıcı seçimlerini dahil edin. Tüm alan adlarını dahil edin, otomatik olarak doğrulayın.
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.

  • package: sıfırlanacak paket veya "tümü" tüm paketleri sıfırlamak için

Seçenekler:

  • --user user_id: Kullanıcı seçimlerini dahil edin. Tüm alan adlarını dahil edin, otomatik olarak doğrulayın.
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.

  • --re-verify: paket bir yanıt kaydetmiş olsa bile gönder
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.

  • --package package: ayarlanacak paket veya "tümü" ve tüm paketleri
  • state: Alanları belirleyeceğiniz kod. Geçerli değerler şunlardır:
    • STATE_NO_RESPONSE (0): Hiç yanıt kaydedilmemiş gibi sıfırlanır.
    • STATE_SUCCESS (1): alanı, alan adı tarafından başarıyla doğrulanmış olarak değerlendir müşteri temsilcisi ile bağlantı kurabilirsiniz. Alan doğrulama aracısının bunu geçersiz kıl.
    • STATE_APPROVED (2): alanı her zaman onaylanmış olarak değerlendirerek alan doğrulama aracısının değiştirilmesini önler.
    • STATE_DENIED (3): alanı her zaman reddedilmiş olarak kabul ederek alanı önler değiştirilmesini önler.
  • domains: Değiştirilecek alan adlarının boşlukla ayrılmış listesi veya "tümü" - değiştirmek istiyorum.
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.

  • --user user_id: kullanıcı, seçimlerini değiştirecek.
  • --package package: ayarlanacak paket
  • enabled: alanın onaylanıp onaylanmayacağı
  • domains: Değiştirilecek alan adlarının boşlukla ayrılmış listesi veya "tümü" - her alanı değiştir
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.

  • --user user_id: kullanıcı, seçimlerini değiştirecek.
  • --package package: ayarlanacak paket
  • enabled: alanın onaylanıp onaylanmayacağı
  • domains: Değiştirilecek alan adlarının boşlukla ayrılmış listesi veya "tümü" - her alanı değiştir
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.

  • --user user_id: kullanıcı, seçimlerini değiştirecek.
  • --package package: ayarlanacak paket veya "tümü" ve hepsini ayarlamak için paketler; paket belirtilmezse paket sıfırlanır
  • allowed: Paketin otomatik olarak doğrulanan bağlantıları açmasına izin vermek için true (doğru), devre dışı bırakmak için yanlış değerine bası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.

  • --user user_id: sorgulanacak kullanıcı
  • --package package: isteğe bağlı olarak tüm web alanları için de yazdırılır paket tarafından belirtilen veya "tümü" (tüm paketleri yazdırmak için)
  • domains: sorgulanacak alan adlarının boşlukla ayrılmış listesi

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:

  • --user user_id: Hedef kullanıcıyı belirtin. Ayrıca Geçerli kullanıcıyı seçmek için --user current
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:

  • --user user_id: Hedef kullanıcıyı belirtin. Şunları yapabilirsiniz: geçerli kullanıcıyı seçmek için --user current değerini de tamamlayın.
  • --name name: Kullanıcıların okuyabileceği kuruluş adını belirtin.
set-device-owner [options] component component öğesini etkin yönetici ve paketi cihaz sahibi olarak ayarlayın.

Seçenekler:

  • --user user_id: Hedef kullanıcıyı belirtin. Ayrıca Geçerli kullanıcıyı seçmek için --user current
  • --name name: Kullanıcıların okuyabileceği kuruluş adını belirtin.
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:

  • --user user_id: Hedef kullanıcıyı belirtin. Ayrıca Geçerli kullanıcıyı seçmek için --user current
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.