当前位置: 代码迷 >> 综合 >> Understanding Battery Drain On Android
  详细解决方案

Understanding Battery Drain On Android

热度:96   发布时间:2023-12-10 21:58:40.0

更多关于Android渲染性能请点击这里

设备在不同状态下耗电的对比

总所周知,设备执行的任务越多,电量消耗的也就越快,在电气工程领域,硬件从电池吸收能量并执行任务,这一行为被称作放电,设备在执行相同程序时, 在不同状态下的耗电量是不同的。

比如将手机设为飞行模式,放着不动,可以待机一个月,但是只要激活设备就会开始耗电,比如CPU工作。打开移动网络,解锁屏幕等,这个时间就会大大缩短。

硬件监控硬件耗电是不准确的,因为硬件在监控的过程中本身也在耗电。如果要准确监控,就需要另一个不需要手机供电的设备,来记录这些操作。

如果这样检测,就会发现,在待机模式下手机是基本不怎么耗电的

当点亮屏幕时,我们就可以在电量监控器看到一个很大的涨幅
打开LED,GPU绘制屏幕,CUP开始工作从电量消耗来看,是个大户

点亮屏幕和应用程序唤醒设备完全不同,WakeLock或者AlarmManager还有JobScheduler都是定时任务,当设备处于休眠,被以上API唤醒,首先会看到电池用量的一个小高峰,随即任务执行的时候会继续消耗一点电量,需要指出的是,工作做完之后应该让设备回到休眠状态,这很重要,因为休眠可以减少电量消耗,

如果设备处于移动网络时
首先是硬件唤醒
发送数据包
接收数据包
因为移动网络发起一次请求所消耗的资源太多,所以硬件本身在完成之后保持一段时间的唤醒状态

优化电池损耗

可以在设备上查看应用程序消耗电量占比,设置-电池-应用
可以获知唤醒时长,联网时长,GPS时长等。

Battery Historian 可以观察整个生命周期内的详细耗电情况,允许给每一个任务创建一个时间轴,能很容易的看到耗电率

  相关解决方案