dumpsys命令用法

Posted 码农乐园

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了dumpsys命令用法相关的知识,希望对你有一定的参考价值。

1.1 dumpsys命令用法

可通过dumpsys命令查询系统服务的运行状态(对象的成员变量属性值),命令格式:dumpsys 服务名, 例如:

dumpsys activity //查询AMS服务相关信息
dumpsys window //查询WMS服务相关信息
dumpsys cpuinfo //查询CPU情况
dumpsys meminfo //查询内存情况

可查询的服务有很多,可通过下面任一命令查看当前系统所支持的dump服务:

adb shell dumpsys -l
adb shell service list

1.2 系统服务

表一:

服务名类名功能
activityActivityManagerServiceAMS相关信息
packagePackageManagerServicePMS相关信息
windowWindowManagerServiceWMS相关信息
inputInputManagerServiceIMS相关信息
powerPowerManagerServicePMS相关信息
batterystatsBatterystatsService电池统计信息
batteryBatteryService电池信息
alarmAlarmManagerService闹钟信息
dropboxDropboxManagerService调试相关
procstatsProcessStatsService进程统计
cpuinfoCpuBinderCPU
meminfoMemBinder内存
gfxinfoGraphicsBinder图像
dbinfoDbBinder数据库

表二:

服务名功能
SurfaceFlinger图像相关
appopsapp使用情况
permission权限
processinfo进程服务
batteryproperties电池相关
audio查看声音信息
netstats查看网络统计信息
diskstats查看空间free状态
jobscheduler查看任务计划
wifiwifi信息
diskstats磁盘情况
usagestats用户使用情况
devicestoragemonitor设备信息

二、Activity场景

dumpsys activity,用于查询AMS服务相关信息,可跟不同的参数,更多信息见文章AMS之dumpsys篇

下面以新浪微博App作为实例,由于输出结果较多,每个场景截图只挑选部分重要的信息。

场景1:查询某个App所有的Service状态

dumpsys activity s com.sina.weibo

解读:

  • Service类名为com.morgoo.droidplugin.PluginManagerService

  • 运行在进程pid=7220,进程名为com.sina.weibo,uid=10094

  • 通过bindService连接该服务的进程pid=7306,进程名为com.sina.weibo:PluginP03

当然还有packageName,baseDir(apk路径),dataDir(apk数据路径),createTime等各种信息。另外,新浪微博采用的是360开源的android插件机制(com.morgoo.droidplugin),主要用于hotfix等功能。

场景2:查询某个App所有的广播状态

dumpsys activity b com.sina.weibo

解读:

  • android.intent.action.SCREEN_ON代表手机亮屏广播;

  • 接收该广播的receiver有很多个,其中一个所在进程为pid=7220,进程名为com.sina.weibo

场景3:查询某个App所有的Activity状态

输出结果较多,尤其是View Hierarchy,下面截取部分:

dumpsys activity a com.sina.weibo

解读:

  • 格式:TaskRecordHashcode #TaskId Affinity UserId=0 Activity个数=1;所以上图信息解析后就是TaskId=1802,Affinity=com.sina.weibo,当前Task中Activity个数为1。

  • effectiveUid为当前task所属Uid,mCallingUid为调用者Uid=u0a94,mCallingPackage为调用者包名,这里是com.sina.weibo

  • realActivity:task中的已启动的Activity组件名com.sina.weibo/.SplashActivity

场景4:查询某个App的进程状态

dumpsys activity p com.sina.weibo

  • 格式:ProcessRecordHashcode pid:进程名/uid,进程pid=7306,进程名为com.sina.weibo:PluginP03,uid=10094.

  • 该进程中还有Services,Connections, Providers, Receivers,可以看出该进程是没有Activity的进程。

其他

还有很多场景,会用到不同的参数,这里就不再一一列举,建议大家多去尝试,慢慢地就更加熟练,再比如:

dumpsys activity top //当前界面app状态
dumpsys activity oom //查看进程状态

以上是关于dumpsys命令用法的主要内容,如果未能解决你的问题,请参考以下文章

adb shell dumpsys 命令

android调试——教你用dumpsys命令调试

Android中AM、PM、dumpsys命令使用总结

Android 进阶——Framework 核心之dumpsys命令浅析

Android 进阶——Framework 核心之dumpsys命令浅析

am start 启动activity 命令