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
设备支持的最大用户数
