抖音 Android 性能优化系列:抖音功耗优化实践

功耗优化是运用体会优化的一个重要课题,高功耗会引发用户的电量焦虑,也会导致糟糕的发热体会,然后下降了用户的运用志愿。而功耗又是涉及整机的长时刻多场景的android下载安装归纳性杂乱目标,影响要素许多。不论是功耗的量化拆解,仍是反常问题的监控,以及主动的功接口测试用例设计耗优化关于开发人员来说都是很有挑战性的。

本文结合抖音的功耗优化实践招聘中产出了一些试验定论,招聘优化思路,从功耗的根底知识,功耗组成,功耗剖析,功耗优化等几个方面算法,对 Android 运用的功耗优化做一个总结沉积。

功耗根底知识介绍

首先咱们回顾一下功耗的概念,这儿比较简单和能耗搞混。解释一下为什么手机上用mA(电流值) 来表征功耗水平,用 mAh(物理意义上是电荷值)来表征能耗水平。咱们先来看几个物理公式。

P = IU, E = PT

能耗(E):即能量损耗,指核算机体系一段时刻内总的能量耗费,单位手机克隆是焦耳(J)

功耗(P):即功率损耗,指单接口类型位时刻内的能量耗费,反手机号查快递映耗费手机克隆能量的速率,单位是瓦特(W)

电流(I):指手机电池放电的电流值,手机常用 mA 为单位

电压(U):指手机电池放电的电压值算法设计与分析规范放电电压 3.7V,充电截止电压 4.35V,放电截止电压 2.75V (以典型值举例,不同设备的电池电压数值有差异)

电池容量 :常用单位 mAh,从单位意义上看是电荷数,实践表征的是电池招聘求职以典型电压放电的时长。

如下面的功耗测企图所示,算法分析的目的是手机一般以稳定的典型算法分析的目的是电压工作,为了核算便利,就把电压稳定为 3.7V,那么手机号最旺财的尾数 P = I3.7, E = I3.7T,即用 mA 表征功耗,mAh 表征能耗。

总结:对同一机型,咱们用手机号查快递电池容量(mAh)改变的来表征一段时刻总能耗,用均匀电流(mA)来表征功耗水平;如 4000mAh 电池的手机刷抖音 1 小时耗电 11%,耗电量(能耗)440mAh算法的时间复杂度取决于,均匀电流 440mA

抖音 Android 功用优化系列:抖音功耗优化实践

图 1. 功耗接口测企图

为什么要做功耗优化

从摘要里咱们已经了解到高功耗会引发用户的电量焦虑,也会导致算法的有穷性是指糟糕的发热体会,然后下降了用户的运用志愿。优化功耗除了算法的空间复杂度是指能够咱招聘求职们带来更好的用户体会,进步用户运用时长外,下降运用耗电还具有很显着Android的社会算法价值,用一个当时比较火的词,便是能够为碳中和事业奉献一手机银行份力量。

怎么来做功耗优化

不同于 Crash、ANR 等常见的android下载安装 APM 目标,功耗是一个归纳性的课题,剖析起来很简单让人无从下手。用户反应了耗电问题,可能是 CPU 呈现手机耗电快怎么办高负载,又或许是后台频频的网络拜访,也可能是动手机号最旺财的尾数画走漏导致高功耗招聘文案。或许咱们自己的事务没什么改变,单纯便是环境要素影响,导致用户觉得耗电,比方低温导致的锂电池放电衰减。

咱们的思路是从器材出发,运用的耗电终究都能够分化为手机器材的耗电,所以咱们先对抖音做器材耗电的拆解手机怎么定位别人手机,看首要耗电的是哪些器材,再看怎么削减器材的运用,这样就做到有的放矢。

下面咱们先从功耗组成,功耗剖析,以及功耗优化等方面来讲述怎么开展功耗优化。

功耗组成

抖音 Android 功用优化系列:抖音功耗优化实践

这儿罗列了手机硬件的基本形态,每个模块又是由杂乱的器材构成手机耗电速度过快怎么办。如咱们常说的耗电大头 SoC 里就包含 CPU 的超大核androidstudio安装教程,大核,小核,GAndroidPU,DDRC(内存接口),以及外设区的各种小 IP 核等。所以整机的功耗终究就能够拆解为各个器材的功耗,而运用的功耗便是核算其运用的器材发生的功耗。

以抖音的 Feed 流场景为例,亮度固算法定 120nit、7 格音量、WiFi 网android/harmonyos手机耗电快怎么办下,咱们对抖算法的时间复杂度取决于音做了器材级androidstudio安装教程的功耗拆解。能够看到抖音的 feed 功耗首要集中在 SOC(CPU,GPU,DDR),Display,AuAndroiddio,WIFI 等四个模块。

抖音 Android 功用优化系列:抖音功耗优化实践

器材功耗核算

那这些器材功耗是怎么被拆解出来的呢?原理是: 先对器材进行耗电因子拆解,建立器材功耗模型,得到一个器材耗电androidstudio安装教程的核算公式。经过运转时计算器材的运用数据,代入功耗模型,就能够核算出器材的功耗。运用的功耗则是从器材的总功耗里按运手机用运用的比android什么意思较进行分配,这样就得到了运用的器材耗电。因为影响器材功耗的耗电算法的有穷性是指因子众多,这儿杂乱的便是怎么对耗电因子进行拆解以及建模。有了精准的建模,后边便是厂商适配校准参数的进程了。

谷歌供给了一套通用的器材耗电模型和装备计划,OEM 厂商能够按通用计划对自己的产品接口测试进行参数校准和装备。如下图里 AOSP 里的耗电装备里,以接口文档 Wifi 的耗电核算为例。source.android.com/devices/tec…

抖音 Android 功用优化系列:抖音功耗优化实践

抖音 Android 功用优化系列:抖音功耗优化实践

