【问题标题】:Measure launch time of an android app using adb commands使用 adb 命令测量 android 应用程序的启动时间
【发布时间】:2014-10-10 07:11:36
【问题描述】:

我想测量启动时间(从应用程序启动到应用程序第一次查看渲染完成)。 是否有任何 adb 命令/adb 命令组合可以实现这一点。

【问题讨论】:

    标签: android time adb launch


    【解决方案1】:

    我不确定您想要的是否可以通过 adb 命令实现,但您可以使用 Android SDK 安装的 platform-tools/systrace 文件夹中包含的 systrace 工具。

    Systrace 工具可以从 Eclipse、Android Studio、Android 设备监视器甚至命令行中的 Android 开发者工具 (ADT) 运行。

    运行 Systrace 用户界面:

    使用 Eclipse

    1. 在 Eclipse 中,打开一个 Android 应用程序项目。
    2. 切换到 DDMS 透视图,通过选择 Window > Perspectives > DDMS。
    3. 在“设备”选项卡中,选择要在其上运行跟踪的设备。如果不 设备已列出,请确保您的设备已通过 USB 数据线连接 并且在设备上启用了调试。
    4. 单击“设备”面板顶部的 Systrace 图标以配置跟踪。
    5. 设置跟踪选项并单击“确定”开始跟踪。

    使用 Android Studio

    1. 在 Android Studio 中,打开一个 Android 应用程序项目。
    2. 通过选择工具 > Android > 监视器打开设备监视器。
    3. 在“设备”选项卡中,选择要在其上运行跟踪的设备。如果未列出任何设备,请确保您的设备已通过 USB 连接 电缆,并且在设备上启用了调试。
    4. 单击“设备”面板顶部的 Systrace 图标以配置跟踪。
    5. 设置跟踪选项并单击“确定”开始跟踪。

    使用设备监视器

    1. 导航到您的 SDK 工具/目录。
    2. 运行监控程序。
    3. 在“设备”选项卡中,选择要在其上运行跟踪的设备。如果未列出任何设备,请确保您的设备已通过 USB 电缆,并且在设备上启用了调试。
    4. 单击“设备”面板顶部的 Systrace 图标以配置跟踪。
    5. 设置跟踪选项并单击“确定”开始跟踪。

    命令行用法

    对于运行 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
    

    【讨论】:

    • 非常感谢 Juanvi Martinez 的快速回复!
    • 非常感谢您的快速回复 Juanvi Martinez!这似乎也是不错的技术。我将根据您的建议检查 systrace 方法并在此处更新。
    【解决方案2】:

    您可以从 adb logcat 测量应用程序的启动时间。您可以检查从 logcat 显示的活动开始和活动的打印,注意它们之间的时间差以测量启动时间。

    adb logcat -vthreadtime | grep "start"
    adb logcat -vthreadtime | grep "Displayed"
    

    或者

    您可以使用以下命令启动应用程序并从其输出中查找时间: adb shell am start -W

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-16
      • 1970-01-01
      • 2011-02-06
      • 2023-04-02
      相关资源
      最近更新 更多