adb学习笔记(二)之am与pm
- 1. activity manager (am)
- 1.1. am命令及参数
- 1.1.1. start [options]
- 1.1.2. startservice [options]
- 1.1.3. force-stop
- 1.1.4. kill [options]
- 1.1.5. kill-all
- 1.1.6. broadcast [options]
- 1.1.7. instrument [options]
- 1.1.8. profile start
- 1.1.9. profile stop
- 1.1.10. dumpheap [options]
- 1.1.11. set-debug-app [options]
- 1.1.12. clear-debug-app
- 1.1.13. monitor [options]
- 1.1.14. screen-compat [on|off]
- 1.1.15. display-size [reset|
] - 1.1.16. to-uri
- 1.1.17. to-intent-uri
- 1.1.1. start [options]
- 1.1. am命令及参数
- 2. package manager (pm)
- 2.1. 可用命令和参数
- 2.1.1. list packages [options]
- 2.1.2. list permission-groups
- 2.1.3. list permissions [optiomns]
- 2.1.4. list instrumentation
- 2.1.5. list features
- 2.1.6. list libraries
- 2.1.7. list users
- 2.1.8. path
- 2.1.9. install [options]
- 2.1.10. uninstall [options]
- 2.1.11. clear
- 2.1.12. enable
- 2.1.13. disable
- 2.1.14. disable-user [options]
- 2.1.15. grant
- 2.1.16. set-install-location
- 2.1.17. get-install-location
- 2.1.18. set-permission-enforced
[true|false] - 2.1.19. trim-caches
- 2.1.20. create-user
- 2.1.21. remove-user
- 2.1.22. get-max-users
- 2.1.1. list packages [options]
- 2.1. 可用命令和参数
activity manager (am)
在android设备shell中,可以使用am执行一系列的系统操作,如启动一个activity,关闭一个进程,广播一个intent,修改设备屏幕属性等等,命令形式如下:
|
|
也要可以不进入shell直接执行命令:
|
|
am命令及参数
start [options] <INTENT>
通过指定Intent启动activity。
options有:
-D
开启debug
-W
等启动结束
--start-profiler <FILE>
启动profiler,发送结果到FILE
-P <FILE>
类上,但是profiler在app闲置时停止
-R
重启activity <COUNT>
次,每次启动前,top activity将结束。
-S
在activity启动前强制停止目标app
--opengl-trace
开启opengl功能trace
--user <USER_ID> | current
指定运行用户,缺省为当前用户
startservice [options] <INTENT>
指定INTENT启动Service。
可用参数:
--user <USER_ID> | current
指定运行用户,缺省为当前用户
force-stop <PACKAGE>
终止所有该package相关事物(package为app的package名)
kill [options] <PACKAGE>
类上,但是只杀死安全的,不影响用户体验的进程,可选参数有:
--user <USER_ID> | all | current
指定进程所属用户,缺省为所有用户
kill-all
杀死所有后台进程
broadcast [options] <INTENT>
发出一个广播INTENT
可用参数 :
[--user <USER_ID> | all | current]
需要发送给哪个用户,默认为所有
instrument [options] <COMPONENT>
使用Instrumentation实例开始监听,典型的目标
可用参数有:
-r
: 打印raw结果(另一为<REPORT_KEY_STREAMRESULT>
),搭配[-e perf true]
使用生成raw输出以评估性能。
-e <NAME> <VALUE>
: 设置参数值,对于测试运行,一种常见形式是-e <testrunner_flag> <value>[,<value>...]
-p <FILE>
: 将profiling数据写入
-w
: 等待 instrumentation结束后再返回,测试运行必须。
--no-window-animation
: 运行时关闭窗口动画.
--user <USER_ID> | current
: 指定instrumentation运行在哪个用户中,缺省为当前用户
profile start <FILE>
在进程
profile stop <PROCESS>
停止
dumpheap [options] <FILE>
dump进程
--user [<USER_ID>|current]
: 当提供了-n
: Dump native heap 而不是 managed heap.
set-debug-app [options] <PACKAGE>
设置debug
-w
: 等待包启动--persistent
: 记住此值
clear-debug-app
清除set-debug-app
的设置
monitor [options]
开始监测crash和ANR
--gdb
: 发现crash/ANR时在指定port启动gdb server
screen-compat [on|off] <PACKAGE>
控制包的screen compatibility
模式。
display-size [reset|<WxH>]
覆写android设备的显示尺寸,此命令可以模拟不同尺寸的显示屏,在测试应用时非常有用,例如:
|
|
to-uri <INTENT>
将Intent的详细参数打印到一个URI
to-intent-uri <INTENT>
将Intent的详细参数打印到一个intent URI
package manager (pm)
使用pm工作你可以 在设备上安装的软件包上执行动作查询 。
语法 :
|
|
可用命令和参数
list packages [options] <FILTER>
list所有软件包,或者包名中包含FILTER字样的包
-f
: 查看相关文件-d
: 只显示被禁用的包-e
: 显示启用的包-s
: 显示系统包-3
: 显示第三方包-i
: 查看包installer-u
: 包含已卸载包--user <USER_ID>
: 指定查询的用户空间
list permission-groups
打印所有已经知权限组
list permissions [optiomns] <GROUP>
list所有 或 包含于GROUP中 已知权限-g
: 按组排序-f
: 打印所有信息-s
打印概要-d
只列出危险权限-u
只列出用户可见的权限
list instrumentation
列出所有测试包
-f
列出测试包的APK文件
<TARGET_PACKAGE>
只列出指定目标的测试包
list features
列出系统所有特性
list libraries
列出当前设备支持的所有库
list users
当前系统中的所有用户
path <PACKAGE>
打印指定包的path
install [options] <path>
将path指定的包安装到系统
-r 重新安装已存在的包,保留数据
-t 允许安装测试包-i <INSTALLER_PACKAGE_NAME>
指定Installer-s
安装到shared mass storage(如SD卡)
-f
安装到系统内部存储-d
允许版本降级
uninstall [options] <PACKAGE>
卸载包-k
保留数据和缓存目录
clear <PACKAGE>
删除所有与包相关的数据
enable <PACKAGE_OR_COMPONENT>
启用package / component,形式为”package/class”
disable <PACKAGE_OR_COMPONENT>
停用package / component,形式为”package/class”
disable-user [options] <PACKAGE_OR_COMPONENT>
--user <USER_ID>
: The user to disable.
grant <PACKAGE_PERMISSION>
授予包权限,限于包已声明的权限
set-install-location <LOCATION>
更改默认安装位置,值为:
0 自动
1 内部存储
2 外部存储
调试用,可能导致应用崩溃或者其它错误
get-install-location
返回当前安装位置,返回值见上
set-permission-enforced <PERMISSION> [true|false]
设置指定权限是否应该强制执行
trim-caches <DESIRED_FREE_SPACE>
修剪cache文件到指定剩余空间
create-user <USER_NAME>
创建指定用户,打印uid
remove-user <USER_ID>
删除用户
get-max-users
设备支持的最大用户数