Apa alat "dumpsys" shell Android ADB dan apa manfaatnya?

140

Saya mencari daftar lengkap dumpsysperintah shell ADB dengan penjelasan lengkap dari semua perintah.

Di mana saya dapat menemukan informasi ini?

Vishwanath.M
sumber

Jawaban:

247

Apa dumpsys dan apa manfaatnya

dumpsys adalah alat android yang berjalan di perangkat dan memberikan informasi menarik tentang status layanan sistem.

Manfaat yang jelas:

  1. Kemungkinan untuk dengan mudah mendapatkan informasi sistem dalam representasi string sederhana.
  2. Kemungkinan untuk menggunakan CPU, RAM, Baterai, statistik penyimpanan yang dibuang untuk grafik yang cantik, yang akan memungkinkan Anda untuk memeriksa bagaimana aplikasi Anda memengaruhi keseluruhan perangkat!

Informasi apa yang dapat kita ambil dari perintah shell dumpsys dan bagaimana kita dapat menggunakannya

Jika Anda menjalankan dumpsys, Anda akan melihat banyak informasi sistem. Tetapi Anda hanya dapat menggunakan bagian terpisah dari dump besar ini.

untuk melihat semua "sub-perintah" dari dumpsys lakukan:

dumpsys | grep "DUMP OF SERVICE"

Keluaran:

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:

Beberapa contoh dan hasil Pembuangan

1) Mendapatkan semua statistik baterai yang mungkin:

$~ adb shell dumpsys battery

Anda akan mendapatkan output:

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) Mendapatkan informasi wifi

~$ adb shell dumpsys wifi

Keluaran:

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) Mendapatkan info CPU

~$ adb shell dumpsys cpuinfo

Keluaran:

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) Mendapatkan informasi penggunaan memori

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

Keluaran:

** 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

Jika Anda ingin melihat info untuk semua proses, gunakan ~$ adb shell dumpsys meminfo

masukkan deskripsi gambar di sini

dumpsys pada akhirnya adalah alat yang fleksibel dan bermanfaat!

Jika Anda ingin menggunakan alat ini jangan lupa untuk menambahkan izin ke manifes Android Anda secara otomatis android.permission.DUMP

Cobalah untuk menguji semua perintah untuk mempelajari lebih lanjut tentang dumpsys. Selamat membuang!

K_Anas
sumber
5
Apakah ini dari dokumen di suatu tempat atau hanya eksperimen Anda sendiri?
brianestey
10
Juga sangat bagus adalah: siaran aktivitas adb shell dumpsys, menunjukkan semua siaran
joecks
dimulai dengan Kitkat (saya pikir), "batteryinfo" diganti dengan "batterystats", dan output serta penggunaannya juga tampak berbeda.
pengembang android
1
dumpsys sangat kuat. Ini melaporkan nilai-nilai pribadi dari layanan Android inti yang biasanya tidak akan pernah Anda dapatkan.
Kevin Mark
1
Sayangnya itu membutuhkan izin level root atau sistem untuk digunakan dalam program java.
umesh
60

Melihat kode sumber untuk dumpsys dan layanan , Anda bisa mendapatkan daftar layanan yang tersedia dengan menjalankan yang berikut:

adb shell service -l

Anda kemudian dapat memberikan nama layanan yang Anda tertarik ke dumpsys untuk mendapatkan informasi spesifik. Misalnya (perhatikan bahwa tidak semua layanan menyediakan informasi pembuangan):

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

Seperti yang Anda lihat di kode (dan dalam jawaban K_Anas), jika Anda memanggil dumpsys tanpa nama layanan, itu akan membuang info pada semua layanan dalam satu dump besar:

adb shell dumpsys

Beberapa layanan dapat menerima argumen tambahan tentang apa yang ditampilkan yang biasanya dijelaskan jika Anda memberikan -hargumen, misalnya:

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
Joe
sumber
13

Menurut informasi Android resmi tentang dumpsys :

Alat dumpsys berjalan pada perangkat dan memberikan informasi tentang status layanan sistem.

Untuk mendapatkan daftar layanan yang tersedia gunakan

adb shell dumpsys -l
lujop
sumber
1
Saya tidak dapat melihat mengapa ini diturunkan - ini tautan yang bermanfaat Daftar layanan yang tersedia -lberfungsi pada Lollipop saya tetapi tidak pada Jelly Bean saya.
starfry
1
Jawaban ini memiliki pointer aktual ke dokumentasi aktual. Saya percaya inilah yang dicari OP
Robert R Evans
Itu kemungkinan diturunkan karena tidak ada informasi baru dibandingkan dengan jawaban yang diberikan tiga tahun sebelumnya.
topher217
0

saya menggunakan dumpsys untuk menangkap jika aplikasi macet dan prosesnya masih aktif. Situasi yang saya gunakan adalah mencari aplikasi mesin jarak jauh rusak atau tidak.

dumpsys | grep myapp | grep "Application Error" 

atau

adb shell dumpsys | grep myapp | grep Error

atau apapun yang membantu ... dll

jika aplikasi tidak berjalan, Anda tidak akan mendapatkan hasil apa pun. Ketika aplikasi dihentikan pesan ditampilkan di layar oleh android, proses masih aktif dan jika Anda memeriksa melalui perintah " ps " atau apa pun, Anda akan melihat status proses tidak menunjukkan kesalahan atau makna crash. Tetapi ketika Anda mengklik tombol untuk menutup pesan, proses aplikasi akan dibersihkan dari daftar proses. jadi menangkap keadaan macet tanpa kode dalam aplikasi sulit ditemukan. tetapi dumpsys membantu Anda.

Engin OZTURK
sumber