web-dev-qa-db-fra.com

Qu'est-ce que l'outil Android ADB Shell "dumpsys" et quels sont ses avantages?

Je cherche la liste complète des commandes ADB Shell dumpsys avec une explication complète de toutes les commandes.

Où puis-je trouver cette information?

132
Vishwanath.M

Qu'est-ce que dumpsys et quels sont ses avantages

dumpsys est un outil Android qui s'exécute sur le périphérique et diffuse des informations intéressantes sur l'état des services système.

Avantages évidents:

  1. Possibilité d'obtenir facilement des informations sur le système dans une simple représentation sous forme de chaîne.
  2. Possibilité d'utiliser les statistiques de stockage, CPU, RAM, batterie, stockées pour créer de jolis graphiques, ce qui vous permettra de vérifier comment votre application affecte l'ensemble du périphérique!

Quelles informations pouvons-nous extraire de la commande Shell de dumpsys et comment nous pouvons l'utiliser

Si vous exécutez dumpsys, vous verrez une tonne d'informations système. Mais vous ne pouvez utiliser que des parties distinctes de ce grand vidage.

pour voir toutes les "sous-commandes" de dumpsys, faites:

dumpsys | grep "DUMP OF SERVICE"

Sortie:

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:

Quelques exemples de dumping et sortie

1) Obtenir toutes les statistiques possibles de la batterie:

$~ adb Shell dumpsys battery

Vous obtiendrez une sortie:

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) Obtenir des informations wifi

~$ adb Shell dumpsys wifi

Sortie:

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) Obtenir des informations sur le processeur

~$ adb Shell dumpsys cpuinfo

Sortie:

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) Obtenir des informations d'utilisation de la mémoire

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

Sortie:

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

Si vous voulez voir les informations pour tous les processus, utilisez ~$ adb Shell dumpsys meminfo

enter image description here

dumpsys est finalement un outil flexible et utile!

Si vous souhaitez utiliser cet outil, n'oubliez pas d'ajouter une autorisation dans votre Android manifeste automatiquement Android.permission.DUMP

Essayez de tester toutes les commandes pour en savoir plus sur dumpsys. Bon dumping!

239
K_Anas

En regardant le code source de dumpsys et service , vous pouvez obtenir la liste des services disponibles en exécutant ceci:

adb Shell service list

Vous pouvez ensuite fournir le nom du service qui vous intéresse à Dumpsys pour obtenir les informations spécifiques. Par exemple (notez que tous les services ne fournissent pas d'informations de vidage):

adb Shell dumpsys activity
adb Shell dumpsys cpuinfo
adb Shell dumpsys battery

Comme vous pouvez le voir dans le code (et dans la réponse de K_Anas), si vous appelez dumpsys sans nom de service, les informations relatives à tous les services seront affichées dans un seul grand dump:

adb Shell dumpsys

Certains services peuvent recevoir des arguments supplémentaires indiquant ce qui doit normalement être expliqué si vous avez fourni un argument -h, par exemple:

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
59
Joe

Selon informations officielles Android sur dumpsys :

L'outil dumpsys s'exécute sur le périphérique et fournit des informations sur l'état des services système.

Pour obtenir une liste des services disponibles, utilisez

adb Shell dumpsys -l
13
lujop

j'utilise dumpsys pour attraper si l'application est plantée et que le processus est toujours actif. la situation que j’ai utilisée est de trouver à propos de l’application de la machine distante est écrasée ou non.

dumpsys | grep myapp | grep "Application Error" 

ou

adb Shell dumpsys | grep myapp | grep Error

ou tout ce qui peut aider ... etc

si l'application ne fonctionne pas, vous n'obtiendrez rien. Lorsque l'application est arrêtée, Android affiche le message à l'écran, le processus est toujours actif et si vous vérifiez avec la commande "ps" ou toute autre chose, vous verrez que l'état du processus ne montre aucune erreur ni aucun crash. Mais lorsque vous cliquez sur le bouton pour fermer le message, le processus d'application sera nettoyé de la liste des processus. il est donc difficile de trouver l'état de plantage sans code dans l'application. mais dumpsys vous aide.

0
Engin OZTURK