经过adb shell,可使用activity manager(arm)工具来执行不一样的系统操做,如开启一个action,开启一个activity、强制中止一个线程、修改设备屏幕属性等等,adb shell命令格式以下:android
am <command>shell
intent能够理解为不一样组件通讯的媒介或者信使;函数
intent能够启动一个Activity,也能够启动一个Service,好能够发起一个广播Broadcast工具
经过intent,你的程序能够像Android表达某种请求或者意愿,Android会根据意愿的内容选择适当的组件来完成请求性能
Intenturl |
说明spa |
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 |
#启动界面 adb shell am start [参数] <INTENT>
参数3d |
说明调试 |
-D | 开启调试模式 |
-W | 等待启动完成 |
--start-profile <file> | 开始分析器和发送结果(文件) |
--sampling INTERVAL | 使用样本分析 间隔:微秒 样品(使用—start-profiler)之间 |
-P <FILE> | 应用空闲下来后,中止profile |
-R COUNT | 重复活动推出<统计>次。每一个重复以前,活动将会结束 |
-S | 组织目标应用开始前的活动 |
--opengl-trace | 启用跟踪OpenGL函数 |
[—user <USER_ID> | current] | 指定哪些用户运行,若是不指定则使用当前用户 |
#启动服务 adb shell am startservice [参数] <INTENT> #中止服务 adb shell am stopservice [参数] <INTENT>
参数 | 说明 |
--user <USER_ID> | current | 指定哪些用户运行,若是不指定则使用当前用户 |
#启动广播 adb shell am broadcast [参数] <INTENT>
参数 | 说明 |
--user <USER_ID> | current | 指定哪些用户运行,若是不指定则使用当前用户 |
获取heap文件:adb shell am dumpheap [参数] <process>
参数 | 说明 |
--user <USER_ID> | current | 指定哪些用户运行,若是不指定则使用当前用户 |
-n | 获取native heap而不是managed heap |
例如:
adb shell am dumpheap com.android.browser /data/local/tmp/test.hprof
#获取内存快照(后缀名必需为.hprof)
使用adb pull /data/local/tmp/test.hprof e:\命令将testr.hprof文件保存到电脑本地
使用命令:hprof-conv e:\test.hprof e:\test1.hprof进行文件转化
而后就可使用mat工具对内存进行查看分析
2.进程操做
adb shell am force-stop [参数] <process>
#强制中止应用(process=包名)
adb shell am kill [参数] <process>
#中止后台单个进程
adb shell am kill-all
#中止后台所进程
截图来自极客学院
Traceview是android平台配备一个很好的性能分析的工具。它能够经过图形化的方式让咱们了解咱们要跟踪的程序的性能,而且能具体到method。
监听crash和ANR:adb shell monitor [options]