dumpsys 命令用法

一、 dumpsys命令

1.1 服務(wù)列表

不同的Android系統(tǒng)版本支持的命令有所不同,可通過(guò)下面命令查看當(dāng)前手機(jī)所支持的dump服務(wù),先進(jìn)入adb shell,再執(zhí)行如下命令:dumpsys -l。 這些服務(wù)名或許你并看不出其調(diào)用的哪個(gè)服務(wù),那么這時(shí)可以通過(guò)下面指令:service list。

表一:

Paste_Image.png
Paste_Image.png

1.2 查詢服務(wù)

通過(guò)下面命令可打印具體某一項(xiàng)服務(wù):dumpsys <service>,其中便是前面表格中的服務(wù)名,比如:

dumpsys cpuinfo //打印一段時(shí)間進(jìn)程的CPU使用百分比排行榜
dumpsys meminfo -h //查看dump內(nèi)存的幫助信息
dumpsys package <packagename> //查看指定包的信息

系統(tǒng)服務(wù)非常之多,那么接下來(lái)將重點(diǎn)說(shuō)說(shuō)其中之一:dumpsys activity用法.

二、 Activity

dumpsys activity [options] [cmd]

下面分別說(shuō)說(shuō)options和cmd有哪些可選值

2.1 options

options可選值:
-a:dump所有;
-c:dump客戶端;
-p [package]:dump指定的包名;
-h:輸出幫助信息;

dumpsys activity等價(jià)于依次輸出下面7條指令:

dumpsys activity intents
dumpsys activity broadcasts
dumpsys activity providers
dumpsys activity services
dumpsys activity recents
dumpsys activity activities
dumpsys activity processes

2.2 cmd

cmd可選值

Paste_Image.png

cmd:上表加粗項(xiàng)是指直接跟包名,另外services和providers還可以跟組件名;

縮寫(xiě):基本都是cmd首字母或者前幾個(gè)字母,用cmd和縮寫(xiě)是等效: dumpsys activity broadcasts dumpsys activity b //等效

三、場(chǎng)景

下面以新浪微博App作為實(shí)例,由于輸出結(jié)果較多,每個(gè)場(chǎng)景截圖只挑選部分重要的信息。

場(chǎng)景1:查詢某個(gè)App所有的Service狀態(tài)

dumpsys activity s com.sina.weibo

解讀:

Service類名為com.morgoo.droidplugin.PluginManagerService;

運(yùn)行在進(jìn)程pid=7220,進(jìn)程名為com.sina.weibo,uid=10094;

通過(guò)bindService連接該服務(wù)的進(jìn)程pid=7306,進(jìn)程名為com.sina.weibo:PluginP03。

當(dāng)然還有packageName,baseDir(apk路徑),dataDir(apk數(shù)據(jù)路徑),createTime等各種信息。另外,新浪微博采用的是360開(kāi)源的Android插件機(jī)制(com.morgoo.droidplugin),主要用于hotfix等功能。

場(chǎng)景2:查詢某個(gè)App所有的廣播狀態(tài)

dumpsys activity s com.sina.weibo

解讀:

android.intent.action.SCREEN_ON代表手機(jī)亮屏廣播;

接收該廣播的receiver有很多個(gè),其中一個(gè)所在進(jìn)程為pid=7220,進(jìn)程名為com.sina.weibo

場(chǎng)景3:查詢某個(gè)App所有的Activity狀態(tài)

輸出結(jié)果較多,尤其是View Hierarchy,下面截取部分:

dumpsys activity a com.sina.weibo

解讀:

格式:TaskRecord{Hashcode #TaskId Affinity UserId=0 Activity個(gè)數(shù)=1};所以上圖信息解析后就是TaskId=1802,Affinity=com.sina.weibo,當(dāng)前Task中Activity個(gè)數(shù)為1。

effectiveUid為當(dāng)前task所屬Uid,mCallingUid為調(diào)用者Uid=u0a94,mCallingPackage為調(diào)用者包名,這里是com.sina.weibo;

realActivity:task中的已啟動(dòng)的Activity組件名com.sina.weibo/.SplashActivity。

場(chǎng)景4:查詢某個(gè)App的進(jìn)程狀態(tài)

dumpsys activity p com.sina.weibo

  • 格式:ProcessRecord{Hashcode pid:進(jìn)程名/uid},進(jìn)程pid=7306,進(jìn)程名為com.sina.weibo:PluginP03,uid=10094.
  • 該進(jìn)程中還有Services,Connections, Providers, Receivers,可以看出該進(jìn)程是沒(méi)有Activity的進(jìn)程。

還有很多場(chǎng)景,會(huì)用到不同的參數(shù),這里就不再一一列舉,建議大家多去嘗試,慢慢地就更加熟練,再比如:

dumpsys activity top //當(dāng)前界面app狀態(tài)
dumpsys activity oom //進(jìn)程oom狀態(tài)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 一、 dumpsys命令 1.1 服務(wù)列表 不同的Android系統(tǒng)版本支持的命令有所不同,可通過(guò)下面命令查看當(dāng)前...
    tiger桂閱讀 2,310評(píng)論 1 0
  • 出發(fā)點(diǎn)一: Android 引入了「任務(wù)?!沟母拍?,這個(gè)概念對(duì)于 Android 設(shè)備上的返回按鍵有極其重要的聯(lián)系...
    badmask閱讀 26,651評(píng)論 3 17
  • 在平時(shí)開(kāi)發(fā)中,通過(guò)命令行有時(shí)候能夠快速的幫我們實(shí)現(xiàn)一些功能,這里對(duì)常用的命令做一些總結(jié)。 1、AM命令用法 1.1...
    吾若成瘋閱讀 21,528評(píng)論 1 21
  • 1:InputChannel提供函數(shù)創(chuàng)建底層的Pipe對(duì)象 2: 1)客戶端需要新建窗口 2)new ViewRo...
    自由人是工程師閱讀 5,701評(píng)論 0 18
  • 我們都知道Android是基于Linux的操作系統(tǒng),它使用的是默認(rèn)的Shell是Ash,之前的一篇文章有提到過(guò)《S...
    喬伯閱讀 6,390評(píng)論 0 2

友情鏈接更多精彩內(nèi)容