android 系統(tǒng)開發(fā)(4)---AMS 的dumpsys

一.概述

在Android 開發(fā)過(guò)程中,為了查詢當(dāng)前手機(jī)運(yùn)行時(shí)狀態(tài)的變化值,需要通過(guò)dumpsys activity命令來(lái)完成,該方法最終是調(diào)用AMS.dump()方法。

dumpsys命令用法簡(jiǎn)要介紹過(guò)dumpsys命令 的基本用法缺厉,以及系統(tǒng)服務(wù)列表信息,那么本文重點(diǎn)介紹AMS。 根據(jù)dumpsys activity傳遞不同的參數(shù)提针, 對(duì)于AMS.dump便會(huì)輸出相應(yīng)的對(duì)象信息命爬。 具體可以跟哪些參數(shù).

1.1 命令格式

dumpsys activity? [options]? [WHAT]

其中options為可選項(xiàng),以-開頭辐脖, 主要有以下幾類:

options含義

-a包括所有可用Server狀態(tài)

-c包括Client狀態(tài)饲宛,即App端情況

-p PACKAGE限定輸出指定包名

1.2 WHAT參數(shù)

列舉常見的WHAT參數(shù):

序號(hào)WHAT解釋對(duì)應(yīng)源碼

? ?WHAT? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 解釋? ? ? ? ? ? ? ? ? ? ? 對(duì)應(yīng)的源碼

1? a[ctivities]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?activity狀態(tài)? ? ? ? ? ?dumpActivitiesLocked()

2? ?b[roadcasts] [PACKAGE_NAME]? ?broadcast狀態(tài)? ? ? ?dumpBroadcastsLocked()

3? s[ervices] [COMP_SPEC …]? ? ? ? ? ?service狀態(tài)? ? ? ? ? ?newServiceDumperLocked().dumpLocked

4? ?prov[iders] [COMP_SPEC …]? ? ? ?content provider狀態(tài)? ?dumpProwevidersLocked()

5? p[rocesses]? ?[PACKAGE_NAME]? ? ? 進(jìn)程狀態(tài)? ? ? ? ? ? ? ? ? dumpProcessesLocked()

6? ?o[om]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 內(nèi)存管理? ? ? ? ? ? ? ?dumpOomLocked()

7? ?i[ntents] [PACKAGE_NAME]? ? pending intent狀態(tài)? ? ? ? ? ?dumpPendingIntentsLocked()

8? ?r[ecents]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?最近? ? ? ? ? ? ? ? ? ? activitydumpRecentsLocked()

9? ? ? perm[issions]? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? URI授權(quán)情況? ? ? ? ? ? ? ?dumpPermissionsLocked()

10? ? ?all所有? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?activities信息? ? ? ? ? ? ? ?dumpActivity()

11? ? ? ?top? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 頂部activity信息? ? ? ? ? ? dumpActivity()

12? ? ? ? package? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?package相關(guān)信息? ? ? ? ? ? ? ? dump()

其中PACKAGE_NAME是指可跟包名,COMP_SPEC是指可跟具體組件信息嗜价,中括號(hào)是指縮寫字母艇抠;

二. dumpsys activity

前面介紹dumpsys activity根據(jù)后面跟著的不同參數(shù)則輸出相應(yīng)的內(nèi)容,當(dāng)不跟任何參數(shù)久锥,?dumpsys activity等價(jià)于依次輸出下面8條命令:

1)dumpsys activity intents

2) dumpsys activity broadcasts //廣播

3) dumpsys activity providers? //provider

4) dumpsys activity permissions

5) dumpsys activity services? //服務(wù)

6) dumpsys activity recents

7) dumpsys activity activities //activity

8) dumpsys activity processes

依次簡(jiǎn)要說(shuō)明這8條命令:

2.1 intents

輸出對(duì)象:

PendingIntentRecord

2.2 broadcasts

主要輸出的對(duì)象:

1)ReceiverList, BroadcastFilter,

2)IntentResolver,