谷歌供给的建模计划是对 WIFI 分状况核算耗电,WIFI 不同状况下的耗电差异十分显着。这儿分为了 wifi.on(对应 wifi 翻手机耗电速度过快怎么办开的基准电流), wifi.active(对应 wifi 传输数据时的基准电流), wifi.scan(对应 wifi 单次扫描的基准耗电), wifi 数据传输的耗电(controller.rx,controller.tx, controandroid是什么手机牌子ller.idle)。依据 wifi 收发数据的那核算 wifi 的耗电,经过计算这几个状况的时长或次数,乘以对应的电流,就得到 wifi 器材的耗电了。

因为谷歌是依照通用性来规划的器材耗电模型,一般只能大致核算出器材的耗电接口类型水平,详细到某个产品上可能差错很大。接口类型各 OEM 厂商一般有依据自身硬件的耗电计算计划,能够对耗电做更加精密精确的核算。这儿还用 wifi 举例:如 OEM 厂商能够别离依照 2.4G,5GWIFI 独自建模,并引进天线信号的改变对应的基准电流改变,以及计算 wifi 芯片所工作的频点时长,按频点细化手机克隆模型等等,OEM 厂商能够规划出更契合自己接口是什么设备的精准功耗模型,核算出更精准的 wifi 耗电。这就要依据详细产品的硬件计划来确定了。

功耗剖析

经过算法导论上面的功耗组成的介绍,咱们能够看到功耗影响要素是多种多样。在做运用功耗剖析时,咱们既要有方法精确评价运用的耗电水平,又要有方法来分化出耗电的组成,以找到优化点。下面就分为功耗评价和功耗归因剖析这两部分招聘文案来介绍。

功耗评价

如前文功耗根底知识里所说,咱们运用电手机流值来评价运用的功耗水平。在线下场景,咱们经过操控测验条件(如固定测验机型版别,清理后台,固定亮度,音量,稳定的androidstudio安装教程网络信号条件等)来测得可信的精确电流值来评价运用算法分析的目的是的前后台功耗。在线上场景,因为运用退后台时,用户运用场景的杂乱招聘软件性(指用户运转的前台运用不同),咱们只收集前台接口自动化整机电流来做线上版别手机耗电速度过快怎么办android手机控,运用其他目标,如后台 CPU 运用率来监控后台功耗。下面咱算法分析的目的是们介绍一些常用功耗评价的手法。

PowerMonitor

现在业界最通用的整机耗电评价方法是经过 PowerMonitor 外招聘图片大全图片好看接电量计的方法,高频率高精度收集电流进行评价。常用需求精密化承认耗电状况,尤其是后台静置,灭屏等状况下的电流输出,厂商的准入测验等。常用的 Mosoon 公司的 PowerMonitorA接口文档AA10F,电流量程在 1uA ~ 6A 之间android下载,电流精度 50uA,采样周期 200us (5KHZ)。

抖音 Android 功用优化系列:抖音功耗优化实践

电池电量计

PowerMonitor 尽管丈量成果最精确。可是需求拆接口卡机比较费事。咱们还能够经过谷歌 BatteryManager 供给的接口直接读取电池电量计的计算成果来获得算法电流值。

电池电量计担任估量电池容android/harmonyos量。其基本功用为监测电压手机号最旺财的尾数,充电/放电电流和电池温度,并估量电池荷电手机怎么定位别人手机状况(SOC)及电池的手机号最旺财的尾数完全充电容量(FCC)。有两种典型的电量计:电压型电量计和电流型电量计,现在手机上运用的电量计首要是电流型电量计。

  • 电压型电量计:简单讲便是检测当时电压,然后查询电压-电池容量对应表,获得电量预算
  • 电流型电量计:也叫库仑计,原理是在电池的充电/放电途径上的衔接一个检测电阻。ADC 量测在检测电阻上的招聘启事电压,转换成电池正在充电或放电的电流值。实时计数器(RTC)则供给把该电流值对时刻作积分,然后得知流过多少库伦。

抖音 Android 功用优化系列:抖音功耗优化实践

Android 供给了 BMS 的接口,经过特点供给了电池电量计的计算成果

  • BATTERY_PROPERTY_招聘CHARGE_COUNTER 剩下电池容量,单位为微安算法设计与分析
  • BATTERY_PROPERTY_CURRENT_NO手机耗电速度过快怎么办W 瞬时电池电流,单位为微安
  • BATTERY_PROPandroid/harmonyosERTY_CURRENT_AVERAGE 均匀电池电流,单位为微安
  • BATTERY_PROPERTY_CAPACITY 剩下电池容量,显现为接口和抽象类的区别整数百分比
  • BATTERY_PROPER手机号查快递TY_ENERGY_COUNTER 剩下能量,单位为纳瓦时
importandroid.os.BatteryManager;
importandroid.content.Context;
BatteryManagermBatteryManager=(BatteryManager)Context.getSystemService(Context.BATTERY_SERVICE);
Longenergy=mBatteryManager.getLongProperty(BatteryManager.BATTERY_PROPERTY_ENERGY_COUNTER);
Slog.i(TAG,"Remainingenergy="+energy+"nWh");

以下面的 Nexus9 为例,该机型运用了 MAX17050 电流型电量计,解析度 156.25uA,更新周期 175.8ms。

抖音 Android 功用优化系列:抖音功耗优化实践

从实践成果上看,因为不同的手机算法的有穷性是指运用的电量计不同,导致直接读取出来的电流值单位也不同,需求做数接口测试据转化。为了简化电池算法的五个特性数据的获取,咱们开发了 Thor SDK,只保存电流、电压、电量算法分析的目的是等目标的收集进程,针对不同机型做了数据归一处理,用户能够不必关怀内部完成,只需求供给需求采样的数据类型、采样周期就能够守时返回所需求的功耗相关的数据,咱们用 T手机hor 比照 PowerMonitor 进行接口和抽象类的区别了数据一致性的校验,差错<5mA,满意线上监控需求。

此外咱们做了 Thor 收集功招聘信息怎么写用自身的功耗影响,能够看到 1s 收集算法是指什么 1 次的状况下,均匀电流上涨了 0.59mA,所以说这种计划的功耗影响十分低,合适线上收集电流值。

抖音 Android 功用优化系列:抖音功耗优化实践

厂商自带耗电排行

算法的五个特性电排行

厂商供给的耗电排行也能够用来检查一段时刻内的运用耗电状况。如下面华为的耗电排行里,对招聘模板硬件和软件耗电进行了分拆,并给出了运用的详细耗电量。其他厂商 OV 也是支撑详细招聘启事的耗电量,小米则是供接口类型给耗电占比,并不会供给详细耗电量。

入口:手机淘宝设置->电池->耗电排行

抖音 Android 功用优化系列:抖音功耗优化实践

功耗归因

从功耗评价咱们能够判别运用的全体耗电状况,但详细到某个 case 高耗电的原因是什么,就要详细问题挑选不同的东西来进行剖析了。手机管家现在能够直接归因到事务代码的首要是 CPU 相关的东西,这也是咱们现在剖析问题的首要方向,后续咱们也会建造流招聘软件量归因等才干,下面我罗列了常用的剖析东西。

Battery Historian

谷歌官方供给的剖析东西,需求先进行功耗测验,再经过 adb 抓取 bugreport.zip,再经过网页东西翻开,可供给粗粒度的功耗归因。

本质上是对招聘启事 systemserver 里的各种服务计算信息+手机状况+内核计算信息(kernel 唤醒)的算法的特征展现,运用耗电的预算依靠厂商装备的 power_profi招聘le.xml。比较合适对整机耗电问题做耗电归因,如归因到某运用耗电较高。

关于手机管家单个运用,因为对 wakelock,alarm,gps,job,syncservice,后招聘海报台服务运转时长等计算的比较详细,比较合适做后台耗电的归因。关于网络反常,CPU 反常,只能看到耗费较多招聘信息最新招聘2021,无法归因到详细事务。developer.androi接口自动化d.com/topic/perfo…

抖音 Android 功用优化系列:抖音功耗优化实践

抖音 Android 功用优化系列:抖音功耗优化实践

AS Profiler

比较于 BatteryHistori招聘文案an 需求先手动测验,再 adb 抓取的操作繁琐,AS 自带的 Profil接口测试e算法工程师r 供给了 Energy 的可视化展现。接口自动化运用 debug 版别的运用,能够直观的看到功耗的耗费状况,便利了线招聘文案下测验。需求留意的是手机怎么定位别人手机这儿展现的功耗值是经过 GPS+网络+CPU 核算的拟合值,并不是真实功耗值,只表征功耗水平。

抖音 Android 功用优化系列:抖音功耗优化实践

Profiler 同步展现了 CPU 运用率,网络耗电,内存信息。支撑 CPU 和线程等级的跟踪。经过主动录制 Trace,能够剖析各线程的 CPU 运用状况,以手机及耗时函数。关于简单复现的 CPU 高负载问题或许固定场景的耗时问题,这种方法能够很简单看到根因。但 trace算法是指什么 的展现方法并不合适偶现的 CPU 高负载,信息量特别多反而让人难以捉住android平板电脑价格要点。接口英文

网络耗电能够很便利抓取到上行下行的android的drawable类网络恳android的drawable类求,能够展现网络恳求的 api 细节,并且划分到线程手机耗电速度过快怎么办上。关于频频的网络拜访,很简单找到问题点。但现在只支撑经过 HttpURLConnection 和 OkHttp 的网络恳求,运用其他的网络库,Profiler 追寻不到。

能够看到官方出品的东西,功用比androidstudio安装教程较完善,但只支撑 debug 版别的 app 剖析,假如要剖android的drawable类析 release 版别的 app,需求运用 root 手机。总体而言,Profiler 比较合适于线下固定某个事务场景的剖析。developer.android.com/studio/prof…

线程池监控

运用上面的东西监控单个线程的 CPU 反常是能够的。可是关于线程池,Handler,AsyncTask 等异步使命不太简单接口crc错误计数归因详细的事务,尤其是网络库的线程池,因为履行的网络恳求逻辑是相同的,只靠手机抓线程仓库是不能归因到详细事务的。需求计算提交使命的源头代码才干抓到真正问题点。

咱们能够经过多种机算法的特征制,如改造线程池,java ho招聘模板ok 等,对提交使命方进行了详细记录和聚合,能够帮助咱们剖析线程池里的耗时使命。

线上 CPU 反常精准监手机

算法的特征了线下的 CPU 剖析接口测试,咱们在进行线上 CPU 反常监控的建造时,咱们考虑到手机耗电快怎么办单纯运用 CPU 运用率阈值不能精准的判别进程是否处算法的时间复杂度取决于于 CPU 反常。比方不同的 C算法工程师PU 类型自身的算法的时间复杂度取决于功用不同,在某些低端 CPU 上的运用率便是比较高。又比方体系有不同的温控战略,省电战略,会对手机进行限频,招聘图片大全图片好看对使命进行 CPU 中心搬迁。在这种android下载安装状况下,运用也会有更高的 CPU 运用率。

因而咱们依据不同的变量要素(如 CPU 类型,进程/线程的 CPU 时长在不同核,不同频点的招聘海报分布,充电,电量,内存,网络状况等),将 CPU 的运用阈值进行精密判定,针对不同场景、不同设备、不同事务制定精密化的 CPU 反常阈值,然后完成了高精度的 CPU 反招聘海报常抓取。

此外还有业界的一些归因结构,在这儿不展开介绍了。

  • Facebook Batte算法ryMetrics: 从 CPU/IO/Location 等多种归因点收集数据,和体系 BatteryStatsService 的计算行为相似,偏重于线招聘模板下做 App 的招聘信息怎么写耗电评价和器材分化。
  • WeChat BatteryCanary: 供给了线程和线程池归因才干,相android/harmonyos关于其他东西,添加前后台,亮灭屏,充放电,前台手机淘宝服务计算的计算。

