Android ADB shell“dumpsys”工具是什么?它有什么好处?

我正在查找完整的ADB shell dumpsys命令列表,其中包含所有命令的完整说明。

我在哪里可以find这些信息?

什么是垃圾,它有什么好处

dumpsys是一个在设备上运行的android工具,可以转储有关系统服务状态的有趣信息。

明显的好处:

  1. 以简单的string表示方式轻松获取系统信息的可能性。
  2. 可以使用倾销的CPU,RAM,电池,存储统计一个漂亮的图表,这将允许您检查您的应用程序如何影响整体设备!

我们可以从dumpsys shell命令中检索什么信息,以及我们如何使用它

如果你运行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)获取wifi信息

 ~$ 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.xx netmask 255.255.255.0 dns1 192.168.xx dns2 8.8.8.8 DHCP server 192.168.xx 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信息

 ~$ 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

尝试testing所有命令以了解有关dumpsys的更多信息。 快乐倾倒!

查看dumpsys和service的源代码,可以通过执行以下命令获取可用的服务列表:

 adb shell service list 

然后,您可以将您感兴趣的服务名称提供给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 

根据关于dumpsys的官方Android信息 :

dumpsys工具在设备上运行,并提供有关系统服务状态的信息。

获取可用服务使用的列表

 adb shell dumpsys -l 

我使用dumpsys来捕捉应用程序崩溃,进程仍然活跃。 我用它的情况是发现有关远程机器应用程序崩溃或不。

 dumpsys | grep myapp | grep "Application Error" 

要么

 adb shell dumpsys | grep myapp | grep Error 

或任何有助于…等等

如果应用程序没有运行,你将不会得到任何结果。 当应用程序停止时,android会在屏幕上显示消息,进程仍然处于活动状态,如果通过“ ps ”命令或其他任何东西进行检查,则会看到进程状态没有显示任何错误或崩溃的含义。 但是当你点击buttonclosures消息时,应用程序进程将从进程列表中清除。 所以很难find在应用程序中没有任何代码的捕获崩溃状态。 但是dumpsys可以帮助你。