3)BroadcastQueue, BroadcastRecord

4)Handler, Looper

2.3 provider

主要輸出的對(duì)象:

1)ProviderMap

2)ContentProviderRecord家淤, ContentProviderConnection

2.4?permissions

主要輸出的對(duì)象:

1)UriPermission

2.5?Service

主要輸出的對(duì)象:

1)ActiveServices,

2)ServiceRecord, ConnectionRecord,ProcessRecord

2.6 recents

主要輸出的對(duì)象:

TaskRecord

2.7activities

主要輸出的對(duì)象:

1)ActivityStackSupervisor, ActivityStack,

2)TaskRecord, ActivityRecord

3)ActivityThread, Activity

4)ViewRootImpl

5)Looper, MessageQueue

2.8 processes

主要輸出的對(duì)象:

1)AMS各種進(jìn)程對(duì)象

2)ProcessRecord, UidRecord

3 dumpsys 使用

adb shell dumpsys,默認(rèn)打印出當(dāng)前系統(tǒng)所有service信息瑟由,在后面可加上具體的服務(wù)名

需要列出當(dāng)前運(yùn)行的服務(wù)絮重,可運(yùn)行:

adb shell dumpsys | findstr DUMP

下面簡(jiǎn)單列下我用到的一些命令...(在編寫腳本時(shí)需要獲取一些狀態(tài)值供判斷用)


獲取設(shè)備分辨率

adb shell dumpsys display | findstr DisplayDeviceInfo

DisplayDeviceInfo{"內(nèi)置屏幕": 1080 x 1920, 55.0 fps, density 480, 464.949 x 468.923 dpi...


獲取設(shè)備電池信息:

adb shell dumpsys battery

Current Battery Service state:

? AC powered: false

? USB powered: true

? Wireless powered: false

? status: 2 #電池狀態(tài)

? health: 2

? present: true

? level: 34 #電量

? scale: 100

? voltage: 3848

? current now: -427943

? temperature: 280 #電池溫度

? technology: Li-ion

獲取cpu信息

adb shell dumpsys cpuinfo

獲取內(nèi)存信息:

adb shell dumpsys meminfo

要獲取具體應(yīng)用的內(nèi)存信息,可加上包名

adb shell dumpsys meminfo PACKAGE_NAME

獲取Activity信息:

adb shell dumpsys activity

加上-h可以獲取幫助信息

獲取當(dāng)前界面的UI信息歹苦,可以用

adb shell dumpsys activity top

要獲取當(dāng)前界面的Activity:

adb shell dumpsys activity top | findstr ACTIVITY

獲取package信息

adb shell dumpsys package

加上-h可以獲取幫助信息

獲取某個(gè)包的信息:

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=農(nóng)業(yè)部:中國(guó)超級(jí)稻畝產(chǎn)超1噸

? ? android.subText=null

? ? android.showChronometer=false

? ? android.icon=2130837941

? ? android.text=農(nóng)業(yè)部今日通報(bào)稱,經(jīng)專家測(cè)產(chǎn),袁隆平領(lǐng)銜培育的中國(guó)“超級(jí)稻”畝產(chǎn)過(guò)千公斤,創(chuàng)造1026.7公斤新紀(jì)錄青伤。詳情>>

? ? android.progress=0

? ? android.progressMax=0

? ? android.showWhen=true

? ? android.infoText=null

? ? android.progressIndeterminate=false

? ? android.scoreModified=false

? }

獲取wifi信息:

adb shell dumpsys wifi

可以獲取到當(dāng)前連接的wifi名、搜索到的wifi列表殴瘦、wifi強(qiáng)度等

獲取電源管理信息:

adb shell dumpsys power

可以獲取到是否處于鎖屏狀態(tài):mWakefulness=Asleep或者mScreenOn=false

亮度值:mScreenBrightness=255

屏幕休眠時(shí)間:Screen off timeout: 60000 ms

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

獲取電話信息:

adb shell dumpsys telephony.registry