功耗接口测试用例设计优化实践

上面介绍了功耗的组成,以及怎么剖析咱们运用的招聘海报耗电。这儿咱们对功耗优化做一个全体性介绍接口自动化。咱们把优化思路从器材角度展开手机淘宝,罗列咱们有哪些优化的思路和办法,能够削减器材的运用状况,进而下降功耗。此外关于一些用户可感知的有损事务的降级,咱们经过低功耗形式来做,在低电量时经过更激进的降级手法,缓解用户的电量焦虑,带来用户的运用时长的进步。

下图罗列了各器材上的优化思路,有一些优化思路会对多android平板电脑价格个器材都有收益,在这儿没有特别详android手机细的区别,就划分接口在首要影响的器材上,如削减改写区域,对 GPU,CPU,DDR 都有收益,首要收益在 GPU招聘模板 制作上,鄙人图里就罗列在 GPU 上了。

招聘软件时咱们罗列了厂商侧的一些优化计划,运用一般无需重手机淘宝视,比方下降屏幕改写率,TP 扫描频率,整机低分辨率等,这种能够经过厂商合作的方法进行更详尽的调优,如分场景动态调整屏幕改写率,在查接口测试找列表场景运用 90HZ 高刷手机耗电快怎么办,在短视频场景结合帧率对齐进行改写率下降为手机 30HZ,招聘信息最新招聘2021算法工程师获得更平衡的功耗和功用体会。

抖音 Android 功用优化系列:抖音功耗优化实践

DISandroid是什么系统PLAY

显现功耗的优化首要围绕对屏幕,GPU,CPU,视频解码器,TP 等器材降级运用或许削减处理,尽量运用android什么意思硬件处理等完成的。关于屏幕而言首要是下降亮度,改写率,TP 扫描频率等。

屏幕亮度

屏幕亮度是屏幕功耗的最大来历,亮度和功耗简直是正比的android是什么系统联络,拜见下图:

抖音 Android 功用优化系列:抖音功耗优化实践

能够看出无论是 IPS 屏幕仍是 OLED 屏算法是指什么幕,跟着屏幕亮度添加,功耗简直是androidstudio安装教程线性添加。针对 OLED 屏幕则是白色内容的功耗更高,深色内容则功耗相对更低。运用通用的下降亮度的方法有进入运用后主动下降亮度,或许招聘求职运用深色的 UI 形式,来到达屏幕亮度下降的作用。厂商会经过 FOSS 或许 CABC 的计划,下降屏幕亮度。

深色形式

运用 AMOLED 屏幕自身的原理,黑色功耗最低,所以能够尽量选用较暗的主题色彩等,androidstudio安装教程终究获取较低的功耗,能够坚持用户运用时刻更长。

为什么说 AMOLED 屏幕显现黑色界面会耗费更少的电量呢?这要从它与传统的 LCD 屏幕之间的发光算法分析的目的是原理区别上来说。

LCD 背光显现屏,首要是靠背光层,发光层由许多 LED 灯泡组成,显现白光,经过液晶层偏振操控,显现出 RGB 色彩。在这种状况下,黑接口测试用例设计色与其它色彩的像素并没有什么不同,尽管算法的空间复杂度是指看起来并没有亮光,可是仍然仍是处于发光的状况。

AMOLED 屏幕根本就没有背光一说。相反,每个小的亚像素仅仅宣布弱小的 RGB 光,假如屏幕需求显现黑色,只需求经过招聘求职调整电压使得液晶分子摆放旋转然后遮蔽住背光就能够完成黑色的作用,不会额定点亮任何色彩。

抖音 Android 功用优化系列:抖音功耗优化实践

下面引证测验运用为 Reddit Sync 的不同场景下彩色和黑色形式功耗比照。(参阅链接:m.zol.com.cn/article/489… )

抖音 Android 功用优化系列:抖音功耗优化实践

从上招聘求职面的图表咱们能够很清楚的看到,在黑色布景的状况下,AMOLED 屏幕在能耗上确实要比一般色彩布景少了许多,在手机淘宝 Reddit Sync 的测招聘软件验中,均匀耗电量要下降 40%左右。

运用能够规划自己的深色形式主题,同步手机体系深色形式开关的切换。现在抖音布景设置有两种形式如下图,招聘能够看到经典形式便是深色形式,正好对应于深色主题,android的drawable类这个也能够手机搬家和手机渠道的接口测试用例设计深色形式也结合起来。

抖音 Android 功用优化系列:抖音功耗优化实践

FOSS

FOSS (Fidelity Optimized Signal Scaling,保真优化信号缩放)是芯片厂商供给的一种对 AMOLED 屏幕调理的低功耗计划。LCD 屏幕上对应的是 CAB招聘C (Content Adaptive Brightness Control招聘,内容适应背光操控)。一方面下降屏幕亮度,一方面调理显现内容灰度值,然后使显现作用差异不大,因为下降了屏接口和抽象类的区别幕亮度,android平板电脑价格所以获取的功耗收益较大。手机管家一般大约是 0.2接口crc错误计数 小时左右,即均匀可延伸手机运用时刻 0.2 小时算法的时间复杂度取决于左右。

已知的状况是厂商的 Fandroid平板电脑价格OSS 计划在某些参数状况下会导致个别场算法的特征景呈现变色或闪耀问题。假如遇到未承认闪耀问题,在内部定位无法承认原因时,能够跟厂商咨询进行扫除。

下降改写率

现在市面上部分招聘软件手机支撑 60HZ,90HZ,120HZ,144HZ 等,高的改写手机耗电速度过快怎么办率带来手机耗电速度过快怎么办了流通度进步,用户的体会更好,可是功耗更高。 一般来讲在体系运用界面比方桌面,设置,改写率会跟当时体系设置坚持一致,而在详细运用中,改写率会依据不同场景做调整。比方抖音,即便在高刷屏幕上,渠道体系一般挑选让抖音运转在 60HZ 改写率,然后相对功耗较低。

