Package Manage(PM)
pm list packages [FILTER] 查看已安裝的應用包
- -f 顯示關聯的apk文件
- -s 只在系統應用中搜索Filter
- -3 只在第三方應用中搜索Filter
- -d 只在disabled package搜索Filter
- -e 只在enabled package搜索Filter
- -i 顯示installer
- -u uninstalled package
- --user USERID
pm list instrumentation [TARGET-PACKAGE] 查看已安裝的測試包
- -f 顯示關聯的apk文件
pm list features
pm list permission-groups
pm list permissions [GROUP]
- -g 按組組織
- -f 顯示所有信息
- -s 顯示簡述
- -d 只顯示危險權限
- -u 只顯示用戶可見的
pm list users
pm uninstall <package> 刪除應用
- -k 保留數據和緩存
pm clear <package> 清除應用數據
- --user USERID
pm path <package> 查看某個應用的apk包路徑
pm dump <package> 顯示與包相關的系統狀態信息
pm install PATH
- -l FORWARD_LOCK
- -r 重新安裝,保留數據
- -t 運行安裝測試apk
- -i 指定安裝包名
- -s SDCard
- -f 內部存儲器
- -d 允許版本降級
pm get-install-location 返回當前默認安裝位置
返回值:
0 auto
1 內部存儲
2 外部存儲
pm set-install-location 0|1|2 修改默認安裝位置
pm enable|disable|disable-user|disable-until-used|block|unblock [--user USERID] PACKAGE_OR_COMPONENT
pm grant|revoke PACKAGE PERMISSION 應用增減權限(必須在應用中已聲明)
pm create-user USER_NAME
pm remove-user USER_ID
pm get-max-users
pm set-permission-enforced PERMISSION [true|false]
pm trim-caches DESIRED_FREE_SPACE
Activity Manage(AM)
通用選項
--user <USER_ID> | current | all 以特定用戶運行
am start [options] <INTENT> 啟動Activity
- -D 調試模式
- -W 等待啟動結束
- --start-profilter <FILE> 啟動分析器,結果輸出到文件
- -P <FILE> 啟動分析器,輸出結果到文件,應用空閑時停止分析
- -R <COUNT> 反復啟動Count次,每次重復前,結束最上層Activity
- -S 啟動后強制停止
- --opengl-trace 啟動OpenGL函數記錄
- --user <USER_ID> | current 指定以哪個用戶運行,默認為當前用戶
am startservice <INTENT> 啟動服務
am stopservice <INTENT> 停止服務
am force-stop <PACKAGE> 強行停止與包相關的所有東西
am kill <PACKAGE> 殺掉與包相關的進程
am kill-all 殺掉所有后台進程
am broadcast <INTENT>
am instrument [options] <COMPONENT>
- -r 以原始形式輸出測試結果。該選項通常是在性能測試時與-e perf true一起使用
- -p <FILE> 輸出分析數據到文件
- -w <TEST_PACKAGE/RUNNER_CLASS> 等到instrumentation結束時才返回
- --no-window-animation
- --user <USER_ID> | current
- -e <testrunner_flag> <value>[,<value>…]
<COMPMONENT>就是<TEST_PACKAGE/RUNNER_CLASS>
InstrumentationTestRunner可用flag:
| flag |
value |
說明 |
| package |
<full_java_package> |
執行某個java包里的測試 |
| class |
<full_class_name> |
執行某個測試類 |
| func |
true |
|
| unit |
true |
|
| size |
small|medium|large |
運行@SmallTest,@MediumTest,@LargeTest標注的測試 android.test.annotation包里定義了@LargeTest,@MediumTest,@SmallTest,@Smoke,和@Suppress |
| perf |
true |
執行PerformanceTestCase |
| debug |
true |
調試模式執行測試 |
| log |
true |
|
<INTENT> specifications include these flags and arguments
[-a <ACTION>] [-d <DATA_URI>] [-t <MIME_TYPE>] android.intent.action.VIEW content://contacts/people/1 image/png
[-c <CATEGORY> [-c <CATEGORY>] ...] android.intent.category.APP_CONTACTS
[-e|--es <EXTRA_KEY> <EXTRA_STRING_VALUE> ...]
[--esn <EXTRA_KEY> ...]
[--ez <EXTRA_KEY> <EXTRA_BOOLEAN_VALUE> ...]
[--ei <EXTRA_KEY> <EXTRA_INT_VALUE> ...]
[--el <EXTRA_KEY> <EXTRA_LONG_VALUE> ...]
[--ef <EXTRA_KEY> <EXTRA_FLOAT_VALUE> ...]
[--eu <EXTRA_KEY> <EXTRA_URI_VALUE> ...]
[--ecn <EXTRA_KEY> <EXTRA_COMPONENT_NAME_VALUE>]
[--eia <EXTRA_KEY> <EXTRA_INT_VALUE>[,<EXTRA_INT_VALUE...]]
[--ela <EXTRA_KEY> <EXTRA_LONG_VALUE>[,<EXTRA_LONG_VALUE...]]
[--efa <EXTRA_KEY> <EXTRA_FLOAT_VALUE>[,<EXTRA_FLOAT_VALUE...]]
[-n <COMPONENT>] [-f <FLAGS>]
[--grant-read-uri-permission] [--grant-write-uri-permission]
[--debug-log-resolution] [--exclude-stopped-packages]
[--include-stopped-packages]
[--activity-brought-to-front] [--activity-clear-top]
[--activity-clear-when-task-reset] [--activity-exclude-from-recents]
[--activity-launched-from-history] [--activity-multiple-task]
[--activity-no-animation] [--activity-no-history]
[--activity-no-user-action] [--activity-previous-is-top]
[--activity-reorder-to-front] [--activity-reset-task-if-needed]
[--activity-single-top] [--activity-clear-task]
[--activity-task-on-home]
[--receiver-registered-only] [--receiver-replace-pending]
[--selector]
[<URI> | <PACKAGE> | <COMPONENT>]
dumpsys
查詢系統服務,獲取系統運行時狀態信息
原理:調用ServiceManager服務的listServices來查詢系統注冊的所有服務,並且通過checkService接口來獲取服務的Binder遠程代理對象,使用每個服務的dump函數來打印該服務的相關信息。
源代碼: https://android.googlesource.com/platform/frameworks/native/+/master/cmds/dumpsys/dumpsys.cpp
dumpsys 不帶任何參數時,列出所有服務,並依次顯示所有服務狀態信息
dumpsys | grep FILTER
service list 顯示系統服務列表
dumpsys SERVICE [SERVICE_OPTIONS] 顯示指定服務的狀態信息
dumpsys SERVICE -h 某些服務可以查看能接受的參數
例如:
dumpsys battery
dumpsys wifi
dumpsys cpuinfo
dumpsys meminfo
dumpsys meminfo com.xracoon.wifisetter
dumpsys window w(indows) | grep mCurrentFocus
dumpsys window d(disply) | grep Display
Logcat
logcat命令格式與直接調用adb logcat相同,下面兩條命令效果一樣,可參考adb 命令一文中Logcat的說明。
adb shell logcat [options] [filter...]
adb logcat [options] [filter...]
調試測試相關命令
dumpstate
dmesg
monkey [options] <operation_num>
screenrecord [options] <file> android4.4+
screencap -p <file>
input
input [<source>] <command> [<arg>...]
source:
trackball, joystick, touchnavigation, mouse, keyboard, gamepad, touchpad, dpad, stylus, touchscreen
command和 /默認source:
| command | 默認的source |
| text <string> | touchscreen |
| keyevent [--longpress] <key code number or name> ... | keyboard |
| tap <x> <y> | touchscreen |
| swipe <x1> <y1> <x2> <y2> [duration_ms] | touchscreen |
| press | trackball |
| roll <dx> <dy> | trackball |
