android 系统开发(4)---AMS 的dumpsys

一.概述

在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名称

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 159,015评论 4 362
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,262评论 1 292
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 108,727评论 0 243
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,986评论 0 205
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,363评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,610评论 1 219
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,871评论 2 312
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,582评论 0 198
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,297评论 1 242
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,551评论 2 246
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,053评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,385评论 2 253
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,035评论 3 236
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,079评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,841评论 0 195
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,648评论 2 274
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,550评论 2 270

推荐阅读更多精彩内容

  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 170,569评论 25 707
  • 地图-自定义大头针 关于大头针视图分两类: MKPinAnnotationView : apple自带的大头针,可...
    楚简约阅读 2,090评论 0 4
  • 更能寐,几载韶华?匆匆春又来归。沫春长对雪消融,何况碧水东流。 见说道,人生得意处处欢。飞花暗度。计而今迫切,钓岛...
    海焰阅读 402评论 0 0
  • 3月11日,周六,肌无力。 和我在成都的街头走一走,唔噢唔噢唔噢… 阴天加上天亮的晚,路上一片寂静,出发。 越过乐...
    lapetite33明天在哪里阅读 216评论 0 0
  • 自李俊彦同学17年09月05日加入永澄文化传播公司实习以来,持续的低效工作引起了永澄老师和梓畅大法师的关注。为了避...
    Lo俊彦阅读 374评论 2 2