文档开发者中心
我的

华为专家教你如何提高应用性能(壹),急速发车!

本帖最后由 huafans01276304811 于 2018-2-11 12:06 编辑

大家好:
        这是我精心为大家准备的专家讲堂,纯干货,非战斗人员,请立即围观!{:6_141:}
        请注意,不会有大量的图片,毕竟我其实想写代码来着!
        抓紧时间上车吧,2018年过年前,我争取把全文推送完。

      1、安卓绿色联盟性能解读
            安卓绿色联盟性能标准从四个维度评价应用的性能:
            首先是主观的体验指标,比如应用的启用时间、应用滑动的帧率;
            第二点评估应用对系统资源的消耗,包括内存及CPU占用;
            第三点应用设计是否符合高性能的要求,评估应用会不会过度绘制及内存泄露;
            第四点应用是否遵守安卓StrictMode(严苛模式);





      主观体验指标
      (1)应用启用速度
          应用启动速度分为两个指标:
         ①应用冷启动时间。冷启动即手机开机后,首次打开应用启动所消耗的时间;后台应用被系统内存回收机制清理后,再次

打开应用,也等同于冷启动。

         ②应用热启动时间。应用使用后未关闭而是切到后台,此时应用再次打开就是热启动。
      (2)界面显示帧率
      很多应用显示界面都是立式显示,常见的微信聊天、微博、新闻客户端等都是上下滚动显示的,用户眼睛所看到的流畅度

就可以反应应用性能,流畅度是用显示帧率衡量的。

       安卓手机是依据LCD硬件刷新周期进行显示的,大部分手机都是以60HZ/s进行刷新的,所以帧率的高低明显影响了用户的

应用体验。如果一个应用显示帧率稳定在55帧以上,用户会感到画面流畅,如果帧率突然由50掉到40又升到50帧,这时应

用界面看上去就会一直跳动,出现卡顿。

       所以说,应用启用速度和界面显示帧率是衡量应用性能最直观的指标。因此,安卓绿色联盟性能标准的一个重要指标就是

主观体验指标。


     资源消耗
       资源消耗分为两部分,一个是内存的占用,一个是CPU的占用。应用性能表现好坏,也要看它对整个系统的影响。比如一

个应用在前台用户使用过程中表现非常好,当把它切到后台时,就发生了CPU占用较多或内存泄露等情况,会影响用户正

在使用的前台其他应用。

       (1)内存占用
       这个指标涉及到应用在前台打开之后占用内存的多少,如果前台内存占用过高,会触发系统内存回收机制,导致其他正在

后台的应用被清理,极端情况下,会引起前台依赖的后台应用被清理,导致前台功能异常。

       (2)CPU占用
       应用被切到后台占用CPU过多,会导致两种情况:
       ①前台正使用应用得不到调度,发生卡顿;
       ②整个手机功耗升高,进而带来发热问题

     应用质量
       对于应用质量,划定了以下几个指标:
       (1)过度绘制
       应用的界面过于复杂,很多地方需重新绘制,会引起整个系统负担升高,表现在:
       ①整个硬件,比如CPU、GPU负担增大,导致功耗、发热等问题,进而影响前台应用;
       ②大量数据绘制本身就会导致应用在使用过程中产生卡顿问题。
       (2)内存泄露
        内存泄露,应用开发者一些开发资源在切换或退出时未做释放,导致内存的持续泄露。一个相关资源没有被释放,每进入

一次就会创建一次、内存会累加增大。因为安卓会有一个out of memory门限,如果应用达到这个门限,系统就会强制清

理。


     严苛模式
       严苛模式是谷歌在M版本新加的针对应用主线程动作的监控,在一些UI主线上做一些IO操作或通信阻塞行为都会被

StrictMode监控出来,这些阻塞行为导致整个主线程被阻塞,引起界面停顿、刷新停顿或者是卡顿。

市场上手机拥有不同的机型,安卓版本也具有碎片化,安卓绿色联盟制定的标准会针对用户体验最佳的一个数值制定。相关标准都可以在华为OpenLab进行全方位自动化测试。



点赞
收藏
1
回复
2
分享
举报
浏览1689 发布于2018-02-11 04:01未知归属地
全部评论
最多点赞
最新发布
最早发布
用不了就换,因为大多人不是这个专业的
1楼回复于2018-02-18 14:19 未知归属地
写回答
新增插入模板功能
一键使用模板,快速填写内容,轻松发帖~
知道了
  • 为了保障您的信息安全,请勿上传您的敏感个人信息(如您的密码等信息)和您的敏感资产信息(如关键源代码、签名私钥、调试安装包、业务日志等信息),且您需自行承担由此产生的信息泄露等安全风险。
  • 如您发布的内容为转载内容,请注明内容来源。

我要发帖子

了解社区公约,与您携手共创和谐专业的开发者社区。