【发布时间】:2014-10-10 07:11:36
【问题描述】:
我想测量启动时间(从应用程序启动到应用程序第一次查看渲染完成)。 是否有任何 adb 命令/adb 命令组合可以实现这一点。
【问题讨论】:
我想测量启动时间(从应用程序启动到应用程序第一次查看渲染完成)。 是否有任何 adb 命令/adb 命令组合可以实现这一点。
【问题讨论】:
我不确定您想要的是否可以通过 adb 命令实现,但您可以使用 Android SDK 安装的 platform-tools/systrace 文件夹中包含的 systrace 工具。
Systrace 工具可以从 Eclipse、Android Studio、Android 设备监视器甚至命令行中的 Android 开发者工具 (ADT) 运行。
运行 Systrace 用户界面:
- 在 Eclipse 中,打开一个 Android 应用程序项目。
- 切换到 DDMS 透视图,通过选择 Window > Perspectives > DDMS。
- 在“设备”选项卡中,选择要在其上运行跟踪的设备。如果不 设备已列出,请确保您的设备已通过 USB 数据线连接 并且在设备上启用了调试。
- 单击“设备”面板顶部的 Systrace 图标以配置跟踪。
- 设置跟踪选项并单击“确定”开始跟踪。
- 在 Android Studio 中,打开一个 Android 应用程序项目。
- 通过选择工具 > Android > 监视器打开设备监视器。
- 在“设备”选项卡中,选择要在其上运行跟踪的设备。如果未列出任何设备,请确保您的设备已通过 USB 连接 电缆,并且在设备上启用了调试。
- 单击“设备”面板顶部的 Systrace 图标以配置跟踪。
- 设置跟踪选项并单击“确定”开始跟踪。
- 导航到您的 SDK 工具/目录。
- 运行监控程序。
- 在“设备”选项卡中,选择要在其上运行跟踪的设备。如果未列出任何设备,请确保您的设备已通过 USB 电缆,并且在设备上启用了调试。
- 单击“设备”面板顶部的 Systrace 图标以配置跟踪。
- 设置跟踪选项并单击“确定”开始跟踪。
对于运行 Android 4.3(API 级别 18)及更高版本的设备与运行 Android 4.2(API 级别 17)及更低版本的设备,Systrace 工具具有不同的命令行选项。以下部分介绍了每个版本的不同命令行选项。
从命令行运行 Systrace 的一般语法如下。
$ python systrace.py [options] [category1] [category2] ... [categoryN]
Android 4.3 及更高版本
在运行 Android 4.3 及更高版本的设备上使用 Systrace 时,您必须至少指定一个跟踪类别标记。这是一个示例执行运行,它设置跟踪标记并从连接的设备生成跟踪。
$ cd android-sdk/platform-tools/systrace
$ python systrace.py --time=10 -o mynewtrace.html sched gfx view wm
提示:如果要在跟踪输出中查看任务的名称,则必须在命令参数中包含 sched 类别。
Android 4.2 及更低版本
在运行 Android 4.2 及更低版本的设备上在命令行上使用 Systrace 通常需要两个步骤。您必须首先设置要捕获的跟踪标记,然后运行跟踪。这是一个示例执行运行,它设置跟踪标记并从连接的设备生成跟踪。
$ cd android-sdk/platform-tools/systrace
$ python systrace.py --set-tags gfx,view,wm
$ adb shell stop
$ adb shell start
$ python systrace.py --disk --time=10 -o mynewtrace.html
【讨论】:
您可以从 adb logcat 测量应用程序的启动时间。您可以检查从 logcat 显示的活动开始和活动的打印,注意它们之间的时间差以测量启动时间。
adb logcat -vthreadtime | grep "start"
adb logcat -vthreadtime | grep "Displayed"
或者
您可以使用以下命令启动应用程序并从其输出中查找时间: adb shell am start -W
【讨论】: