一.概述

在Android 开发过程中,为了查询当前手机运行时状态的变化值,需要通过dumpsys activity命令来完成,该方法最终是调用AMS.dump()方法。

dumpsys命令用法简要介绍过dumpsys命令 的基本用法,以及系统服务列表信息,那么本文重点介绍AMS。 根据dumpsys activity传递不同的参数, 对于AMS.dump便会输出相应的对象信息。 具体可以跟哪些参数.

1.1 命令格式

dumpsys activity  [options]  [WHAT]

其中options为可选项,以-开头, 主要有以下几类:

options含义

-a包括所有可用Server状态

-c包括Client状态,即App端情况

-p PACKAGE限定输出指定包名

1.2 WHAT参数

列举常见的WHAT参数:

序号WHAT解释对应源码

WHAT                                                  解释                      对应的源码

1  a[ctivities]                                         activity状态           dumpActivitiesLocked()

2   b[roadcasts] [PACKAGE_NAME]   broadcast状态       dumpBroadcastsLocked()

3  s[ervices] [COMP_SPEC …]           service状态           newServiceDumperLocked().dumpLocked

4   prov[iders] [COMP_SPEC …]       content provider状态   dumpProwevidersLocked()

5  p[rocesses]   [PACKAGE_NAME]      进程状态                  dumpProcessesLocked()

6   o[om]                                                    内存管理               dumpOomLocked()

7   i[ntents] [PACKAGE_NAME]    pending intent状态           dumpPendingIntentsLocked()

8   r[ecents]                                                 最近                    activitydumpRecentsLocked()

9      perm[issions]                                URI授权情况               dumpPermissionsLocked()

10     all所有                                           activities信息               dumpActivity()

11       top                                              顶部activity信息            dumpActivity()

12        package                                   package相关信息                dump()

其中PACKAGE_NAME是指可跟包名,COMP_SPEC是指可跟具体组件信息,中括号是指缩写字母;

二. dumpsys activity

前面介绍dumpsys activity根据后面跟着的不同参数则输出相应的内容,当不跟任何参数, dumpsys activity等价于依次输出下面8条命令:

1)dumpsys activity intents

2) dumpsys activity broadcasts //广播

3) dumpsys activity providers  //provider

4) dumpsys activity permissions

5) dumpsys activity services  //服务

6) dumpsys activity recents

7) dumpsys activity activities //activity

8) dumpsys activity processes

依次简要说明这8条命令:

2.1 intents

输出对象:

PendingIntentRecord

2.2 broadcasts

主要输出的对象:

1)ReceiverList, BroadcastFilter,

2)IntentResolver,

3)BroadcastQueue, BroadcastRecord

4)Handler, Looper

2.3 provider

主要输出的对象:

1)ProviderMap

2)ContentProviderRecord, ContentProviderConnection

2.4 permissions

主要输出的对象:

1)UriPermission

2.5 Service

主要输出的对象:

1)ActiveServices,

2)ServiceRecord, ConnectionRecord,ProcessRecord

2.6 recents

主要输出的对象:

TaskRecord

2.7activities

主要输出的对象:

1)ActivityStackSupervisor, ActivityStack,

2)TaskRecord, ActivityRecord

3)ActivityThread, Activity

4)ViewRootImpl

5)Looper, MessageQueue

2.8 processes

主要输出的对象:

1)AMS各种进程对象

2)ProcessRecord, UidRecord

3 dumpsys 使用

adb shell dumpsys,默认打印出当前系统所有service信息,在后面可加上具体的服务名

需要列出当前运行的服务,可运行:

adb shell dumpsys | findstr DUMP

下面简单列下我用到的一些命令...(在编写脚本时需要获取一些状态值供判断用)

获取设备分辨率:

adb shell dumpsys display | findstr DisplayDeviceInfo

