zoukankan      html  css  js  c++  java
  • 应用前台省电秘籍——这些常见功耗雷坑不要再跳了

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

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

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

    视图设计

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

    建议:

    1)尽量减小绘制窗体的面积。

    2)减少多个元素同时刷新。

    3)减少距离较远的元素同时刷新。

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

    图层优化

     

    在全屏界面下,有些应用的界面图层非常多,究其原因是开发者没有将Activity销毁,导致图层合成的工作量很大,过度占用GPU资源,导致卡顿、显示效果差,同时功耗增大。

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

    不需要GPU处理的组件减少耦合

    有些视频类应用的视频流会采用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文件。

  • 相关阅读:
    边缘检测
    图片融合
    毛玻璃
    图像添加马赛克
    图像颜色反转
    图像灰度处理
    图像仿射变换/旋转
    图像剪切/位移
    图像缩放/插值
    神经网络逼近股票价格
  • 原文地址:https://www.cnblogs.com/androidga/p/10401335.html
Copyright © 2011-2022 走看看