Google 致力于为黑人社区推动种族平等。查看具体举措

使用能耗性能剖析器检查耗电量

能耗性能剖析器可帮助您了解应用在哪里耗用了不必要的电量。

能耗性能剖析器会监控 CPU、网络无线装置和 GPS 传感器的使用情况,并直观地显示其中每个组件消耗的电量。能耗性能剖析器还会显示可能会影响耗电量的系统事件(唤醒锁定、闹钟、作业和位置信息请求)的发生次数。

能耗性能剖析器并不会直接测量耗电量,而是使用一种模型来估算设备上每项资源的耗电量。

能耗性能剖析器概览

当您在搭载 Android 8.0 (API 26) 或更高版本的关联设备或 Android 模拟器中运行您的应用时,能耗性能剖析器便会显示为 Profiler 窗口中的一行。

如需打开能耗性能剖析器,请按以下步骤操作:

  1. 依次选择 View > Tool Windows > Profiler 或点击工具栏中的 Profile 图标

    如果 Select Deployment Target 对话框显示提示,请选择需将您的应用部署到哪个设备上以进行性能剖析。如果您已通过 USB 连接设备但系统未列出该设备,请确保您已启用 USB 调试

  2. 点击 Energy 时间轴中的任意位置以打开能耗性能剖析器。

当您打开能耗性能剖析器时,它会立即开始显示应用的估算耗电量。系统会显示类似于图 1 的界面。

图 1. 能耗性能剖析器中的时间轴。

如图 1 所示,能耗性能剖析器的默认视图包括以下时间轴:

  1. “Event”时间轴:显示应用中的 Activity 在其生命周期内不断转换而经历各种不同状态的过程。此时间轴还会指示用户与设备的交互,包括屏幕旋转事件。
  2. “Energy”时间轴:显示应用的估算耗电量。
  3. “System”时间轴:显示可能会影响耗电量的系统事件。

如需查看 CPU、网络和位置信息 (GPS) 资源,以及相关系统事件的具体耗电量情况,请将鼠标指针放在 Energy 时间轴中的条形上方。

检查系统事件:唤醒锁定、作业和闹钟

您可以使用能耗性能剖析器查找可能会影响耗电量的系统事件,包括唤醒锁定、作业和闹钟:

  • 唤醒锁定是一种机制,可在设备进入休眠模式时使 CPU 或屏幕保持开启状态。例如,播放视频的应用可以使用唤醒锁定,以便在用户未与设备交互时使屏幕保持开启状态。请求唤醒锁定不是一项耗电量很高的操作,但未撤消唤醒锁定会导致屏幕或 CPU 保持开启状态的时间超过必要时间,从而加快电池耗电速度。如需了解详情,请参阅有关使用唤醒锁定的指南。

  • 您可以使用闹钟定期在应用上下文之外运行后台任务。当闹钟触发时,它可能会唤醒设备并运行耗电量很高的代码。如需了解详情,请参阅有关使用闹钟的指南。

  • 您可以使用作业在指定条件下(例如恢复网络连接时)执行相关操作。您可以使用 JobBuilder 创建作业,并使用 JobScheduler 对这些作业进行调度。在许多情况下,建议您使用 JobScheduler 对作业进行调度,而不是使用闹钟或唤醒锁定。

  • 位置信息请求使用 GPS 传感器,这会消耗大量电量。如需了解如何在发出位置信息请求时节省电量,请参阅优化电池的位置

借助能耗性能剖析器,您可以轻松找到应用使用各项功能的位置,以便您就如何使用各项功能做出明智的决策。

能耗性能剖析器会在 Energy 时间轴下的 System 时间轴中显示一个彩色编码的条形,以表示系统事件处于活动状态的时间范围。唤醒锁定用红色条形表示,作业和闹钟用黄色条形表示,位置信息事件用浅紫色条形表示。

图 2 显示了能耗性能剖析器,并在代码编辑器中定位到了未释放唤醒锁定对应的源代码。

图 2. 使用能耗性能剖析器查找唤醒锁定。

  1. 如需打开 System Event 窗格并显示唤醒锁定等事件的详细信息,请在 Energy 时间轴中选择一个时间范围。
  2. 如需打开 Wake Lock Details 窗格并显示特定唤醒锁定的详细信息,请在 System Event 窗格中选择该唤醒锁定。
  3. 如需打开代码编辑器并跳转到唤醒锁定的源代码,请在 Wake Lock Details 窗格中双击调用堆栈顶部的调用方法条目。
  4. 用于获取唤醒锁定的调用会在源代码编辑器中突出显示。

有关显示其他系统事件详情的说明与唤醒锁定基本相同,只不过对应的详细信息窗格中提供了特定于各种事件的信息。例如,Job Details 窗格会显示调度作业以及完成作业的代码部分的调用堆栈。