DisplayDeviceInfo{"内置屏幕": 1080 x 1920, 55.0 fps, density 480, 464.949 x 468.923 dpi...

获取设备电池信息:

adb shell dumpsys battery

Current Battery Service state:

AC powered: false

USB powered: true

Wireless powered: false

status: 2 #电池状态

health: 2

present: true

level: 34 #电量

scale: 100

voltage: 3848

current now: -427943

temperature: 280 #电池温度

technology: Li-ion

获取cpu信息:

adb shell dumpsys cpuinfo

获取内存信息:

adb shell dumpsys meminfo

要获取具体应用的内存信息,可加上包名

adb shell dumpsys meminfo PACKAGE_NAME

获取Activity信息:

adb shell dumpsys activity

加上-h可以获取帮助信息

获取当前界面的UI信息,可以用:

adb shell dumpsys activity top

要获取当前界面的Activity:

adb shell dumpsys activity top | findstr ACTIVITY

获取package信息:

adb shell dumpsys package

加上-h可以获取帮助信息

获取某个包的信息:

adb shell dumpsys package PACKAGE_NAME

获取通知信息:

adb shell dumpsys notification

NotificationRecord(0x44217920: pkg=com.sohu.newsclient useron=0x7f0201b5 / com.tencent.news:drawable/icon

pri=0 score=0

contentIntent=PendingIntent{4294d748: PendingIntentRecord{44088e90 com.tencent.news startActivity}}

deleteIntent=null

tickerText=null

contentView=android.widget.RemoteViews@441fc810

defaults=0x00000001 flags=0x00000010

sound=null

vibrate=null

led=0x00000000 onMs=0 offMs=0

extras={

android.title=农业部:中国超级稻亩产超1吨

android.subText=null

android.showChronometer=false

android.icon=2130837941

android.text=农业部今日通报称,经专家测产,袁隆平领衔培育的中国“超级稻”亩产过千公斤,创造1026.7公斤新纪录。详情>>

android.progress=0

android.progressMax=0

android.showWhen=true

android.infoText=null

android.progressIndeterminate=false

android.scoreModified=false

}

获取wifi信息:

adb shell dumpsys wifi

可以获取到当前连接的wifi名、搜索到的wifi列表、wifi强度等

获取电源管理信息:

adb shell dumpsys power

可以获取到是否处于锁屏状态:mWakefulness=Asleep或者mScreenOn=false

亮度值:mScreenBrightness=255

屏幕休眠时间:Screen off timeout: 60000 ms

屏幕分辨率:mDisplayWidth=1440,mDisplayHeight=2560

获取电话信息:

adb shell dumpsys telephony.registry

可以获取到电话状态,例如

mCallState值为0,表示待机状态、1表示来电未接听状态、2表示电话占线状态

mCallForwarding=false #是否启用呼叫转移

mDataConnectionState=2 #0:无数据连接 1:正在创建数据连接 2:已连接

mDataConnectionPossible=true  #是否有数据连接

mDataConnectionApn=  #APN名称

android系统(3)---dumpsys 知识学习相关推荐

  1. Android系统音量调节策略学习总结

    二.外设类型 USB音箱底座 蓝牙音箱 3.5mm线控耳机 三.相关术语 track volume: 单个App设置音量时设置的是这个,它只影响本App的音量. stream volume: 设置某一 ...

  2. Android 系统 wifi基础知识

    第3章 Wi-Fi基础知识 本章所涉及的源代码文件名及位置 ·wireless.h external/ kernel-headers/ original/ linux/ wireless.h ·dri ...

  3. Android自定义控件前导基础知识学习(一)——Canvas

    概述: 我们时常会遇到一些需要利用画图来实现的功能.例如一些常见的几何图形--点.直线.弧.圆.椭圆.文字.矩形.多边形.曲线.圆角矩形,总不能遇到 一个几何图形就用图片来代替吧.这样我们的手机肯定会 ...

  4. Android系统源代码情景分析:基础知识

    老罗(罗升阳)发表在的InfoQ上的好文,最新在学习Android,转载一下,方便学习. 老罗的CSDN blog链接:http://blog.csdn.net/Luoshengyang/ 原文链接: ...

  5. [附源码]Java计算机毕业设计SSM古诗词知识学习系统

    项目运行 环境配置: Jdk1.8 + Tomcat7.0 + Mysql + HBuilderX(Webstorm也行)+ Eclispe(IntelliJ IDEA,Eclispe,MyEclis ...

  6. Android系统架构开篇

    Android系统庞大且错综复杂,Gityuan带领大家初探Android系统整体架构,一窥其全貌. 一.引言 本文作为Android系统架构的开篇,起到提纲挈领的作用,从系统整体架构角度概要讲解An ...

  7. 嵌入式linux和嵌入式android系统有什么区别和联系?

    转自:http://bbs.eeworld.com.cn/thread-430437-1-1.html 这个问题很多人问,尤其是初入嵌入式的菜鸟.其实大家都认为android是java,已经不是lin ...

  8. android phone驱动_一文带你掌握 Android 系统架构

    引言 本文作为Android系统架构的开篇,起到提纲挈领的作用,从系统整体架构角度概要讲解Android系统的核心技术点,带领大家初探Android系统全貌以及内部运作机制.虽然Android系统非常 ...

  9. android ios 对比 组件_iOS系统和Android系统全面对比

    摘  要 iOS和Android占据当今智能移动终端市场的半壁江山,结合<嵌入式系统>学习的软硬件协同开发等理念,从硬件.软件.用户三个角度进行iOS与Android的比较.其中,硬件选择 ...

最新文章

  1. windows 域环境应用---VNC远程协助工具的使用
  2. CSDN湘苗培优|高起点步入职场,快人一步!
  3. 业界 | 复杂出行场景下,滴滴如何将AI融入地图系统
  4. 尝试使用jBPM Console NG(测试版)
  5. 有关Cassandra节点之间的通信:Gossip【译】
  6. 怎样教育孩子,能让孩子有更好的学习?
  7. 读《JavaScript语言精粹(修订版)》心得
  8. linux运维实战案例,Linux运维实战练习案例20151220~20151231
  9. 资源---2020考研---英语网站---资料3(考研英语,英语学习。宣言:自从用了这个英语网站,七大姑八大姨开始担心他家孩子比不过我了~~~~~~~~~FT中文网)
  10. C++中vector初始化
  11. 简述autocad在测绘工程中的应用_AutoCAD在工程测绘制图中的应用
  12. 全国24省50万亿元投资在路上:后疫情时代碰撞新基建,AI难再“一招鲜”
  13. ttl传输种过期_Ping提示TTL传输中过期导致Web不能访问
  14. vscode上的git三部曲+git pull操作
  15. No executable file specified.Use the “file“ or “exec-file“ command.
  16. 【小家java】java8新特性之---全新的日期、时间API(JSR 310规范),附SpringMVC、Mybatis中使用JSR310的正确姿势
  17. 美团机器学习实践 密码_机器学习遇到密码学的地方
  18. 玩转Ubuntu(磁盘管理工具GParted)
  19. zeppelin 连接 spark报错
  20. VB.NET入门(一)

热门文章

  1. linux默认安装数据库密码是多少,Linux服务器上安装MySql数据库(默认安装,密码为空),首次使用需要修改密码(示例代码)...
  2. Spring-第2天
  3. Redis的SETNX
  4. Spark Scala当中reduceByKey的用法
  5. 在mac上安装python版的hanlp/JPype1
  6. Resource Hacker
  7. qrcode-php生成二维码
  8. Charting for WinForms控件发布v3.5版本
  9. Infragistics.NetAdvantage.WinForm.2012.v2 ComboBoxEditor的小Bug
  10. V1.8 - 2006.09.09