针对不同接口卡的改写率,PhoneArena 就做了一个比较有参阅性的数据来验证这个观点。他们选取了两个品牌四款产品,都是高改写率的机型,在同一条件下进行 60Hz 改写率和 120Hz 改写率的测招聘启事验,成果 120HZ 改写率下手机续航比较 60HZ 下确实缩短了至少 10%,即便是支撑 90Hz 的一加 8 也是比 60HZ 改写率要差。

抖音 Android 功用优化系列:抖音功耗优化实践

图片来历:ww算法工程师w.sohu.com/算法的特征a/394532665…

下降 TP 扫描频率

一般游戏中为了进步点击响应速度会进步 TP 扫描频率,其他场景都选用默许的扫描频率。抖音一般运用默许的 TP 扫描帧率。

抖音 Android 功用优化系列:抖音功耗优化实践

GPU

GPU 的优化思路首要在削减不必要的制作或许下降制作面积,这体现在更低的分辨率,更低的帧率,更少的制作图层等方面。此外视频运用运用 SurfaceView 替换 TextureVie手机淘宝w 也有显着的功耗收益。关于杂乱的运算,咱们能够手机银行挑选更高能效比的器材来进行,比方运用硬件制作代替软件制作,运用 NPU 代替 GPU 履算法的特征行杂乱算法,对全体功耗都有显着下降。

下降分辨率

运用低分辨率

一般该形式下接口英文游戏和特定运用一般以较低分辨率运转。缩小了 GPU 制作区域和传输区域巨细,招聘求职下降了 GPU 和 CPU 以及传输 DDR 的功耗。功耗收益在游戏场景下比较大,线下测验特定渠道下1080p->720p约20mA左右,1440p->720p约40mA左右。

其原理如下,运用图层在低分辨率下制作,经过 HWC 通道扩展到屏幕分辨率并跟其余图层组成后送显。

抖音 Android 功用优化系列:抖音功耗优化实践

该功用一接口英文般渠道android什么意思侧设置,非游戏运用无需重视,游戏运用能够自己挑选设置低分辨率。

部分游戏比方腾讯系游戏(如 QQ 飞车、王者荣耀和平和精英等)内部也有不同分辨率的设置,默许以低分辨率运转,然后能够完成较低功耗。

整机低分辨率

所有运用都运转在低分辨率下。相同也缩小了 GPU 制作区域和传输区域巨细,下降了 GPU 和 CPU 以及传输 DDR 的功耗。功耗收益跟运用低分辨率相算法是指什么同,算法设计与分析一般运用在该形式下也有功耗收益。用户从体系设置菜单中切换,运用自身一般无需重视。

其原理如下,所有图层都在低分辨率接口类型下制作,并在低分辨率下进行组成。组成后经过 scaler 一次性扩展到屏幕分辨率,然后进行送显。其中 scaler 是放缩硬件,由芯片渠道供给。

抖音 Android 功用优化系列:抖音功耗优化实践

削减改写区域

运用android/harmonyos布局动画方位相近,布局出来一个较小的接口和抽象类的区别区域,制作区域最小,改写区域最小, 然后功耗最低。不同场景,收益不同。

算法工程师下图两种状况,能够看到左边图,有 3 个动画区域(赤色框住区域),终究形成的 Dirty 区域为大的算法的五个特性红框区域,整个面积较大。而比照中招聘启事间图,动画两个赤色区域,经过运算后形成的 Dirty 大红框区域就android手机较小,GPU 的制作区域跟改写的传输区域都较小,然后相对而言,功耗较低。从最右侧功耗数据图中能够看出收益较大。

能够在开发者选项中翻开:设置 ->android的drawable类 开发者选项 -> 显现GPU视图更新,当改写规模与动画规模显着手机号查快递不一致时便是动画布局不合理。这种状况需求详细到代码层面剖析写法的问手机耗电速度过快怎么办题并修正算法的特征

抖音 Android 功用优化系列:抖音功耗优化实践

下降制作频率

一般在游戏或运用动画中运用,能够下降 GPU 制作频率和后边招聘的改写频率。经过下降动画制作频率,能够下降 GPU,CPU 及 DDR 功耗。

不同帧手机耗电快怎么办率功耗状况比照如下,能够看到低帧率下比较高帧率,功耗显手机号查快递着低了许多。

抖音 Android 功用优化系列:抖音功耗优化实践

在抖音运用中,低制作帧率能够经过在抖音内部主动下降动画等帧率完成。在抖音推荐界面音乐转盘动画和音符动画中下降帧率,能够显着的下降功耗。此外也能够经过厂商侧供给 soft vsync 完成 30HZ 制作,这部分抖音与厂商合接口英文作,Su招聘启事rfaceFlinger 操控 APP vsync,降帧时 Su接口是什么rfaceFliandroid什么意思nger vsync 输出降为 30fps,在特接口定条算法是指什么件下主动下降帧率,以延伸运用时长。

帧率对齐

android下载安装抖音推荐页面中,经过视频和下降频率后的动画到达同步,能够完成整个界面以30HZ 制作和改写。 否则,假如视频30hz和动画30帧正好交错,终究形成的制作/改写频率仍是60帧,没有到达最优。咱们经过调理各种动画的制作流程,将动画全体制作对齐,全体帧率显着下降。

削减过度制作

过度制作(Overdraw)描述的是屏幕上的某个像素在同一帧的时刻内被制作了屡次。在多层次重叠的 UI 结构里面,假如不行见的 UI 也在做制作算法的空间复杂度是指的操作,会导致某些像素区域被制作招聘软件了屡次算法的空间复杂度是指,同时也会糟蹋许多的 CPU 以及 GPU 资源。

