Công cụ Android ADB shell dumpsys là gì và lợi ích của nó là gì?


140

Tôi đang tìm danh sách đầy đủ các dumpsyslệnh shell ADB với lời giải thích đầy đủ về tất cả các lệnh.

Tôi có thể tìm thông tin này ở đâu?

Câu trả lời:


247

Dumpsys là gì và lợi ích của nó là gì

dumpsys là một công cụ Android chạy trên thiết bị và bỏ thông tin thú vị về trạng thái của các dịch vụ hệ thống.

Lợi ích rõ ràng:

  1. Khả năng dễ dàng có được thông tin hệ thống trong một biểu diễn chuỗi đơn giản.
  2. Khả năng sử dụng CPU, RAM, Pin, chỉ số lưu trữ bị đổ cho một biểu đồ đẹp, điều này sẽ cho phép bạn kiểm tra xem ứng dụng của bạn ảnh hưởng đến tổng thể thiết bị như thế nào!

Chúng tôi có thể lấy thông tin gì từ lệnh shell dumpsys và cách chúng tôi có thể sử dụng thông tin đó

Nếu bạn chạy dumpsys, bạn sẽ thấy rất nhiều thông tin hệ thống. Nhưng bạn chỉ có thể sử dụng các phần riêng biệt của bãi rác lớn này.

để xem tất cả các "tiểu ban" của bãi rác làm:

dumpsys | grep "DUMP OF SERVICE"

Đầu ra:

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:

Một số ví dụ và sản lượng bán phá giá

1) Lấy tất cả các thống kê pin có thể:

$~ adb shell dumpsys battery

Bạn sẽ nhận được đầu ra:

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) Nhận thông tin wifi

~$ adb shell dumpsys wifi

Đầu ra:

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) Lấy thông tin CPU

~$ adb shell dumpsys cpuinfo

Đầu ra:

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) Nhận thông tin sử dụng bộ nhớ

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

Đầu ra:

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

Nếu bạn muốn xem thông tin cho tất cả các quy trình, hãy sử dụng ~$ adb shell dumpsys meminfo

nhập mô tả hình ảnh ở đây

dumpsys cuối cùng là công cụ linh hoạt và hữu ích!

Nếu bạn muốn sử dụng công cụ này, đừng quên tự động thêm quyền vào bảng kê khai Android của bạn android.permission.DUMP

Cố gắng kiểm tra tất cả các lệnh để tìm hiểu thêm về bãi rác. Chúc mừng bán phá giá!


5
Đây là từ một tài liệu ở đâu đó hay chỉ là thử nghiệm của riêng bạn?
brianestey

10
Cũng rất hay là: adb shell dumpsys hoạt động phát sóng, hiển thị tất cả các chương trình phát sóng
tham gia vào

bắt đầu với Kitkat (tôi nghĩ), "pininfo" đã được thay thế bằng "batterystats", và sản lượng và cách sử dụng của nó cũng có vẻ khác nhau.
nhà phát triển Android

1
bãi rác là vô cùng mạnh mẽ. Nó báo cáo các giá trị riêng tư của các dịch vụ Android cốt lõi mà bạn thường không bao giờ có thể có được.
Kevin Mark

1
Thật không may, nó đòi hỏi quyền root hoặc cấp hệ thống để sử dụng trong chương trình java.
umesh

60

Nhìn vào mã nguồn cho bãi rácdịch vụ , bạn có thể nhận được danh sách các dịch vụ có sẵn bằng cách thực hiện như sau:

adb shell service -l

Sau đó, bạn có thể cung cấp tên dịch vụ mà bạn quan tâm đến bãi rác để có được thông tin cụ thể. Ví dụ: (lưu ý rằng không phải tất cả các dịch vụ đều cung cấp thông tin kết xuất):

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

Như bạn có thể thấy trong mã (và trong câu trả lời của K_Anas), nếu bạn gọi dumpsys mà không có bất kỳ tên dịch vụ nào, nó sẽ kết xuất thông tin trên tất cả các dịch vụ trong một bãi rác lớn:

adb shell dumpsys

Một số dịch vụ có thể nhận được các đối số bổ sung về nội dung sẽ hiển thị thông thường được giải thích nếu bạn cung cấp một -hđối số, ví dụ:

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

Theo thông tin chính thức của Android về bãi rác :

Công cụ dumpsys chạy trên thiết bị và cung cấp thông tin về trạng thái của các dịch vụ hệ thống.

Để có được một danh sách các dịch vụ có sẵn sử dụng

adb shell dumpsys -l

1
Tôi không thể hiểu tại sao điều này bị hạ cấp - đó là một liên kết hữu ích. Danh sách các dịch vụ khả dụng -lhoạt động trên Lollipop của tôi nhưng không có trên Jelly Bean của tôi.
starfry

1
Câu trả lời này có một con trỏ thực tế đến tài liệu thực tế. Tôi tin rằng đây là những gì OP đang tìm kiếm
Robert R Evans

Nó có khả năng bị hạ thấp vì không có thông tin mới so với câu trả lời được đưa ra ba năm trước đó.
topher217

0

Tôi sử dụng dumpsys để bắt nếu ứng dụng bị lỗi và quá trình vẫn hoạt động. tình hình tôi đã sử dụng nó là để tìm về ứng dụng máy từ xa có bị lỗi hay không.

dumpsys | grep myapp | grep "Application Error" 

hoặc là

adb shell dumpsys | grep myapp | grep Error

hoặc bất cứ điều gì giúp ...

nếu ứng dụng không chạy, bạn sẽ không nhận được kết quả gì. Khi ứng dụng bị dừng, mớ hỗn độn được hiển thị trên màn hình bởi android, quá trình vẫn hoạt động và nếu bạn kiểm tra qua lệnh " ps " hoặc bất cứ điều gì khác, bạn sẽ thấy trạng thái quá trình không hiển thị bất kỳ lỗi hoặc ý nghĩa sự cố. Nhưng khi bạn nhấp vào nút để đóng tin nhắn, quy trình ứng dụng sẽ được xóa khỏi danh sách quy trình. Vì vậy, việc bắt trạng thái sự cố mà không có bất kỳ mã nào trong ứng dụng là khó tìm. nhưng dumpsys giúp bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.