Android 布局优化-常用布局优化工具

1.Hierarchy Viewer
2.Lint

(1)Hierarchy Viewer

  • Hierarchy Viewer是Android自带的一款可视化调试工具,用来检查Layout嵌套及绘制时间。以可视化的布局角度直观获取Layout布局设计和各种属性信息。
    注:由于Android安全考虑Hierarchy Viewer只能连接Android开发手机或模拟器。
    接下来介绍如何使用Hierarchy Viewer。
  1. 构建一个页面,启动应用然后进入这个页面。
  2. 打开Hierarchy Viewer
    我只直接在SDK打开的Android Device Monitor中打开的Hierarchy Viewer,由于商业手机不支持连接,我使用的模拟器。打开页面如下:
    在这里插入图片描述
    双击图中具体的Activity页面则能看到如下图:
    在这里插入图片描述

可以看到几个窗口:

  • Windows:显示当前设备信息,以及当前设备的所有页面信息。
  • View Properties: 当前选中View的属性
  • TreeView:把Activity中所有的控件的层次从左到右显示出来,最左边的是最底层的控件。
  • Tree Overview:全局概览,以缩略图的方式显示整个应用中各控件的层次关系,并且框出TreeView窗口中显示的部分的位置,如果一个页面显示层级过多,可以通过鼠标移动这个区域。
  • Layout View:整体Layout布局,以手机屏幕上真实位置呈现出来,在TreeView中选中某个控件时,会在Layout View用红色的框标注。
  1. 使用Hierarchy Viewer
  • 上面已经说了在Windows窗口页双击要展示的页面就可以在TreeView中看到布局层级。

  • 查看某个View耗时:选中View,然后点击上面的按钮如下图:
    在这里插入图片描述
    就可以看到Tree View中增加了属性,单击查看:
    在这里插入图片描述
    108views表示是这个树下面还有108个view,第108个就是其本身,如果是1表示是这个树下的最后一个控件,下面的时间表示Measure、Layout、Draw三个阶段的耗时。最后是三个带颜色的圈。颜色表示这个控件占用的时间百分比,如果是绿色的,表示该控件在该阶段比其他50%控件要快,黄色表示比其他50%控件速度要慢,红色表示该控件在该阶段的处理速度是最慢的。就需要注意了。

  • 上面介绍了Hierarchy Viewer的使用方法,但是一个一个view的去分析效率非常低。所以再介绍一个另外一个工具Lint,用于检查所有页面的层级,并把深度高于N(自定义)的页面输出,然后通过Hierarchy View工具来具体分析。

(2)布局层级检查 Lint

Android Lint 是 Android SDK Tools 16(ADT 16)之后引入的代码检查工具,通过代码静态检查,可以发现潜在的代码问题,并给出优化建议。Android-Lint 检查工具使用的方式有以下两种:

  • 命令行使用脚本执行。
  • 在 IDE 中使用视图化工具。
    Lint 的检查结果分为 6 类,如图所示。
    在这里插入图片描述
  • Correctness(正确性)
  • Security(安全性)
  • Performance(性能)
  • Usability(可用性)
  • Accessibility(可达性)
  • 国际化
    问题的严重程度(severity)从高到低依次是:
  • Fatal
  • Error
  • Warning
  • Information
  • Ignore
    扫描规则和缺陷级别可以在 File→Settings→Editor→Inspections→Android Lint 中配置
    在 Android Studio 中启动 Lint,从菜单栏选择 Analyze→Inspect Code,进去后可以指定扫描的范围,可以是整个工程,也可以是一个 Module 或单独的文件。启动扫描,扫描结果我们找到
Android -> Lint -> Performace -> Layout has too many views (布局控件过多,默认超过80会提示该错误)
Android -> Lint -> Performace -> Layout hierarchy is too deep(表示布局太深,默认层级超过10层会显示,可以自定义环境变量 ANDROID_LINT_MAX_DEEP来修改)

在这里插入图片描述
然后就可以根据扫描出来的文件去查看更改了。

接下来该分析布局优化的方法了。

发布了119 篇原创文章 · 获赞 28 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/ldxlz224/article/details/99681263