应用前台省电秘籍——这些常见功耗雷坑不要再跳了

使用应用时,有时会出现掉电快、卡顿、过分发热等问题,影响用户体验的同时,也严重影响了应用使用时长和用户留存,如何解决上述问题?本文华为显示流程功耗优化专家王文华将分享议题——低功耗前台显示。android

手机器件包括SOC、TP、Modem、GPS、Audio、Camer等主要器件,这些器件在使用时对功耗的影响比较大。缓存

image

上图展现的是不一样器件对手机功耗带来的影响,下文将经过从主流应用中发现的问题实例,对应用功耗产生影响的设计因素展开介绍。网络

视图设计

image

许多应用存在无效刷新、多元素同时刷新等问题,致使数据运算量增长,出现过分占用手机CPU、GPU资源的状况,引发应用耗电增长,部分应用还会出现卡顿现象。并发

建议:布局

1)尽可能减少绘制窗体的面积。性能

2)减小多个元素同时刷新。大数据

3)减小距离较远的元素同时刷新。优化

以上建议减小应用在刷新状态下的数据量,减小数据对带宽、CPU、GPU的占用,无形中节省了功耗,提高了应用性能。编码

图层优化

image

在全屏界面下,有些应用的界面图层很是多,究其缘由是开发者没有将Activity销毁,致使图层合成的工做量很大,过分占用GPU资源,致使卡顿、显示效果差,同时功耗增大。设计

建议:图层数量控制在3个如下。

不须要GPU处理的组件减小耦合

有些视频类应用的视频流会采用SurfaceTexture或TextureView进行处理,经常出现GPU对界面从新绘制、重复工做的问题,部分场景可能存在时序变化,致使功耗增长,并发生卡顿。

建议:视频场景不要使用GPU重绘。

视频解码

应用有两种解码方式:硬解码和软解码。

image

软解码是纯粹依靠CPU来进行解码的一种方式,视频清晰度越高,CPU负载就越重,容易致使CPU能力不足出现卡顿,耗电量增长。

建议:使用硬解码,对于高清视频播放类应用的性能、功耗均有保障。

数据请求:

image

视频播放类应用在线播放须要提早预缓存视频资源,应用若是频繁发出网络请求,缓存过程的频繁交互就会致使对CPU等资源占用过分,耗电量增长。

建议:大数据块的集中下载既能知足用户体验又能有效下降WIFI功耗和负载,下载完成后可在间隔一段时间内保持Sleep状态。

布局与绝对坐标解耦

应用在不一样分辨率的屏幕下显示时,若是使用绝对坐标会形成应用部分场景显示偏移,效果没法保障的问题。

建议:

1)应用布局时,在使用wrap_content、match_parent 和dp 单位为 XML 布局文件中的视图定义 android:layout_width 和 android:layout_height 时,可确保应用视图在当前设备屏幕上提供适当尺寸。

2)应用编码时请勿使用硬编码像素值,固定像素值将致使应用在不一样密度的屏幕上出现布局错误。

3)建议应用不要使用AbsoluteLayout 布局,AbsoluteLayout 强制应用使用固定位置放置子视图,影响应用显示效果。

4)在使用尺寸和密度特定资源时,尽管系统会根据当前屏幕配置扩展布局,但在不一样屏幕尺寸上,应用可能须要调整UI以及提供针对不一样密度优化的可绘制对象。(指在资源目录中针对不一样密度的资源进行定义)

关注安卓绿色联盟公众号,回复关键词"2305"获取PPT

相关文章
相关标签/搜索