Android ADB kabuk “dumpsys” aracı nedir ve faydaları nelerdir?


140

Tüm dumpsyskomutların tam bir açıklaması ile ADB kabuk komutlarının tam listesini arıyorum .

Bu bilgiyi nerede bulabilirim?

Yanıtlar:


247

Dumpsys nedir ve faydaları nelerdir

dumpsys cihaz üzerinde çalışan ve sistem hizmetlerinin durumu hakkında ilginç bilgiler atar bir android aracıdır.

Açık faydalar:

  1. Basit bir dize gösteriminde sistem bilgilerini kolayca alma imkanı.
  2. Uygulamanızın genel cihazı nasıl etkilediğini kontrol etmenizi sağlayacak güzel grafikler için döküm CPU, RAM, Pil, depolama istatistikleri kullanma imkanı!

Dumpsys shell komutundan hangi bilgileri alabiliriz ve nasıl kullanabiliriz

Dumpsys çalıştırırsanız, bir ton sistem bilgisi görürsünüz. Ancak bu büyük çöplüğün sadece ayrı kısımlarını kullanabilirsiniz.

dumpsys'in tüm "alt komutlarını" görmek için:

dumpsys | grep "DUMP OF SERVICE"

Çıktı:

DUMP OF SERVICE SurfaceFlinger:
DUMP OF SERVICE accessibility:
DUMP OF SERVICE account:
DUMP OF SERVICE activity:
DUMP OF SERVICE alarm:
DUMP OF SERVICE appwidget:
DUMP OF SERVICE audio:
DUMP OF SERVICE backup:
DUMP OF SERVICE battery:
DUMP OF SERVICE batteryinfo:
DUMP OF SERVICE clipboard:
DUMP OF SERVICE connectivity:
DUMP OF SERVICE content:
DUMP OF SERVICE cpuinfo:
DUMP OF SERVICE device_policy:
DUMP OF SERVICE devicestoragemonitor:
DUMP OF SERVICE diskstats:
DUMP OF SERVICE dropbox:
DUMP OF SERVICE entropy:
DUMP OF SERVICE hardware:
DUMP OF SERVICE input_method:
DUMP OF SERVICE iphonesubinfo:
DUMP OF SERVICE isms:
DUMP OF SERVICE location:
DUMP OF SERVICE media.audio_flinger:
DUMP OF SERVICE media.audio_policy:
DUMP OF SERVICE media.player:
DUMP OF SERVICE meminfo:
DUMP OF SERVICE mount:
DUMP OF SERVICE netstat:
DUMP OF SERVICE network_management:
DUMP OF SERVICE notification:
DUMP OF SERVICE package:
DUMP OF SERVICE permission:
DUMP OF SERVICE phone:
DUMP OF SERVICE power:
DUMP OF SERVICE reboot:
DUMP OF SERVICE screenshot:
DUMP OF SERVICE search:
DUMP OF SERVICE sensor:
DUMP OF SERVICE simphonebook:
DUMP OF SERVICE statusbar:
DUMP OF SERVICE telephony.registry:
DUMP OF SERVICE throttle:
DUMP OF SERVICE usagestats:
DUMP OF SERVICE vibrator:
DUMP OF SERVICE wallpaper:
DUMP OF SERVICE wifi:
DUMP OF SERVICE window:

Bazı damping örnekleri ve çıktıları

1) Tüm olası pil istatistiklerini alma:

$~ adb shell dumpsys battery

Çıktı alacaksınız:

Current Battery Service state:
AC powered: false
AC capacity: 500000
USB powered: true
status: 5
health: 2
present: true
level: 100
scale: 100
voltage:4201
temperature: 271 <---------- Battery temperature! %)
technology: Li-poly <---------- Battery technology! %)

2) wifi bilgi alma

~$ adb shell dumpsys wifi

Çıktı:

Wi-Fi is enabled
Stay-awake conditions: 3

Internal state:
interface tiwlan0 runState=Running
SSID: XXXXXXX BSSID: xx:xx:xx:xx:xx:xx, MAC: xx:xx:xx:xx:xx:xx, Supplicant state: COMPLETED, RSSI: -60, Link speed: 54, Net ID: 2, security: 0, idStr: null
ipaddr 192.168.1.xxx gateway 192.168.x.x netmask 255.255.255.0 dns1 192.168.x.x dns2 8.8.8.8 DHCP server 192.168.x.x lease 604800 seconds
haveIpAddress=true, obtainingIpAddress=false, scanModeActive=false
lastSignalLevel=2, explicitlyDisabled=false

Latest scan results:

Locks acquired: 28 full, 0 scan
Locks released: 28 full, 0 scan

Locks held:

3) CPU bilgisi alma

~$ adb shell dumpsys cpuinfo

Çıktı:

Load: 0.08 / 0.4 / 0.64
CPU usage from 42816ms to 34683ms ago:
system_server: 1% = 1% user + 0% kernel / faults: 16 minor
kdebuglog.sh: 0% = 0% user + 0% kernel / faults: 160 minor
tiwlan_wq: 0% = 0% user + 0% kernel
usb_mass_storag: 0% = 0% user + 0% kernel
pvr_workqueue: 0% = 0% user + 0% kernel
+sleep: 0% = 0% user + 0% kernel
+sleep: 0% = 0% user + 0% kernel
TOTAL: 6% = 1% user + 3% kernel + 0% irq