能够经过如下来调试过度制作:翻开手机,设置 -> 开发者选项 -> 调试 GPU 过度制作 -> 显现 GPU算法的时间复杂度取决于 过度制作。过度制作的存在会导致界面显现时糟蹋不必要的资源去烘托看不见的布景,或许对某些像素区域屡次制作,就会导致界面加载或许滑动时的不流通、掉帧,关于用户体会来说便是 App 特别的卡顿。为了进步用户体会,进步运用的流通性,优化过度制作的工作仍是很有必要做的。

抖音算法的有穷性是指的 feed 页的过度制作十手机分的严峻,抖音存在 5 层过度制作。下图左边是优化前的过渡制作状况,右侧是优化后的过度制作状况,能够看出优化后显着改善。

抖音 Android 功用优化系列:抖音功耗优化实践

运用 SurfaceView 视频播映

TextureView 和 SurfaceView 是两个最常用的播映视频控算法的空间复杂度是指件。TextureVie手机耗电速度过快怎么办w 控件位于主图层上,解码器将视频帧传递到 TextureView 目标还需求 GPU 做一次制作才干在屏幕上显现,所以其功耗更高,耗费内存更大,CPU 占用率也更高。

控件方位差异如下,能够看招聘文案出 SurfaceView 具有独立的 Surface 位于独招聘软件自的图层上,而 TextureView 位于主图层上。

抖音 Android 功用优化系列:抖音功耗优化实践

BufferQueue 是 Android 图形架构的中心,算法工程师其一侧是生产者,另一侧是消费者。从这方面看,SurfaceView算法的空间复杂度是指 和 TextureView 的差异如下。简单看出,SurfaceView 流程更短,内存运用更少,也没有 GPU 制android/harmonyos作,功耗更省。

抖音 Android 功用优化系列:抖音功耗优化实践

下面是一些 SurfaceView 替换 TextureV手机耗电速度过快怎么办iew 后的收益数据:

  • CPU 数据上看,SurfaceView 要比 Textur接口自动化eView 优化 8%-13%招聘图片大全图片好看
  • 功耗数据上看,Surfa接口测试用例设计ceView 要比 TextureView 均匀功耗低 20mA 左右。

硬件制作和软件制作

硬件制作手机号最旺财的尾数是指经过 GPU 制作,Android 从 3.0 开端支撑硬件加速制作,它在 UI 显现和接口英文制作功率方面远高于软手机克隆件制作,可是 GPU 功耗相对较高。现在是算法的时间复杂度取决于体系默许的制作方法。

软件制作是指经过 CPU 完成制作,Android 上面运用 Skia 图形库来进行制作。两者差异拜见下图。

抖音 Android 功用优化系列:抖音功耗优化实践

现在默许是开硬件加速的,能够经过设置 Activity,Application,窗口,View 等方法来指算法定软件制作。手机假如运用需求独自指定某些场景的软件制作方接口和抽象类的区别法,需求对功用、功耗招聘启事等做好评价。参阅链接:developer.android.com/guide/topic…

手机耗电快怎么办乱算法用 NPU 代替 GPU

现在的较新的 SoC 渠道都带有专门进行 AI 运算的 N招聘文案PU 芯片,运用 NPU 代替 GPU 运转一些杂乱算法,能够有接口和抽象类的区别效的节约 GPU 功耗。如视频的超分算法,能够给用户带来很好的体会。可是超分敞开对 GPU 的耗电影响很大,在某招聘些渠android什么意思道测验整手机淘宝机功耗能够高出 100mA,挑招聘求职选用 NPU 替换 Gandroid下载安装PU 是一种优化方法。

CPU

CPU 的优化是功耗优android/harmonyos化里最常见的,咱们遇到的大部分的 CPU 反算法的有穷性是指常都是呈现了死循环。这儿运用上面介绍招聘启事过的功耗归因东西,都能够很简单的发现死循环问题。此外高频的耗时函数,作用和死循环相似,很简单让 CPU 大核跑到高频点,带来 CAndroidPU 功耗添加。别的一个典型的 CPU 问题,便是动画走漏,走漏动画大概能带来 20mA 的功耗添加招聘海报

因为 CPU 工作耗电很高,手机渠道大多会添加各种低功耗的 DSP 来分管 CPU 的工作,削算法的有穷性是指减耗电,如常见视频解码,运用硬解会有更好的功耗表现。

CPU 高负载优化

死循环管理

死循环是咱们遇到的最显着的 CPU 反常,一般表现为某一个线程占满了一个大核。线程运用率到达了 100%,手时机很简单发热,卡顿。

这儿举一个实践修复的死循环例子,在一段循环打包日志的代码逻辑里,所有 log打包完了,才会break跳出循环招聘海报。当接口和抽象类的区别db query呈现了反常,反常手机号最旺财的尾数处理分支并没有做break,导致呈现了死循环。

//方法逻辑有裁剪,仅贴出首要逻辑
privateJSONArraypackMiscLog(){
do{
......
try{
cursor=mDb.query(......);
intn=cursor.getCount();
......
if(start_id>=max_id){
break;
}
}catch(Exceptione){
}finally{
safeCloseCursor(cursor);
}
}while(true);
returnret;
}

关于死循环管招聘信息最新招聘2021理,咱们经过实践解决的问题,总结了几种常见的死循环套路。

//边界条件未满意,无法break
while(true){
...
if(shouldExit()){
break
}
}
//反常处理不稳当,导致死循环
while(true){
try{
dosometing;
break;
}catch(e){
}
}
//音讯处理不当,导致Handler线程死循环
voidhandleMessage(Messagemsg){
//dosomething
handler.sendEmptyMessage(MSG)
}

高频耗时函数管理

除了android手机死循环问题,咱们遇到的别的一种常见的便是androidstudio安装教程高频的耗时函数。经过线上监控 CPU 反常,咱们也找到许多可优化的点。如 md5 紧缩算法的耗时,正则表达式的不合理运用,运用 cmd 履行体系指令的耗时等。这种就 c招聘ase by case 的修复,接口文档就有很不错的收益。

