Android耗电分析

作者: youseewhat | 来源:发表于2019-03-26 20:44 被阅读10次

    Android8.0以上的系统

    Energy Profiler监控CPU,网络无线电和GPS传感器的使用情况,并显示每个组件使用多少电量的可视化。Energy Profiler还会显示可能影响能耗的系统事件(唤醒锁定,警报,作业和位置请求)。

    Energy Profiler不直接测量能耗。它使用一种模型来估算设备上每种资源的能耗。

    Energy Profiler概述

    当您在运行Android 8.0(API 26)或更高版本的已连接设备或Android Emulator上运行应用程序时,Energy Profiler将显示为Profiler窗口的一行。

    要打开Energy Profiler,请按照下列步骤操作:

    1. 选择View> Tool Windows> Profiler或单击工具栏中的
      工具打开
    1. 单击时间轴中的任意位置以打开Energy Profiler。

    打开Energy Profiler时,它会立即开始显示应用程序的估计能耗。你应该看到类似于图1的东西。

    图1

    如图1所示,Energy Profiler的默认视图包括以下时间轴:

    1Event timeline:显示应用在其生命周期中的不同状态转换时的活动。此时间线还指示用户与设备的交互,包括屏幕旋转事件。
    2Energy timeline:显示应用的估计能耗。
    3System timeline:表示可能影响能耗的系统事件。

    要查看CPU,网络和位置(GPS)资源以及相关系统事件的能源使用情况,请将鼠标指针放在能源时间轴中的条形图上 。

    检查系统事件:唤醒锁定,作业和警报

    您可以使用Energy Profiler查找可能影响能耗的系统事件,包括唤醒锁定,作业和警报:

    • 一个唤醒锁wake lock是保持设备不进入睡眠状态的机制。例如,播放视频的应用可以使用唤醒锁定,以便在没有用户与设备交互时保持屏幕开启。请求唤醒锁定不是一项能耗密集型操作,但未能释放唤醒锁定会导致屏幕或CPU保持打开状态的时间超过必要时间,这会导致电池快速耗尽。

    • 可以使用警报alarms定期在应用程序上下文之外运行后台任务。当警报响起时,它可能会唤醒设备并运行能耗密集型代码。

    • 可以使用jobscheduler在指定条件下执行操作,例如网络可用时。您可以创建作业JobBuilder并使用它们进行计划JobScheduler。在许多情况下,推荐的方法是使用具有 JobScheduler而不是警报或唤醒锁定的作业。

    • 位置请求使用GPS传感器,会消耗大量电量。

    Energy Profiler可找到应用程序使用这些功能的位置,以便就每种功能的使用方式做改进的决策。

    Energy Profiler在系统时间线下方的系统时间轴中显示系统事件处于活动状态时的时间范围内的颜色编码条。 唤醒锁用红色条表示,作业和警报用黄色条表示,位置事件用浅紫色条表示。

    图2显示了Energy Profiler和代码编辑器,它对源代码开放,负责未发布的唤醒锁定。


    图2.使用Energy Profiler查找唤醒锁定

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

    显示其他系统事件详细信息的说明与唤醒锁定基本相同,其详细信息窗格中包含特定于每种事件的信息。例如,“ Job Details”窗格显示调度作业的代码部分以及作业完成位置的调用堆栈。

    Android 8.0以下耗电分析

    使用Battery Historian

    相关文章

      网友评论

        本文标题:Android耗电分析

        本文链接:https://www.haomeiwen.com/subject/doanvqtx.html