4) Bellek kullanım bilgilerini alma

~$ adb shell dumpsys meminfo 'your apps package name'

Çıktı:

** MEMINFO in pid 5527 [com.sec.android.widgetapp.weatherclock] **
                    native   dalvik    other    total
            size:     2868     5767      N/A     8635
       allocated:     2861     2891      N/A     5752
            free:        6     2876      N/A     2882
           (Pss):      532       80     2479     3091
  (shared dirty):      932     2004     6060     8996
    (priv dirty):      512       36     1872     2420

 Objects
           Views:        0        ViewRoots:        0
     AppContexts:        0       Activities:        0
          Assets:        3    AssetManagers:        3
   Local Binders:        2    Proxy Binders:        8
Death Recipients:        0
 OpenSSL Sockets:        0


 SQL
               heap:        0         MEMORY_USED:        0
 PAGECACHE_OVERFLOW:        0         MALLOC_SIZE:        0

Tüm işlemler için bilgileri görmek istiyorsanız şunu kullanın: ~$ adb shell dumpsys meminfo

resim açıklamasını buraya girin

dumpsys sonuçta esnek ve kullanışlı bir araçtır!

Bu aracı kullanmak istiyorsanız otomatik olarak android bildiriminize izin eklemeyi unutmayın android.permission.DUMP

Dumpsys hakkında daha fazla bilgi edinmek için tüm komutları test etmeye çalışın. Mutlu damping!


5
Bu bir yerdeki bir belgeden mi yoksa sadece kendi denemeniz mi?
brianestey

10
Ayrıca çok güzel: adb shell dumpsys etkinlik yayınları, tüm yayınları gösterir
kontroller

Kitkat ile başlayarak (sanırım) "batteryinfo" yerine "batterystats" ile çıktı ve kullanımı da farklı görünüyor.
android geliştirici

1
dumpsys inanılmaz derecede güçlü. Asla elde edemeyeceğiniz temel Android hizmetlerinin özel değerlerini bildirir.
Kevin Mark

1
ne yazık ki java programında kullanmak için kök veya sistem düzeyinde izin gerektirir.
Uşesh

60

Dumpsys ve hizmet için kaynak koduna bakarak , aşağıdakileri yürüterek mevcut hizmetlerin listesini alabilirsiniz:

adb shell service -l

Daha sonra, belirli bilgileri almak için dumpsys'e ilgilendiğiniz hizmet adını sağlayabilirsiniz. Örneğin (tüm hizmetlerin döküm bilgileri sağlamadığını unutmayın):

adb shell dumpsys activity
adb shell dumpsys cpuinfo
adb shell dumpsys battery

Kodda (ve K_Anas'ın cevabında) görebileceğiniz gibi, herhangi bir hizmet adı olmadan dumpsys'i çağırırsanız, tüm hizmetlerdeki bilgileri tek bir büyük dökümünde dökecektir:

adb shell dumpsys

Bazı hizmetler, bir argüman sağladıysanız neyin normal olarak açıklanacağını gösterecek ek argümanlar alabilir -h, örneğin:

adb shell dumpsys activity -h
adb shell dumpsys window -h
adb shell dumpsys meminfo -h
adb shell dumpsys package -h
adb shell dumpsys batteryinfo -h

13

Dumpsys hakkındaki resmi Android bilgilerine göre :

Dumpsys aracı cihazı çalışır ve sistem hizmetlerinin durumu hakkında bilgi sağlar.

Kullanılabilir hizmetlerin bir listesini almak için

adb shell dumpsys -l

1
Bunun neden reddedildiğini göremiyorum - bu yararlı bir bağlantı. Kullanılabilir hizmetlerin listesi -lLollipop'umda çalışıyor, ancak Jelly Bean'imde çalışmıyor.
starfry

1
Bu cevabın gerçek belgelere gerçek bir işaretçisi vardır. OP'nin aradığı şey olduğuna inanıyorum
Robert R Evans

Üç yıl önce verilen cevaba kıyasla yeni bir bilgi olmadığı için büyük olasılıkla aşağıya indirildi .
topher217

0

i uygulama çöktü ve işlem hala etkinse yakalamak için dumpsys kullanın. Ben kullanılan durum uzak makine uygulaması çöktü ya da değil hakkında bulmaktır.

dumpsys | grep myapp | grep "Application Error" 

veya

adb shell dumpsys | grep myapp | grep Error

ya da yardımcı olan herhangi bir şey ... vs

Uygulama çalışmıyorsa sonuç olarak hiçbir şey almazsınız. Uygulama durduğunda mesaj android tarafından ekranda gösterilir, işlem hala aktiftir ve " ps " komutu veya başka bir şeyle kontrol ederseniz, işlem durumunun herhangi bir hata veya kilitlenme anlamı göstermediğini göreceksiniz. Ancak iletiyi kapatmak için düğmeyi tıklattığınızda, uygulama işlemi işlem listesinden temizlenir. böylece uygulamada herhangi bir kod olmadan kilitlenme durumunu yakalamak zor. ama dumpsys size yardımcı olur.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.