進(jìn)程線程有關(guān)
在adb shell
中
adb shell ps
eg:
capricorn:/ # ps
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 16468 1628 SyS_epoll_ 00004c809c S /init
root 2 0 0 0 kthreadd 0000000000 S kthreadd
root 3 2 0 0 smpboot_th 0000000000 S ksoftirqd/0
root 6 2 0 0 diag_socke 0000000000 S kworker/u8:0
...
capricorn:/ # ps | grep "system_server"
查看system_server信息
USER PID PPID VSIZE RSS WCHAN PC NAME
system 13586 13395 2658524 331360 SyS_epoll_ 7f980a2668 S system_server
可以知道PPID=13395
capricorn:/ # ps 13395
USER PID PPID VSIZE RSS WCHAN PC NAME
root 13395 1 2176320 52360 poll_sched 7f980a2788 S zygote64
可以知道副進(jìn)程是zygote64济赎,繼續(xù)反推
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 16468 1628 SyS_epoll_ 00004c809c S /init
這里我們就知道init進(jìn)程是zygote64的父進(jìn)程
adb shell am force-stop [參數(shù)] <process>
強(qiáng)制停止應(yīng)用(process=包名)
eg:
adb shell am force-stop com.tencent.mm
adb shell am kill [參數(shù)] <process>
停止那個(gè)單個(gè)進(jìn)程
adb shell am kill-all
停止所有后臺進(jìn)程
adb shell dumpsys cpuinfo
查看CPU信息
adb shell dumpsys meminfo
要獲取具體應(yīng)用的內(nèi)存信息,可加上包名adb shell dumpsys meminfo PACKAGE_NAME
adb shell top
查看設(shè)備cpu和內(nèi)存占用情況
adb shell top -m 2
查看占用內(nèi)存前2的app
adb shell ps -x [PID]
查看指定進(jìn)程狀態(tài)
adb shell kill [PID]
殺死進(jìn)程
adb shell top -n 1
刷新一次內(nèi)存信息,然后返回
adb shell cat /proc/meminfo
查看當(dāng)前內(nèi)存占用
注意區(qū)別:
wangwei@wangwei-xiaomi:~$ adb shell ps -x 1
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 16468 1592 SyS_epoll_ 00004c809c S /init (u:130, s:329)
wangwei@wangwei-xiaomi:~$ adb shell ps 1
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 16468 1592 SyS_epoll_ 00004c809c S /init
字段| 含義
--- |----|----
USER|進(jìn)程的當(dāng)前用戶
PID|進(jìn)程id
PPID|父進(jìn)程id
VSIZE|進(jìn)程虛擬地址空間大小
RSS|進(jìn)程正在使用物理內(nèi)存大小
WCHAN|內(nèi)核地址
PC|當(dāng)前程序指針
NAME|進(jìn)程名
包有關(guān)
adb shell pm list packages [option]
-
-f
顯示關(guān)聯(lián)apk -
-d
只顯示 disabled 的應(yīng)用 -
-d
只顯示 disabled 的應(yīng)用 -
-e
只顯示 enabled 的應(yīng)用 -
-s
只顯示系統(tǒng)應(yīng)用 -
-3
只顯示第三方應(yīng)用 -
-i
顯示應(yīng)用的 installer -
-u
包含已卸載應(yīng)用 -
包名
只顯示含有包名的應(yīng)用
eg:
#包名稱為com.tencent.mm
capricorn:/ # pm list packages tencent
package:com.tencent.mm
#第三方應(yīng)用
capricorn:/ # pm list packages -3
package:com.tencent.mm
package:com.xiaomi.jr
package:com.google.android.marvin.talkback
package:org.codeaurora.bluetooth
package:com.nike.plusgpschina
package:com.xiaomi.o2o
package:com.android.development
adb install <apkfile>
安裝APK, adb install -r <apkfile>
允許覆蓋安裝
adb uninstall <package>
卸載APK
adb uninstall -k <package>
卸載APK但保留數(shù)據(jù)和緩存文件
adb shell am start -n <package_name>/<activity_class_name>
啟動(dòng)APK,am是ActivityManager
adb shell pm clear <packagename>
清除APK數(shù)據(jù)與緩存
四大組件相關(guān)
adb shell dumpsys activity top
查看頂部的Activity的信息
adb shell dumpsys activity top | grep ACTIVITY
adb shell dumpsys activity activities | grep packageName
查看頂部activity包名,過濾掉UI結(jié)構(gòu)
adb shell dumpsys activity activities | grep intent
查看UI的堆棧
adb shell dumpsys activity activities | grep affinity
打印堆棧由于什么intent拉起來
eg:
wangwei@wangwei-xiaomi:~$ adb shell dumpsys activity activities | grep packageName
packageName=com.xiaomi.market processName=com.xiaomi.market
packageName=com.xiaomi.market processName=com.xiaomi.market
packageName=com.android.quicksearchbox processName=com.android.quicksearchbox
packageName=com.miui.home processName=com.miui.home
結(jié)構(gòu)顯示,由miui.home然后顯示快捷搜索bar,然后進(jìn)入小米應(yīng)用商店,在應(yīng)用商店里面由一個(gè)activity進(jìn)入另一個(gè)activity
adb shell dumpsys activity services <packagename>
查看正在運(yùn)行的 Services
AM命令(ActivityManager)
主要使用:am <command>
命令
intent
Intent | 說明 | Am參數(shù) |
---|---|---|
component | 組件名稱 格式:包名/類名 | -n |
action | 指定intent的執(zhí)行動(dòng)作掏膏,比如撥打電話組件 | -a |
data_url | 操作的數(shù)據(jù) | -d |
category | categary是一個(gè)字符串,提供了額外的信息敦锌,有關(guān)于能夠處理這個(gè)Intent對象的組件種類 | -c |
extra | 傳遞給Intent的額外數(shù)據(jù)馒疹,以Bundle的形式定義,就是一些鍵值對 | -e |
mime_type | MIME類型 | -t |
flags | 各種類型的flag乙墙,很多是用來指定Android系統(tǒng)如何啟動(dòng)activity颖变,還有啟動(dòng)了activity后如何對待他 | -f |
package | 包名 | -p |
啟動(dòng)
Activity
adb shell am start [參數(shù)] <Intent>
啟動(dòng)服務(wù)
adb shell am startservice [參數(shù)] <Intent>
停止服務(wù)
adb shell am stopservice [參數(shù)] <Intent>
啟動(dòng)廣播
adb shell am broadcast [參數(shù)] <INTENT>
文件操作
adb pull <手機(jī)文件夾或者文件> <電腦文件夾>
將手機(jī)中的文件拷貝到電腦上
adb push <local> <remote>
將文件推送到手機(jī)存儲
adb shell rename path/oldfilename path/newfilename
重命名
adb shell rm -f <folder>
刪除文件夾以及下面所有文件
adb shell mv path/file newpath/file
移動(dòng)文件
adb shell touch .<filename>
創(chuàng)建一個(gè)隱藏文件
adb shell makedir <filename>
創(chuàng)建一個(gè)文件夾
adb shell cat <file>
查看文件內(nèi)容
adb shell cat /data/misc/wifi/*.conf
查看wifi密碼
adb shell getprop
讀取系統(tǒng)配置信息
adb logcat -c
清除log緩存
小功能
adb shell input keyevent <keycode>
adb 命令代替鍵盤操作,不同的 keycode 能實(shí)現(xiàn)不同的功能
adb shell input text 123
輸入文本在焦點(diǎn)處于某文本框時(shí)听想,可以通過 input 命令來輸入文本⌒壬玻現(xiàn)在 123 出現(xiàn)在文本框中。
adb shell screencap -p /sdcard/sc.png
屏幕截圖
adb shell screenrecord /sdcard/filename.mp4
錄制 mp4 格式的視頻保存到 /sdcard