Что такое инструмент dumpsys оболочки Android ADB и каковы его преимущества?

142

Я ищу полный список dumpsysкоманд оболочки ADB с полным объяснением всех команд.

Где я могу найти эту информацию?

Вишванатх.М
источник

Ответы:

250

Что такое dumpsys и в чем его преимущества

dumpsys - это инструмент Android, который запускается на устройстве и выводит интересную информацию о состоянии системных служб.

Очевидные преимущества:

  1. Возможность легко получить системную информацию в простом строковом представлении.
  2. Возможность использовать выгруженный CPU, RAM, Battery, статистику хранилища для красивых графиков, которые позволят вам проверить, как ваше приложение влияет на устройство в целом!

Какую информацию мы можем получить из команды оболочки dumpsys и как мы можем ее использовать

Если вы запустите dumpsys, вы увидите массу системной информации. Но вы можете использовать только отдельные части этой большой свалки.

чтобы увидеть все "подкоманды" dumpsys, выполните:

dumpsys | grep "DUMP OF SERVICE"

Выход:

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:

Некоторые примеры демпинга и вывод

1) Получение всей возможной статистики батареи:

$~ adb shell dumpsys battery

Вы получите результат:

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) Получение информации о Wi-Fi

~$ adb shell dumpsys wifi

Выход:

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) Получение информации о процессоре

~$ adb shell dumpsys cpuinfo

Выход:

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) Получение информации об использовании памяти

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

Выход:

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

Если вы хотите увидеть информацию обо всех процессах, используйте ~$ adb shell dumpsys meminfo

введите описание изображения здесь

dumpsys - в конечном итоге гибкий и полезный инструмент!

Если вы хотите использовать этот инструмент, не забудьте автоматически добавить разрешение в манифест Android. android.permission.DUMP

Попробуйте протестировать все команды, чтобы узнать больше о dumpsys. Удачного свалки!

K_Anas
источник
5
Это откуда-то из документа или просто ваши собственные эксперименты?
brianestey
10
Также очень приятно: трансляции активности adb shell dumpsys, показ всех трансляций
joecks
начиная с Kitkat (я думаю), "batteryinfo" был заменен на "batterystats", и его вывод и использование также кажутся другими.
разработчик Android
1
dumpsys невероятно мощный. Он сообщает о частных ценностях основных сервисов Android, которые обычно невозможно получить.
Кевин Марк
1
к сожалению, для использования в java-программе требуется разрешение корневого или системного уровня.
umesh
60

Просматривая исходный код dumpsys и service , вы можете получить список доступных сервисов, выполнив следующие действия:

adb shell service -l

Затем вы можете указать имя интересующей вас службы в dumpsys, чтобы получить конкретную информацию. Например (обратите внимание, что не все службы предоставляют информацию о дампе):

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

Как вы можете видеть в коде (и в ответе K_Anas), если вы вызываете dumpsys без какого-либо имени службы, он сбрасывает информацию обо всех службах в одном большом дампе:

adb shell dumpsys

Некоторые службы могут получать дополнительные аргументы о том, что показывать, что обычно объясняется, если вы указали -hаргумент, например:

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

Согласно официальной информации Android о dumpsys :

Инструмент dumpsys запускается на устройстве и предоставляет информацию о состоянии системных служб.

Чтобы получить список доступных услуг, воспользуйтесь

adb shell dumpsys -l
Lujop
источник
1
Я не понимаю, почему это было отклонено - это полезная ссылка. Список доступных сервисов -lработает на моем Lollipop, но не на моем Jelly Bean.
starfry
1
В этом ответе есть фактический указатель на фактическую документацию. Я считаю, что это именно то, что искала ОП,
Роберт Р. Эванс,
Вероятно, он был отклонен, поскольку нет новой информации по сравнению с ответом, данным за три года до этого.
topher217 02
0

Я использую dumpsys, чтобы поймать, если приложение разбилось, а процесс все еще активен. Ситуация, которую я использовал, - это узнать о том, что приложение удаленной машины разбилось или нет.

dumpsys | grep myapp | grep "Application Error" 

или

adb shell dumpsys | grep myapp | grep Error

или что-нибудь, что помогает ... и т. д.

если приложение не запущено, вы ничего не получите. Когда приложение остановлено, сообщение отображается на экране Android, процесс все еще активен, и если вы проверите с помощью команды « ps » или чего-то еще, вы увидите, что состояние процесса не показывает никаких ошибок или сбоев. Но когда вы нажимаете кнопку, чтобы закрыть сообщение, процесс приложения будет удален из списка процессов. поэтому трудно найти состояние сбоя без кода в приложении. но dumpsys вам поможет.

Энгин ОЗТУРК
источник