android 布局优化(一)
使用 HierarchyView 测量布局性能
概述,HierarchyView 在 android sdk 目录下tools文件夹中,是 google 官方用来测量布局的 layout,measure,draw的速度的,我们可以使用这个工具分析自己的布局文件是否存在绘制性能问题,从而对应的提出优化策略。(一定要开启 adb和模拟器)
注意:真机不能使用这个测试工具,如果真机想使用这个测试工具,看后面的教程。本文主要根据 google 官方文档的教程Optimizing Your UI来进行说明编写的
打开工具是这样的
依次对工具选修进行说明:
左上方三个按钮
- refresh 刷新当前布局
- Load View Hierarchy 加载选中的布局,进入视图层次分析
- Inspect screenshot 已像素分析的形式进入当前屏幕的截图
中间显示的是当前设备,和设备内的布局(当前显示的布局会加粗显示)
下面三个按钮
- 第一个按钮,切换回初始界面
- 第二个按钮,进入 View Hierarchy
- 第三个按钮,进入Inspect screenshot
下面说一下进入 Load View Hierarchy 如何进行性能分析,以及性能分析的一些标准和案例
下面是进入了的截图展示
下面依次对这些功能区进行说明。
区域一:功能选择区
Save As Png 将当前视图保存为 png
Capture Layers 将当前视图保存为 psd文件,Photoshop下能打开,打开是完整的视图层次展示
……..
省略了一大堆说明,这个工具其实挺鸡肋的,因为它只能静态的检查一些布局,检测出来的性能还是相对的(不同颜色的点代表不同的行,红色是整个 View tree 中最差的,绿色是50%以内性能好的)对于复杂的ViewGroup 或者 ListView recyclerView 这种动态添加的View,根本没办法测量。
Inspect ScreenShot 功能就跟鸡肋了,能够帮助你看看布局的像素色彩和位置是否完全准确之类的,更加是鸡肋了
而且这个工具因为安全问题,不支持真机调试,所以就呵呵吧。
当然非得用真机调试的同学,在github上有个开源的工具可以用 ViewServer
Android Lint 工具
之前的 Eclipse 和 现在的 Android studio 都可以进行代码的 Lint 检查,Lint检查的好处
布局性能(以前是 layoutopt工具,可以解决无用布局、嵌套太多、布局太多等问题)
未使用到资源,这样就能缩减 apk 大小
图标的问题(重复的图标,错误的大小)
manifest文件的错误
常见的错误:
xml 空间属性不规范
Activity 没有在 androidmainfest文件中声明
…..
打开方式
eclipse 下是 Eclipse左上角的打钩的按钮或者选择项目->右键->Android Tools
Android studio 下是 上方导航栏 analyze -> inspect code
然后等待自动生产检查结果,自己根据检查结果进行优化,总的来说,这个检查呢,作用还算有,不过似乎也不算很强势。