1、命令說(shuō)明:
Dumpsys用戶系統(tǒng)診斷,它運(yùn)行在設(shè)備上,并提供系統(tǒng)服務(wù)狀態(tài)信息
adb shell dumpsys [system serbices]
查詢系統(tǒng)支持的所有服務(wù)信息
adb shell dumpsys –l 或者 adb shell serverce list
2、參數(shù)解析
不同的服務(wù)有不同的選項(xiàng),可以通過(guò)這兩個(gè)是常見(jiàn)的參數(shù)查看當(dāng)前服務(wù)的所有參數(shù)信息
| 參數(shù) | 說(shuō)明 |
|---|---|
| -h | 對(duì)于大多數(shù)的服務(wù),可以添加-h看到文本的幫助 |
| -c | 對(duì)于一些服務(wù),可以添加-c查看數(shù)據(jù)會(huì)更友好 |
3、dumpsys window
dumpsys window -h
Window manager dump options:
[-a] [-h] [cmd] ...
cmd may be one of:
l[astanr]: last ANR information
p[policy]: policy state
a[animator]: animator state
s[essions]: active sessions
surfaces: active surfaces (debugging enabled only)
d[isplays]: active display contents
t[okens]: token list
w[indows]: window list
trace: print trace status and write Winscope trace to file
cmd may also be a NAME to dump windows. NAME may
be a partial substring in a window name, a
Window hex object identifier, or
"all" for all windows, or
"visible" for the visible windows.
"visible-apps" for the visible app windows.
-a: include all available server state.
--proto: output dump in protocol buffer format.
msmnile_gvmq:/ $ dumpsys window l
WINDOW MANAGER LAST ANR (dumpsys window lastanr)
<no ANR has occurred since boot>
4、dumpsys package使用
| 參數(shù) | 說(shuō)明 |
|---|---|
| -h | 查看幫助信息 |
| -f | 打印intent filter的信息 |
| --checkin | 打印出已經(jīng)登記的庫(kù)、系統(tǒng)功能、安裝包 |
msmnile_gvmq:/ $ dumpsys package -h
Package manager dump options:
[-h] [-f] [--checkin] [--all-components] [cmd] ...
--checkin: dump for a checkin
-f: print details of intent filters //打印intent filter的信息
-h: print this help
--all-components: include all component names in package dump
cmd may be one of:
apex: list active APEXes and APEX session state
l[ibraries]: list known shared libraries
f[eatures]: list device features //列出手機(jī)的功能
k[eysets]: print known keysets
r[esolvers] [activity|service|receiver|content]: dump intent resolvers
perm[issions]: dump permissions 獲取權(quán)限
permission [name ...]: dump declaration and use of given permission
pref[erred]: print preferred package settings
preferred-xml [--full]: print preferred package settings as xml
prov[iders]: dump content providers
p[ackages]: dump installed packages
q[ueries]: dump app queryability calculations
s[hared-users]: dump shared user IDs
m[essages]: print collected runtime messages
v[erifiers]: print package verifier info
d[omain-preferred-apps]: print domains preferred apps
i[ntent-filter-verifiers]|ifv: print intent filter verifier info
version: print database version info
write: write current settings now
installs: details about install sessions
check-permission <permission> <package> [<user>]: does pkg hold perm?
dexopt: dump dexopt state
compiler-stats: dump compiler statistics
service-permissions: dump permissions required by services
<package.name>: info about given package
cmd子命令
說(shuō)明
| cmd子命令 | 說(shuō)明 |
|---|---|
| prov[iders] | 獲取content providers |
| p[ackages] | 獲取安裝包基本信息 |
| s[hared-user] | 獲取共享用戶ID的應(yīng)用 |
| m[essages] | 打印運(yùn)行時(shí)收集的信息 |
| v[erifiers] | 打印包校驗(yàn)信息 |
| version | 打印數(shù)據(jù)庫(kù)版本信息 |
| write | 寫(xiě)當(dāng)前位置 |
| <package.name> | 輸出給定包的信息 |
| installs | 安裝會(huì)話的詳細(xì)信息 |
| l[ibraries] | 列出已知的共享庫(kù) |
| f[ibraries] | 列出手機(jī)的功能 |
| k[eysets] | 列出各個(gè)包的Signing KeySets |
| r[esolvers] | 獲取intent filter |
| perm[issions] | 獲取權(quán)限 |
| pref[erred] | 打印包首選項(xiàng) |
| preferred-xml [—full] | 打印包首選項(xiàng),xml格式打印 |
5、dumpsys activity 使用
| 參數(shù) | 說(shuō)明 |
|---|---|
| -a | 包括所有可用的服務(wù)器狀態(tài) |
| -c | 包括客戶端狀態(tài) |
| -p | 限制輸出為給定的包,例如 dumpsys activity -p com.android.browser |
| -h | 打印幫助信息 |
cmd子命令
| cmd子命令 | 說(shuō)明 |
|---|---|
| a[ctivities] | activity堆棧狀態(tài) |
| r[recents] | 最近activity的狀態(tài) |
| b[rodacasts] [package_name] [histpry [-s]] | 廣播狀態(tài) |
| i[ntents] [package_name] | 掛起的intent狀態(tài) |
| p[rocesses] [package_name] | 進(jìn)程狀態(tài) |
| o[om] | oom管理 |
| perm[issions] | url權(quán)限授權(quán)狀態(tài) |
| prov[iders] [comp_spec…] | content provider狀態(tài) |
| provider [comp_spec] | provider客戶端狀態(tài) |
| s[ervices] [comp_spec…] | 服務(wù)狀態(tài) |
| as[sociations] | 跟蹤應(yīng)用程序的關(guān)聯(lián) |
| service [comp_spec] | 服務(wù)客戶端狀態(tài) |
| package [package_name] | 給的包的所有狀態(tài) |
| all | 轉(zhuǎn)儲(chǔ)所有的activityes |
| top | 轉(zhuǎn)儲(chǔ)棧頂?shù)腶ctivity |
| write | 寫(xiě)入所有掛起狀態(tài)存儲(chǔ) |
| track-associations | 允許會(huì)話跟蹤 |
| untrack-associations | 禁用和明確會(huì)話跟蹤,命令參數(shù)可能也是一個(gè)comp_spec 轉(zhuǎn)儲(chǔ)的activity |
6、網(wǎng)絡(luò)信息查詢的的dump指令
dumpsys connectivity
7、dumpsys meminfo [processName|pid]
常用標(biāo)識(shí)
| 常用標(biāo)識(shí) | 說(shuō)明 |
|---|---|
| Pss | PSS (Proportional Set Size) = 進(jìn)程獨(dú)占的內(nèi)存 + 進(jìn)程程共享的內(nèi)存 / 映射次數(shù) |
| Private_Dirty | Private 在上面已經(jīng)說(shuō)過(guò)了。 而 Dirty 分為 PageDirty和 pte_dirty. PageDirty就是所說(shuō)的臟頁(yè)( 文件讀到內(nèi)存中被修改過(guò), 就會(huì)標(biāo)記為臟頁(yè))。 pte_dirty則當(dāng) vma 用于 anonymous 的時(shí)候, 讀寫(xiě)這段 vma 時(shí)候, 觸發(fā) page fault, 調(diào)用 do_anonymous_page , 如果vma_flags中包含 VM_WRITE, 則會(huì)通過(guò) pte_mkdirty(entry)標(biāo)記 |
| Private_Clean | 與 Private_Dirty 相反 |
| Swap | 一般情況下, 在 Android 中就是 zram, 通過(guò)壓縮內(nèi)存頁(yè)面并將其放入動(dòng)態(tài)分配的內(nèi)存交換區(qū)來(lái)增加系統(tǒng)中的可用內(nèi)存量, 壓縮的都是匿名頁(yè) |
msmnile_gvmq:/ $ dumpsys meminfo -h
meminfo dump options: [-a] [-d] [-c] [-s] [--oom] [process]
-a: include all available information for each process. //所有信息
-d: include dalvik details. //需要包含dalvik 詳細(xì)信息;
-c: dump in a compact machine-parseable representation. //dump 成一個(gè)壓縮的機(jī)器解析的表達(dá)形式;
-s: dump only summary of application memory usage. //只dump 應(yīng)用內(nèi)存的概要
-S: dump also SwapPss. //將swap pss 信息也dump 出來(lái)
--oom: only show processes organized by oom adj.
--local: only collect details locally, don't call process. //只在本地收集信息,只有在-a 或 -s 指定的時(shí)候才生效;
--package: interpret process arg as package, dumping all
processes that have loaded that package. //dump 所有加載指定package 的進(jìn)程;
--checkin: dump data for a checkin //將數(shù)據(jù)dump下來(lái)checkin;
--proto: dump data to proto //dump proto的數(shù)據(jù);
If [process] is specified it can be the name or
pid of a specific process to dump.
dumpsys procstats --hours 3 獲取過(guò)去三小時(shí)內(nèi)應(yīng)用的內(nèi)存占用情況統(tǒng)計(jì)信息
8、dumpsys car_service
Android 下面可以使用的Linux執(zhí)行
1) pwd //顯示當(dāng)前工作目錄
2) mkdir mydir //創(chuàng)建工作目錄
3) cd mydir //更改工作目錄
4) rmdir mydir //刪除工作目錄
5) touch myfile //創(chuàng)建文件
6) mv myfile mydir //移動(dòng)目錄或文件
7) cp myfile myfir //復(fù)制目錄或文件
8) rm -rf mydir //刪除目錄或文件
9) ls -l myfile //查看文件最后被編輯時(shí)間
10) ls -lu myfile //查看文件最后被訪問(wèn)時(shí)間
11) touch -at 01011212 myfile //修改文件最后被訪問(wèn)時(shí)間
12) ls //列出所有文件和目錄
13) ls -a //查看所有文件
14) ls -i //顯示文件索引節(jié)點(diǎn)號(hào)
15) ls -l //詳細(xì)顯示
16) ls -m //以逗號(hào)分隔
文件顯示
1) cat > myfile //創(chuàng)建文件并編輯內(nèi)容(ctrl+D結(jié)束編輯)
2) cat -n myfile //查看文件
3) chmod [u/g/o/a][+/-/=][r/w/x] myfile //更改文件權(quán)限
u-user,g-group,o-others,a-all . +-添加,--刪除,=-重置 .
r-read讀(4),w-write寫(xiě)(2),x-execute執(zhí)行(1)
4) more myfile //分頁(yè)往后顯示文件(Space空格)
5) less myfile //分頁(yè)自由顯示文件(Page Down / Page Up)
6) head (-10) myfile //指定顯示文件前若干行(默認(rèn)前10)
7) tail (-10) myfile //指定顯示文件后若干行(默認(rèn)后10)
文件內(nèi)容操作
1) sort myfile //對(duì)文件內(nèi)容進(jìn)行排序
2) sort -r myfile //逆序
3) uniq myfile //檢查文件中的重復(fù)內(nèi)容
4) grep (-c)‘a(chǎn)’ myfile //在文件中查找指定內(nèi)容 (顯示行號(hào))
5) diff myfile01 myfile02 //對(duì)不同文件進(jìn)行比較
6) diff3 myfile01 myfile02 myfile03 //三個(gè)文件
7) sdiff myfile01 myfile02 //合并
8) cmp myfile01 myfile02 //通過(guò)字節(jié)對(duì)不同文件進(jìn)行比較
9) comm myfile01 myfile02 //對(duì)有序文件進(jìn)行比較
10) cut -b(-c)(-d) 2(3) myfile //對(duì)文件內(nèi)容進(jìn)行剪切
11) paste myfile02 myfile01 //對(duì)文件內(nèi)容進(jìn)行粘貼 02-)01
12) wc (-參數(shù)) myfile //對(duì)文件內(nèi)容進(jìn)行統(tǒng)計(jì) (c-字符數(shù),w-單詞數(shù),l-行數(shù))
壓縮
1) zip myfile.zip myfile //壓縮
2) zip -d myfile.zip myfile //添加
3) zip -m myfile.zip myfile //刪除
4) unzip -o myfile.zip //解壓(覆蓋)
5) unzip -n myfile.zip //解壓(不覆蓋)
6) zipinfo myfile.zip //列出壓縮文件信息
其他
1) clear //清楚屏幕信息
2) echo xx //顯示文本 x=0 echo $x . echo -e \$x . echo $(pwd)
3) date //顯示日期和時(shí)間(+%y 年 +%m 月 +%d日)
4) cal //顯示當(dāng)前日期 cal -y
5) ps //查看當(dāng)前進(jìn)程 -A(所有) U lilei (用戶lilei)
6) kill -9 2315 //終止某一進(jìn)程
7) ps -e | grep Jincheng
df命令
是用來(lái)查看linux系統(tǒng)服務(wù)器文件系統(tǒng)的磁盤(pán)使用情況??梢杂迷撁顏?lái)查看已經(jīng)使用了多少空間,還有多少空間可用。
df命令格式為: df [選線] [文件名]
| 參數(shù) | 說(shuō)明 |
|---|---|
| -a | 全部文件系統(tǒng)列表,包含虛擬文件系統(tǒng) |
| -a | 指定顯示[scale] size,比如以M,G為單位顯示 |
| -i | 列出inode的信息 |
| -k | 區(qū)塊為1024字節(jié) |
| -l | 顯示本地文件系統(tǒng) |
top指令
top 通常用top命令觀察cpu、內(nèi)存使用情況
Tasks: 357 total, 1 running, 356 sleeping, 0 stopped, 0 zombie
Mem: 9488684K total, 6240840K used, 3247844K free, 39661568 buffers
Swap: 4194300K total, 0 used, 4194300K free, 2354256K cached
800%cpu 60%user 7%nice 66%sys 653%idle 0%iow 8%irq 5%sirq 0%host
PID USER PR NI VIRT RES SHR S[%CPU] %MEM TIME+ ARGS
504 system -3 -20 12G 50M 32M S 35.3 0.5 23:53.00 surfaceflinger
679 root 20 0 12G 4.5M 3.7M S 24.3 0.0 16:16.73 mcucomm
275 logd 30 10 12G 34M 2.6M S 23.0 0.3 15:02.07 logd
452 system -3 0 12G 20M 15M S 12.6 0.2 8:48.28 android.hardware.graphics.composer@2.4-service
3106 system 20 0 17G 250M 172M S 11.3 2.6 7:18.05 com.incall.apps.navi.service
2666 u10_system 4 -16 17G 496M 99M S 9.6 5.3 6:02.94 com.incall.apps.speechassistant
2629 u10_system 10 -10 16G 213M 124M S 7.6 2.2 5:12.33 com.incall.apps.sdalauncher
1018 root 20 0 12G 2.3M 1.8M S 7.0 0.0 5:00.44 logcat
461 system 20 0 12G 4.6M 3.9M D 5.3 0.0 3:24.53 android.hardware.spi@1.0-service
| 參數(shù) | 說(shuō)明 |
|---|---|
| PID | 進(jìn)行編號(hào) |
| USER | 進(jìn)程的持有用戶 |
| PR | 進(jìn)程運(yùn)行的優(yōu)先級(jí),值越小優(yōu)先級(jí)越高,會(huì)越早獲取CPU的執(zhí)行權(quán) |
| NI | 進(jìn)程的nice值,表示進(jìn)程可被執(zhí)行的優(yōu)先級(jí)的修正數(shù)值 |
| VIRT | 進(jìn)程使用虛擬內(nèi)存 |
| RES | 常駐內(nèi)存 |
| SHR | 進(jìn)程使用的共享內(nèi)存 |
| S | 進(jìn)程運(yùn)行狀態(tài)。(S:休眠;D:不可中斷睡眠;R:運(yùn)行中;T:跟蹤/停止;Z:假死中) |
| %CPU | 進(jìn)行運(yùn)行時(shí)CPU的占用比 |
| %MEM | 進(jìn)程使用的內(nèi)存占用比 |
| TIME+ | 進(jìn)程占用的CPU總時(shí)長(zhǎng) |
| ARGS | 進(jìn)程名 |
top -p :查看指定進(jìn)程id的top信息
top -p 3106
Tasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Mem: 9488684K total, 6278108K used, 3210576K free, 40448000 buffers
Swap: 4194300K total, 0 used, 4194300K free, 2374052K cached
800%cpu 64%user 0%nice 114%sys 596%idle 7%iow 11%irq 7%sirq 0%host
PID USER PR NI VIRT RES SHR S[%CPU] %MEM TIME+ ARGS
3106 system 20 0 17G 249M 172M S 17.8 2.6 7:32.93 com.incall.apps.navi.service
top -H -p 3106
TID USER PR NI VIRT RES SHR S[%CPU] %MEM TIME+ THREAD PROCESS
4253 system 20 0 17G 254M 172M S 3.6 2.7 2:03.33 Map-Logical-0 com.incall.apps.navi.service
4251 system 20 0 17G 254M 172M S 2.6 2.7 1:46.48 GNaviMap-GL-0 com.incall.apps.navi.service
4412 system 20 0 17G 254M 172M S 2.3 2.7 0:22.92 GNaviMap-0 com.incall.apps.navi.service
4405 system 20 0 17G 254M 172M S 2.0 2.7 0:13.44 Binder:3106_6 com.incall.apps.navi.service
4413 system 20 0 17G 254M 172M S 1.6 2.7 0:21.08 GNaviMap-1 com.incall.apps.navi.service
4411 system 20 0 17G 254M 172M S 0.6 2.7 0:35.35 AdrenoOsLib com.incall.apps.navi.service
3121 system 24 4 17G 254M 172M S 0.6 2.7 0:05.37 HeapTaskDaemon com.incall.apps.navi.service
4428 system 20 0 17G 254M 172M S 0.3 2.7 0:13.49 AdrenoOsLib com.incall.apps.navi.service
4100 system 20 0 17G 254M 172M S 0.3 2.7 0:17.45 InfTimerThread com.incall.apps.navi.service
4103 system 20 0 17G 254M 172M S 0.3 2.7 0:05.48 ps.navi.service com.incall.apps.navi.service
3923 system 20 0 17G 254M 172M S 0.3 2.7 0:11.25 GPosService com.incall.apps.navi.service
10462 system 20 0 17G 254M 172M S 0.0 2.7 0:00.00 gnet_dns_worker com.incall.apps.navi.service
5897 system 20 0 17G 254M 172M S 0.0 2.7 0:00.00 RxComputationTh com.incall.apps.navi.service
5896 system 20 0 17G 254M 172M S 0.0 2.7 0:00.00 RxComputationTh com.incall.apps.navi.service
4421 system 20 0 17G 254M 172M S 0.0 2.7 0:00.00 AdrenoOsUtils com.incall.apps.navi.service
4427 system 20 0 17G 254M 172M S 0.0 2.7 0:00.29 AdrenoOsUtils com.incall.apps.navi.service
......