The Android Developer Challenge is back! Submit your idea before December 2.

数十亿用户的电池消耗

有时可能无法获得可靠的供电,停电会打断充电计划。通过检测电池使用情况、避免 wake lock、调度任务以及监控传感器请求来防止用户的电池产生不必要的消耗。

降低电池消耗

您可以采取几项措施,帮助确保您的应用仅在需要时消耗电池电量,而不会消耗多余的电量。

  • 在后台运行以及当设备靠电池电量运行时,您的应用应最大限度地减少 Activity。
  • GPS 等传感器会消耗大量的电池电量。为避免这些问题,您可以使用 FusedLocationProvider API 来管理底层定位技术。其可提供简单的 API,以便您从高层次角度指定高准确率或低能耗等要求。它还可以通过缓存位置和批处理跨应用请求来优化设备的电池电量消耗。如需详细了解请求位置的理想方法,请参阅获取最近已知位置培训指南。
  • Wake lock 是让设备保持运行状态以便执行后台 Activity 的机制。请避免使用 Wake lock,因为其会阻止设备进入低能耗状态。
  • 要想减少设备的唤醒次数,请对网络 Activity 进行批处理。如需了解有关批处理的详细信息,请参阅有关优化下载以实现高效网络访问的 Android 培训。
  • GcmNetworkManager 能够调度任务并允许 Google Play 服务对整个系统的操作执行批处理。这大大简化了常见模式的实现,如等待网络连接、设备充电状态、重试和退避。利用 GcmNetworkManager 在设备正在充电并连入无限流量网络时执行非必需的后台 Activity。
  • 有关网络 Activity 如何消耗电池电量以及如何解决此问题的详细信息,请参阅减少网络耗电量

检测电池使用情况

检测您的应用在受控环境下的电池使用情况有助于您了解在应用内执行哪些任务的电池消耗较大。通过检测应用的电池使用情况来衡量效率和追踪随时间变化的情况是一种很好的做法。Batterystats 可收集您的应用的相关电池数据,而 Battery Historian 可将这些数据转换为 HTML 可视化形式。

如需了解有关减少电池使用量的详细信息,请参阅有关优化电池寿命的 Android 培训。