后台资源规范运用

Ala接口rm,Wa手机kelock,JobScheduler 的招聘模板规范运用

最常见的后台 CPU 耗电便是对后台资源的不合理运用。Alarm 的频频唤醒,wakelock 的长时刻不开释,JobScAndroidheduler 的频频履行,都会使 CPU 坚持唤醒状况,形接口crc错误计数成后招聘图片大全图片好看台耗电。这种行为很简单让体系判别运用为后台反常耗电,一般会被体系清理,或许宣布高耗电提示。

招聘模板手机银行能够经过 dumpsys alarm & dumpsys power & dumpsys jobscheduler 检查相关的计算信息,也能够经过 BH 的后台计算来剖析自身的运用状况。

参阅绿盟的功耗规范,灭屏 Alarm 触发小于过 12 次/h,即 5min 一次,5m招聘文案in 一次在数据事务下能够保证长链接存活,厂商的后台功耗优化接口类型也一般会强制对齐 Alarm 为 5min 触发一次。

后台的 Partial Wakelock 一般会被手机搬家要点约束,非可感知的场景(音乐,导航招聘,运动)等会被厂商强制开释 wakelo招聘信息最新招聘2021ck。依照绿盟的规范,灭屏下每小时累计持招聘文案锁小于 5min,从实践经历上看,接口crc错误计数持 Partial 锁超过 1min 就会被标为 Long 的 wakelock,假如是运用在后台无可感知事务并且频频持锁,导致体系无法休眠的,体系会触发 forcestop 清理。

抖音 Android 功用优化系列:抖音功耗优化实践

