Android 工具和基础架构

本文介绍了可用于衡量性能指标和测试界面的工具。

系统性能工具

启动时间

如需分析启动时间,请使用 bootanalyze 工具。对于每个特定产品,请修改 config.yaml 文件以包含要搜索的事件。config.yaml 应如下所示:

  stop_event: <logcat log message which will terminate log collection after reboot>
  events:
    event1_name: <pattern that matches log message>
    event2_
    ...

在某些设备上,启动时钟后,前几秒内显示的时间可能有误。尽管 bootanalyze 工具可以在开箱后进行时间校正,但您可以在 config.yaml 中提供可选的时间校正模式。优化启动时间一文介绍了如何使用引导加载程序、设备内核、I/O 调整、启动动画和 SELinux 政策等组件缩短启动时间。

应用启动时间

用户希望应用能够及时响应并快速加载。应用启动时间一文详细介绍了启动过程的内部机制,并讨论了如何分析并优化启动性能。

界面

界面 (UI) 性能测试可确保您的应用不仅满足功能要求,且用户与应用之间的交互顺畅无比,能够持续以每秒 60 帧(请参阅 Android 性能模式:为什么选择 60fps?)的帧速运行,完全不会出现帧丢失或延迟的现象。

如需了解详情,请参阅测试界面性能JankTest

内存

您可以通过以下两种方法之一检查应用的内存占用情况:

  • 使用 procstats 检查一段时间内的占用情况。
  • 使用 meminfo 检查某个时间点的占用情况。

如需了解详情,请参阅:

中央处理器

  • 如需分析 Android 应用以及在 Android 上运行的原生进程,请使用 Simpleperf,这是一款面向 Android 的原生中央处理器 (CPU) 性能分析工具。Simpleperf 可以剖析 Android 上的 Java 和 C++ 代码。Simpleperf 可执行文件可在高于 Android L 的版本上运行,而 Python 脚本可在高于 Android N 的版本上使用。

    Simpleperf 是 Android 开源项目的一部分。源代码位于 Simpleperf 中。如需了解详情,请参阅 Simpleperf 文档。

  • 如需在与应用交互时实时检查应用的 CPU 使用率和线程活动,请使用 CPU 性能剖析器。这样做能带来诸多好处,如提供更快、更顺畅的用户体验,以及延长设备电池续航时间。此外,您还可以检查记录的方法跟踪数据、函数跟踪数据和系统跟踪数据的详情。

界面测试和框架

如需测试界面和框架,请使用以下工具:

  • 如需自动执行端到端界面测试,请使用 UI Automator 和 AOSP 提供的汽车专属开源帮助程序

  • 如需自动测试端到端蓝牙连接,请使用 Google Mobly 开源框架。

  • 如需编写简洁、美观且可靠的 Android 界面测试,请使用 Espresso

  • 如需在本地构建、安装并运行 Android 测试,请使用 Atest 命令行工具。

    $ atest [optional-arguments] test-to-run
    
  • 如需试运行您的 Android 代码,请使用 Robolectric(测试在工作站的 JVM 中运行,只需几秒钟)。