我需要从其主要活动启动的那一刻起获取Android应用程序调用的跟踪操作系统方法的痕迹.我可以在进程启动后启动探查器,但显然不会跟踪启动时调用的方法.
以下是我在进程启动后获取跟踪的方法:
adb install com.example.app.apk
adb shell rm ./mnt/sdcard/log.trace
adb shell am start com.example.App/com.example.App.MainActivity
adb shell am profile start com.example.App ./mnt/sdcard/log.trace
<do stuff with the app, click on the GUI etc.>
adb shell am profile stop
adb pull ./mnt/sdcard/log.trace
Run Code Online (Sandbox Code Playgroud)
似乎有一个活动管理器选项--start-profiler,但它不起作用.我尝试使用它如下:
adb shell am start com.example.App/com.example.App.MainActivity --start-profiler ./mnt/sdcard/log.trace
Run Code Online (Sandbox Code Playgroud)
但是没有创建跟踪文件,并且应用程序根本没有减速.分析激活后,运行速度会慢得多.
我试用了Android API 17,Intel x86仿真器,Mac Book Pro上的Windows 7 x64(通过Bootcamp).
小智 3
我正在使用以下命令,它工作得很好。
adb shell am start -n com.example.App/com.example.App.MainActivity --start-profiler ./mnt/sdcard/log.trace
我认为您的代码中可能存在的问题可能是,如果应用程序已经启动,您不会关闭该应用程序。因此,当您发出指定的命令时,它不会以分析模式启动应用程序,而是将其已启动的实例带到前面,而没有分析支持。如果要在启用分析的情况下启动应用程序,请确保在使用分析器启动应用程序之前该应用程序已关闭(不是在后台或最小化)。
| 归档时间: |
|
| 查看次数: |
3836 次 |
| 最近记录: |