某些守时使命能够运用 Jobandroid是什么系统Sc手机淘宝heduler 来代替 Al接口卡arm,Job 的优点是能够组合多种触发条件,挑选一个最恰当的算法工程师时刻让体系调度自己的后台使命。这儿主张运用充电+网络可用状况下处理自己的后台使命,对功耗体会是最好的。假如是非充电场景下,设置条件频频触发 job,相同会带来android/harmonyos耗电问题。值得一提的是 Job 履行完要及时完毕。因为 JobScheduler 在履行时会持有一个*job/*开头的 wakelock,最长履行时刻 10min,假如接口crc错误计数一直在履行状况不完毕,就会导致体系无法休眠。

视频硬解替换软解

硬解一般接口和抽象类的区别是用手机渠道自带的硬手机耗电快怎么办件解码器来做解码然后完成视频播映,依据专用芯片的硬解码速度快、功耗低;软解码方面,一般运用 FFMPEG 内置的 H.264 和 H.265 的软件解码库来做解码。

下表是三星手机和苹果手机招聘文案别离在软硬解状况下的功耗,能够看出硬解功耗比软解功耗显着下降,现在抖音默许运用硬解。

抖音 Android 功用优化系列:抖音功耗优化实践

图片来历:www.noandroid手机obyard.com/article/p-e…

NETWOR招聘求职K

网络耗电是运用耗电的一个重招聘信息最新招聘2021要部分,一个数据包的收发,会同步拉动 CPU 和 Mod招聘信息怎么写em/WIFI 两大体系。因为 LTE 的 CDRX 特性(即没有数据包接纳,保持一守时刻的激活态,再进入睡眠,依靠运营商装备,一般为 10s),所以批量进招聘文案行网络拜访,削减频频的网络唤醒对网络功耗很有帮助。此外优化紧缩算法,削减数据传输量也从根底上削减了网络耗电。

此外弱信号条件下接口测试用例设计的网络恳求会进步天线的功率,也会触发频频的搜网,带来更高的网络功android是什么手机牌子耗。依据网络质量进行网络恳求调度,提早预缓存网络资源,能够削减网络耗电。

长链接心跳优化

关于运用的后台 PUSH 来说,运招聘海报用厂商稳定的 push 链路代替android是什么系统自己的长链接能够削减功耗。假如不能替换,也能够优化长链接保活的心跳,依据不同的网络条件动态的调整心跳。依据经历,数据事务接口测试用例设计下一般是 5mi接口n,WIFI 网络下一般能够到达 20min 或更久。

抖音关于长链接进行了的心跳优化,进入后台android什么意思的长链接心跳时刻距离 [4min, 28min],初始心跳 4mi手机n。选用动态心跳试探战略,每次步招聘海报进 2min,确定最大心跳距离。

Doze手机 形式适配

因为体系对后台运用有多种网络约束战略,最手机耗电速度过快怎么办常见的是 Doze 形式,手机灭屏一段时刻后会android什么意思进入 doze,约束非白名单运用拜访网络,并在窗口期解除约束,窗口期为每 10min 放开 30s。所以在后台接口文档进行网络拜访前要特别留意进行网络可用的判别,挑选窗口期进行网络拜访,防止因为被限网而糟蹋了 CPU 资招聘信息最新招聘2021源。

这儿举一个 Doze 未适配的后台招聘耗电例子,用户反应抖音自前次手机充满电(24h)后,没有在前台运用过,耗电接口占比 31%,剖析日志发现 I 在 Doze 约束网络期间,会触发轮询判别网络是接口否及时恢复,手机耗电快怎么办此逻辑在后台未适配 Doze 的手机耗电快怎么办窗口期形式,导致了后台频频尝试网络恳求带来的 CPU 耗电。

抖音 Android 功用优化系列:抖音功耗优化实践

AUDIO

下降音量

音频的耗电终究体现在 Codec 和 SmartPA(衔接喇叭的功率扩展器)两部分。削减 Audio 耗电最显着的便是削减音频的音量,这直接反应到喇叭的响度上。

用 0-15 级的音量进行测验,能够看到音量对功耗的影响巨大,尤其是超过 10 之后,全体增幅十分巨大。每一级简直与功耗成百算法是指什么分比上涨算法的有穷性是指

抖音 Android 功用优化系列:抖音功耗优化实践

  • 10-15 :1:30ma
  • 5-10:1:1.62ma
  • 0-5:1:招聘软件1.36ma

调整android的drawable类音频参数

因为用户对音量的感受很显着,直接大局下android/harmonyos降音量会带来不好的体会。厂商一般会针对不同的场景,规划不同的音频参数,如电影场景,游戏场景,导航场景,动态调理音频的高低频装备参数,兼顾了作用和功耗。

从这个角度出发,能够挑选和厂商合作,依据播映视频的内容,精密化调整音频参数,如电影剪辑类型视频就运用电影场景的参数,手机耗电速度过快怎么办游戏视频就切换为游戏场景的装备参数,然后到达用户无感调理音量节约功耗的意图。

CAMERA

Camera 是功耗大户,尤其是高分辨率高帧率的录制会带手机管家来快速的功耗耗费和温升。经过线下测算,算法的五个特性开播场景,Camandroid是什么系统era 功耗 200mA+,占整机的 25%以上。

优化C招聘启事amera功耗的思路首要是从事手机号最旺财的尾数务降级的角度上进行,如下降录制的分辨率,下降录制帧率等。之前抖音直播和生产端都是运用30帧,但终究算法是指什么只运用15帧,在开播端主招聘启事动下调收集帧率,按需设置帧率为1接口5帧,功耗显着下降了120ma。

SEandroidstudio安装教程NSOR接口卡

sensor 的典型功耗值很低手机耗电快怎么办,如咱们常用到的 accelerometer(加速度计)的典型功耗只要 180uA。但 sensor 的敞开会导致 cpu 的唤醒与负载添加,尤其是在运用退到后台,sensor 的乱用会显着添加待机功耗。能够在低电量时关闭不必要的 sensor,削减耗电。

GPS

精确度,频率,距离是影响 GPS 耗电的三个首要要素。其中精度影响定位的工作形式,频率和距离是影响工作时长,咱们能够经过优化这三者来削减 GPS 的耗电

下降精度

Android 原生定位供给 GPS 定位和网络定位两种形式。GPS 定位支撑离线定位,依靠卫星,没有网络也能定位,精度高,但功耗大,因需求敞开移动设备中的 GPS 定位模块,会耗费较多电量。

Network 定位(网络定位),定位速度快,只要具备网络或许基站要求,在任何地方都可完成瞬间定位,室内相同满意;功耗小,耗电量小;但定位精手机耗电快怎么办度差,简单手机耗电快怎么办手机搬家搅扰,在基站或许 WiFi 数量少、信号弱的地方定位质量较差,或许无法定位;必须衔接网络才干完成定位。

咱们能够在满意定位要求的状况下,主动运用低精度手机的网络定位,削减定位耗电,抖音在进入低功耗形式时,进行了 GPS 降级为网络定位,并且扩展了定手机银行位距离。

下降频率&进步距离

这儿除了事务上主招聘模板动操控频率与距离外,还推荐运用厂商的定位服务。为了优化定位耗电,海外 gms 以及国内厂商都供给了方位服务 SDK,本质上是经过体系服务统一管理方位恳求,依据电招聘信息怎么写量,信号,恳求方的延迟精度要求,进行动态调整,到达功耗与定位需求的接口文档平衡。供给了比如被动方位更新,获取最手机号最旺财的尾数招聘图片大全图片好看一次定位的方位信息,批量后接口测试用例设计台方位恳求接口文档等低功耗定位才干。手机银行

develop手机管家er.android.com/guiandroid下载de/topic… developer.huawei.com/consumeandroid是什么系统r/cn…

低功耗形式

上述的优化办法,有些在常规形式下已经实施。但有一部分是有损用户体会的,咱们挑选在低电量场景下去做,下降功耗,削减用户的电量焦虑,获得用户在低电量下更多运用时长。

在低功耗形式预研中,咱们罗列了许多可做的办法,经过 AB 试验,咱们去掉了算法的时间复杂度取决于事务负向的降级手法,比方亮度下降,音量下降等。此外在功用触发的战略上,咱们经过比照了低电量弹窗提示,设置里添加开关+Toast 提示,以及低电量主动进入,终究挑选了对用户体会最好的 30%电量无打扰主动进入的触发方法。

抖音 Android 功用优化系列:抖音功耗优化实践

经过试验发现,一些高发热机型,经手机号查快递过低功android/harmonyos耗形式全程敞开,也能够拿到事务接口是什么收益。说明部分有损的降级,用户在易发热的状况下也是接受的,能够置换出事务收益,现在低功耗形式线下接口英文测验功耗收益稳定在 20mA 以上。

总结

功耗优化是一个杂乱的归纳课题,既包含了运用东西对功耗做拆解评价,对反常的监控管理,也包含了主动发掘优手机怎么定位别人手机化点进行优化。上面罗列的优化思路,咱们也仅仅做了部分,还有部分待开展,包含功耗归因的东西建造上,咱们也还有手机许多能够优化的点。咱们会持续发力,产出接口是什么更多的计划,在满意运用需求的前提下,耗费更少的物理资源,给抖音用户带来更好的功耗体会。

参加咱们

抖音 Android 根底技术团队是一个深度寻求极致的团队,咱们专注于功用、架构接口测试、包巨细、稳定性、根底库、编译构建等方向的深耕,保证超大规模团队的研制功率和数亿用户的运用体会。现在北京、上海、杭州、深接口测试圳都有许多人才需求,欢迎有志之士与咱们共同建造亿级用户的 APP!

感兴趣的同学能够进入字节跳动招聘官网查询「抖音根底技术 Android」相关职位,也能够邮件联络:gaoyuan.mmm@bytedanc接口e.com 咨询相关信息手机耗电快怎么办或许直接发送简历内推!

发表评论

提供最优质的资源集合

立即查看 了解详情