抖音安卓性能优化系列:抖音功率优化实践
浏览:579 次

功耗优化是应用体验优化的重要课题。高耗电会引起用户的用电焦虑,也会导致糟糕的取暖体验,从而降低用户的使用意愿。功耗是一个涉及整机长时间、多场景的综合复杂指标,影响因素很多。无论是功耗的量化拆解,还是异常问题的监测,以及有功功率优化,对开发者来说都是极具挑战性的。
基于抖音的功耗优化实践,本文得出了一些实验结论和优化思路,并从功耗、功耗组成、功耗分析、功耗优化等方面的基础知识总结了安卓应用的功耗优化。
功耗基础介绍
首先,让我们回顾一下功耗的概念,它很容易与能耗混淆。解释为什么用mA(电流值)表示手机的功耗水平,用mAh(物理意义上的充电值)表示功耗水平。让我们先看一些物理公式。
P=I×U,E=P×T
能耗(E):指计算机系统在一段时间内的总能耗,单位为焦耳(J)
功耗(P):功耗,指单位时间的能耗,反映能耗率,单位为瓦(W)

电流(I):指手机电池放电的电流值,通常以mA表示
电压(U):指手机电池放电电压值。标准放电电压为3.7V,充电截止电压为4.35V,放电截止电压为2.75V(以典型值为例,不同设备的电池电压值不同)
电池容量:通常以毫安时为单位,它是单位意义上的充电次数,实际上表示电池在典型电压下放电的持续时间。
如下面的功耗测试图所示,手机通常在恒定的典型电压下工作。为了便于计算,电压恒定在3.7V,因此P=I×3.7,E=I×三点七×T。也就是说,mA代表功耗,mAh代表能耗。
结论:对于同一模型,我们使用电池容量(mAh)的变化来表征一段时间内的总能耗,并使用平均电流(mA)来表征功耗水平;例如,4000毫安时电池的手机刷抖音一小时耗电11%,耗电(能耗)为440毫安时,平均电流为440mA
图1功耗测试图
为什么选择电源优化

我们从总结中了解到,高耗电量会引起用户的电力焦虑,也会导致糟糕的取暖体验,从而降低用户的使用意愿。除了为我们带来更好的用户体验和改善使用时长,优化功耗在降低应用功耗方面也具有明显的社会价值。用一个流行的词来说,它可以促进碳中和的事业。
如何优化功耗
与常见的APM指标(如Crash和ANR)不同,功耗是一个综合的主题,很难分析。用户报告了功耗问题,这可能是由高CPU负载、频繁的后台网络访问或动画泄漏导致的高功耗引起的。或者我们自己的业务没有改变。仅仅是环境因素导致用户感到耗电,例如低温导致的锂电池放电衰减。
我们的想法是从设备开始。app的功耗最终可以分解为移动电话设备的功耗。所以我们首先拆解抖音设备的功耗,看看哪些设备是主要的耗电设备,然后看看如何减少设备的使用,从而达到有针对性的目标。
接下来,我们将从功耗构成、功耗分析和功率优化等方面描述如何进行功率优化。
功耗组成
以下是手机硬件的基本形式,每个模块都由复杂的设备组成。例如,我们经常说功耗大头SoC包括CPU的超级核、大核、小核、GPU、DDRC(内存接口)以及外围区域的各种小IP核。因此,整个机器的功耗最终可以分解为每个设备的功耗,而应用的功耗是计算po