進程線程有關
在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
可以知道副進程是zygote64,繼續反推
USER PID PPID VSIZE RSS WCHAN PC NAME
root 1 0 16468 1628 SyS_epoll_ 00004c809c S /init
這裏我們就知道init進程是zygote64的父進程
adb shell am force-stop [參數] <process>
強制停止應用(process=包名)
eg:
adb shell am force-stop com.tencent.mm
adb shell am kill [參數] <process>
停止那個單個進程
adb shell am kill-all
停止所有後臺進程
adb shell dumpsys cpuinfo
查看CPU信息
adb shell dumpsys meminfo
要獲取具體應用的內存信息,可加上包名adb shell dumpsys meminfo PACKAGE_NAME
adb shell top
查看設備cpu和內存佔用情況
adb shell top -m 2
查看佔用內存前2的app
adb shell ps -x [PID]
查看指定進程狀態
adb shell kill [PID]
殺死進程
adb shell top -n 1
刷新一次內存信息,然後返回
adb shell cat /proc/meminfo
查看當前內存佔用
注意區別:
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 | 進程的當前用戶 |
PID | 進程id |
PPID | 父進程id |
VSIZE | 進程虛擬地址空間大小 |
RSS | 進程正在使用物理內存大小 |
WCHAN | 內核地址 |
PC | 當前程序指針 |
NAME | 進程名 |
包有關
adb shell pm list packages [option]
-f
顯示關聯apk-d
只顯示 disabled 的應用-d
只顯示 disabled 的應用-e
只顯示 enabled 的應用-s
只顯示系統應用-3
只顯示第三方應用-i
顯示應用的 installer-u
包含已卸載應用包名
只顯示含有包名的應用
eg:
#包名稱爲com.tencent.mm
capricorn:/ # pm list packages tencent
package:com.tencent.mm
#第三方應用
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但保留數據和緩存文件
adb shell am start -n <package_name>/<activity_class_name>
啓動APK,am是ActivityManager
adb shell pm clear <packagename>
清除APK數據與緩存
四大組件相關
adb shell dumpsys activity top
查看頂部的Activity的信息
adb shell dumpsys activity top | grep ACTIVITY
adb shell dumpsys activity activities | grep packageName
查看頂部activity包名,過濾掉UI結構
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
結構顯示,由miui.home然後顯示快捷搜索bar,然後進入小米應用商店,在應用商店裏面由一個activity進入另一個activity
adb shell dumpsys activity services
查看正在運行的 Services
AM命令(ActivityManager)
主要使用:am <command>
命令
intent
Intent | 說明 | Am參數 |
---|---|---|
component | 組件名稱 格式:包名/類名 | -n |
action | 指定intent的執行動作,比如撥打電話組件 | -a |
data_url | 操作的數據 | -d |
category | categary是一個字符串,提供了額外的信息,有關於能夠處理這個Intent對象的組件種類 | -c |
extra | 傳遞給Intent的額外數據,以Bundle的形式定義,就是一些鍵值對 | -e |
mime_type | MIME類型 | -t |
flags | 各種類型的flag,很多是用來指定Android系統如何啓動activity,還有啓動了activity後如何對待他 | -f |
package | 包名 | -p |
啓動
Activity
adb shell am start [參數] <Intent>
啓動服務
adb shell am startservice [參數] <Intent>
停止服務
adb shell am stopservice [參數] <Intent>
啓動廣播
adb shell am broadcast [參數] <INTENT>
文件操作
adb pull <手機文件夾或者文件> <電腦文件夾>
將手機中的文件拷貝到電腦上
adb push <local> <remote>
將文件推送到手機存儲
adb shell rename path/oldfilename path/newfilename
重命名
adb shell rm -f <folder>
刪除文件夾以及下面所有文件
adb shell mv path/file newpath/file
移動文件
adb shell touch .
創建一個隱藏文件
adb shell makedir <filename>
創建一個文件夾
adb shell cat <file>
查看文件內容
adb shell cat /data/misc/wifi/*.conf
查看wifi密碼
adb shell getprop
讀取系統配置信息
adb logcat -c
清除log緩存
小功能
adb shell input keyevent <keycode>
adb 命令代替鍵盤操作,不同的 keycode 能實現不同的功能
adb shell input text 123
輸入文本在焦點處於某文本框時,可以通過 input 命令來輸入文本。現在 123 出現在文本框中。
adb shell screencap -p /sdcard/sc.png
屏幕截圖
adb shell screenrecord /sdcard/filename.mp4
錄製 mp4 格式的視頻保存到 /sdcard