android 优化之layout

作者: 糖葫芦_倩倩 | 来源:发表于2016-11-18 17:06 被阅读87次

    今天早上在地铁上看了一篇关于app 布局优化方面的文章,下午用了几个小时来亲自实验了一下,做下分享,大家有空也可以去试试。

    我们都知道,布局写的越复杂,加载的时候也越慢,GPU渲染的速度就会慢,造成的现象就是用户看到的卡顿,或者感觉就是很慢,用户体验非常不好。那么怎么优化我们的布局成为很重要的一部分,俗话说得好:工欲善其事 必先利其器,google官方工具里有一个 Hierarchy View这么个工具,它可以帮助我们计算出布局加载的速度。

    使用 Hierarcy View工具 ,手机必须是root的

    1.配置环境变量

    计算机-属性-高级系统设置

    Paste_Image.png

    然后再点击 高级选项卡 中的环境变量 ,在系统变量的那个对话框中,新建变量
    ANDROID_HVPROTO 值为 ddm,如图所示:

    Paste_Image.png

    2.在开发工具中进入 Hierarcy View界面:

    Tools - Android - Android device monitor进入ddms界面,然后再点击Window- open Pers

    然后再弹出的界面中选择 Hierarcy View

    Paste_Image.png

    3.查看界面

    Paste_Image.png

    就是该当前页面布局的树形结构图。

    点击其中一个节点,可查看当前布局的一些信息,比如,看下图:

    Paste_Image.png

    注意:如果你看不到你的节点上面有3个小点话,可以点一下右上角的3个红绿黄小球的图标,如上图所示

    在节点的上面还有对应的布局视图,大家可以看到,78views ,78个使用,还有对应的时间,Measure 测量控件 需要1300 ms ,Layout 摆放控件 需要 2847 ms ,Draw 显示描绘控件 需要 41933 ms 这么长的时间;

    三个小圆点可以依次表示为:onMeasure,onLayout,onDraw

     绿色:表示该View的此项性能比该 Tree View中超过 50% 的View都要快
     黄色:表示该View的此项性能比该 Tree View 中超过 50% 的View都要慢
     红色:表示该View的此项性能是该 Tree View 中最慢的 
    

    也就是说:如果我们的 Tree View中的红点比较多,那么就要注意啦,最慢的,需要重点优化的。

    如果 onMeasure 也就是第一个出现红点,有可能的原因就是:
    LinearLayout中使用weight属性,嵌套了多层RelativeLayout,可以查看下;
    如果 onLayout 也就是第二个出现红点,有可能的原因就是:
    是不是layout布局嵌套太深啦....
    如果是 onDraw 也就是第三个出点红点,那么可能就是自定义View 方法中计算太复杂了,就会出现红点,有可优化的空间。
    

    好像我自己的layout太复杂了哈,出现了好多红点和黄点,看来我得好好优化一下我的布局了,没几个绿的,好啦,今天就分享这些了,以后在完成工作的同时,不仅功能实现完成,还要注意性能方面的把控啊。

    相关文章

      网友评论

      本文标题:android 优化之layout

      本文链接:https://www.haomeiwen.com/subject/mvtspttx.html