可以獲取到電話狀態(tài),例如

mCallState值為0痴施,表示待機(jī)狀態(tài)、1表示來(lái)電未接聽狀態(tài)究流、2表示電話占線狀態(tài)

mCallForwarding=false #是否啟用呼叫轉(zhuǎn)移

mDataConnectionState=2 #0:無(wú)數(shù)據(jù)連接 1:正在創(chuàng)建數(shù)據(jù)連接 2:已連接

mDataConnectionPossible=true? #是否有數(shù)據(jù)連接

mDataConnectionApn=? #APN名稱

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末辣吃,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子芬探,更是在濱河造成了極大的恐慌神得,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評(píng)論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件偷仿,死亡現(xiàn)場(chǎng)離奇詭異哩簿,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)酝静,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門节榜,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人别智,你說(shuō)我怎么就攤上這事宗苍。” “怎么了?”我有些...
    開封第一講書人閱讀 162,415評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵讳窟,是天一觀的道長(zhǎng)让歼。 經(jīng)常有香客問(wèn)我,道長(zhǎng)丽啡,這世上最難降的妖魔是什么谋右? 我笑而不...
    開封第一講書人閱讀 58,157評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮补箍,結(jié)果婚禮上改执,老公的妹妹穿的比我還像新娘。我一直安慰自己馏予,他們只是感情好天梧,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著霞丧,像睡著了一般呢岗。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上蛹尝,一...
    開封第一講書人閱讀 51,125評(píng)論 1 297
  • 那天后豫,我揣著相機(jī)與錄音,去河邊找鬼突那。 笑死挫酿,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的愕难。 我是一名探鬼主播早龟,決...
    沈念sama閱讀 40,028評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼猫缭!你這毒婦竟也來(lái)了葱弟?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤猜丹,失蹤者是張志新(化名)和其女友劉穎芝加,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體射窒,經(jīng)...
    沈念sama閱讀 45,310評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡藏杖,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評(píng)論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了脉顿。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片蝌麸。...
    茶點(diǎn)故事閱讀 39,690評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖弊予,靈堂內(nèi)的尸體忽然破棺而出祥楣,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 35,411評(píng)論 5 343
  • 正文 年R本政府宣布误褪,位于F島的核電站责鳍,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏兽间。R本人自食惡果不足惜历葛,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望嘀略。 院中可真熱鬧恤溶,春花似錦、人聲如沸帜羊。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)讼育。三九已至帐姻,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間奶段,已是汗流浹背饥瓷。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評(píng)論 1 268
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留痹籍,地道東北人呢铆。 一個(gè)月前我還...
    沈念sama閱讀 47,693評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像蹲缠,于是被迫代替她去往敵國(guó)和親棺克。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,070評(píng)論 25 707
  • 地圖-自定義大頭針 關(guān)于大頭針視圖分兩類: MKPinAnnotationView : apple自帶的大頭針,可...
    楚簡(jiǎn)約閱讀 2,226評(píng)論 0 4
  • 更能寐线定,幾載韶華逆航?匆匆春又來(lái)歸。沫春長(zhǎng)對(duì)雪消融渔肩,何況碧水東流。 見說(shuō)道拇惋,人生得意處處歡周偎。飛花暗度。計(jì)而今迫切撑帖,釣島...
    海焰閱讀 425評(píng)論 0 0
  • 3月11日蓉坎,周六,肌無(wú)力胡嘿。 和我在成都的街頭走一走蛉艾,唔噢唔噢唔噢… 陰天加上天亮的晚,路上一片寂靜,出發(fā)勿侯。 越過(guò)樂(lè)...
    lapetite33明天在哪里閱讀 256評(píng)論 0 0
  • 自李俊彥同學(xué)17年09月05日加入永澄文化傳播公司實(shí)習(xí)以來(lái)拓瞪,持續(xù)的低效工作引起了永澄老師和梓暢大法師的關(guān)注。為了避...
    Lo俊彥閱讀 401評(píng)論 2 2