使用应用时,有时会出现掉电快、卡顿、过分发热等问题,影响用户体验的同时,也严重影响了应用使用时长和用户留存,如何解决上述问题?本文华为显示流程功耗优化专家王文华将分享议题——低功耗前台显示。android
手机器件包括SOC、TP、Modem、GPS、Audio、Camer等主要器件,这些器件在使用时对功耗的影响比较大。缓存
上图展现的是不一样器件对手机功耗带来的影响,下文将经过从主流应用中发现的问题实例,对应用功耗产生影响的设计因素展开介绍。网络
许多应用存在无效刷新、多元素同时刷新等问题,致使数据运算量增长,出现过分占用手机CPU、GPU资源的状况,引发应用耗电增长,部分应用还会出现卡顿现象。并发
建议:布局
1)尽可能减少绘制窗体的面积。性能
2)减小多个元素同时刷新。大数据
3)减小距离较远的元素同时刷新。优化
以上建议减小应用在刷新状态下的数据量,减小数据对带宽、CPU、GPU的占用,无形中节省了功耗,提高了应用性能。编码
在全屏界面下,有些应用的界面图层很是多,究其缘由是开发者没有将Activity销毁,致使图层合成的工做量很大,过分占用GPU资源,致使卡顿、显示效果差,同时功耗增大。设计
建议:图层数量控制在3个如下。
有些视频类应用的视频流会采用SurfaceTexture或TextureView进行处理,经常出现GPU对界面从新绘制、重复工做的问题,部分场景可能存在时序变化,致使功耗增长,并发生卡顿。
建议:视频场景不要使用GPU重绘。
应用有两种解码方式:硬解码和软解码。
软解码是纯粹依靠CPU来进行解码的一种方式,视频清晰度越高,CPU负载就越重,容易致使CPU能力不足出现卡顿,耗电量增长。
建议:使用硬解码,对于高清视频播放类应用的性能、功耗均有保障。
视频播放类应用在线播放须要提早预缓存视频资源,应用若是频繁发出网络请求,缓存过程的频繁交互就会致使对CPU等资源占用过分,耗电量增长。
建议:大数据块的集中下载既能知足用户体验又能有效下降WIFI功耗和负载,下载完成后可在间隔一段时间内保持Sleep状态。
应用在不一样分辨率的屏幕下显示时,若是使用绝对坐标会形成应用部分场景显示偏移,效果没法保障的问题。
建议:
1)应用布局时,在使用wrap_content、match_parent 和dp 单位为 XML 布局文件中的视图定义 android:layout_width 和 android:layout_height 时,可确保应用视图在当前设备屏幕上提供适当尺寸。
2)应用编码时请勿使用硬编码像素值,固定像素值将致使应用在不一样密度的屏幕上出现布局错误。
3)建议应用不要使用AbsoluteLayout 布局,AbsoluteLayout 强制应用使用固定位置放置子视图,影响应用显示效果。
4)在使用尺寸和密度特定资源时,尽管系统会根据当前屏幕配置扩展布局,但在不一样屏幕尺寸上,应用可能须要调整UI以及提供针对不一样密度优化的可绘制对象。(指在资源目录中针对不一样密度的资源进行定义)
关注安卓绿色联盟公众号,回复关键词"2305"获取PPT