android布局层次结构,优化布局层次结构  |  Android 开发者  |  Android Developers

使用基本的布局结构可打造最高效的布局,这是一种常见的误解。但无论如何,您添加到应用中的每个微件和布局都需要进行初始化、布局和绘制。例如,使用嵌套的 layout_weight 参数的

在本课中,您将了解如何使用 Hierarchy Viewer 和 Lint 来检查和优化布局。

检查布局

Android SDK 工具套件包含一个名为 Hierarchy Viewer 的工具,可让您在应用运行时分析布局。此工具可帮助您发现布局性能方面的瓶颈。

利用 Hierarchy Viewer,您可以在已连接的设备或模拟器上选择正在运行的进程,然后显示布局树。各个块上的信号灯代表其测量、布局和绘制性能,有助于您识别潜在问题。

例如,图 1 显示了用作

16820906d755af526e87e30fcfea5bfc.png

图 1.

Hierarchy Viewer 会显示可用设备及其正在运行的组件的列表。从 Windows 标签页中选择您的组件,然后点击 Hierarchy View 查看所选组件的布局层次结构。例如,图 2 显示了图 1 所示列表项的布局。

ba9b6c3fbac40bb946f7fa9625ed710d.png

图 2. 图 1 所示布局的布局层次结构,使用嵌套的

修改布局

由于上述布局的性能因嵌套的

a4a3ab7103eceb339e74fae54b64ac37.png

图 4. 图 1 所示布局的布局层次结构,使用

这些收益可能看起来并不显眼,但却会成倍地提升性能,原因在于此布局会用于列表中的每一项元素。

大部分差异都是由在 layout_weight 造成的,这会减缓测量速度。这只是如何恰当地使用每个布局的一个示例,您应仔细考虑是否有必要使用布局权重。

在一些复杂的布局中,系统可能会浪费时间和资源来多次测量同一个界面元素。这种现象称为 Double Taxation。如需详细了解 Double Taxation 以及如何防止出现这种情况,请参阅性能和视图层次结构。

使用 Lint

一种始终很好的做法是,对布局文件运行 lint 工具来搜索可能的视图层次结构优化机会。Lint 取代了 Layoutopt 工具,并提供了更加强大的功能。下面显示了 lint 规则的一些示例:

使用复合可绘制对象 - 包含

合并根框架 - 如果

无用的叶项 - 没有子级或没有背景的布局通常可以移除(因为它不可见),以使布局层次结构更加扁平高效。

无用的父级 - 如果一个布局含有子级但没有同级、不是

深层布局 - 嵌套过多的布局会降低性能。考虑使用

Lint 的另一项优势是,它已集成到 Android Studio 中。Lint 会在您编译程序时自动运行。借助 Android Studio,您还可以针对特定构建变体或针对所有构建变体运行 lint 检查。

您还可以在 Android Studio 中使用 File > Settings > Project Settings 选项来管理检查配置文件并对检查进行配置。系统会显示“Inspection Configuration”页面,其中包含支持的检查。

e690151ea52f3b9c8e3ac8c82a886cc8.png

图 5. 检查配置

Lint 能够自动修复某些问题、提供有助于解决其他问题的建议,以及直接跳转到违规代码进行审核。

如需详细了解有关本课的信息,请参阅 XML 布局和布局资源。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值