layoutopt

为了使用Android SDK提供的布局优化工具,需要使用命令行。

我们强烈建议您将Android工具路径添加到操作系统的路径设置中。 这将使得通过名称运行特定工具更容易,而不必给出其文件位置的完整路径。 Android SDK中现在有两个工具目录:/ tools和/ platform-tools。 layoutopt工具是本教程中使用的主要工具,位于/ tools目录中。 (例如,可以在/ platform-tools目录中找到ADB工具。)

运行layoutopt工具

运行layoutopt工具是简单的命令行选项。 只需使用单个布局文件或布局文件目录作为选项运行它。

注意,你必须包括所讨论的布局文件或目录的完整路径,即使它在当前工作目录中。

没有发现任何问题的layoutopt:它与单个布局文件或布局文件的目录作为选项。

layoutopt_第1张图片
layoutopt-correct.png

如果不包括布局文件的完整路径,则输出不显示任何内容:

layoutopt-false.png

检查结果示例

layoutopt的结果只是建议。 让我们来看看运行layoutopt工具可能产生的建议的几个例子。

无用的布局

我们在布局设计中尝尝会出现一些未使用或放弃使用的控件。例如:

layoutopt_第2张图片
useless-layout.png

该工具告诉我们,LinearLayout中的LinearLayout是不必要的:

11:17 This LinearLayout layout or its LinearLayout parent is useless

根布局可被替代

layoutopt_第3张图片
root-can-be-replaced.png

输出:

5:22 The root-level can be replaced with
10:21 This LinearLayout layout or its FrameLayout parent is useless

结合两条建议,由于我们希望两个TextView垂直排列,因此LinearLayout应该保留。基于第二条建议,我们可以删除无用的FrameLayout而不是替换为merge。

过多Views

布局中的每个View都需要占用内存,在布局中放置过多的View,布局将占用大量内存。假如,有一个超过80个View的布局。layoutopt工具可能显示以下输出:

-1:-1 This layout has too many views: 83 views, it should have <= 80!
-1:-1 This layout has too many views: 82 views, it should have <= 80!
-1:-1 This layout has too many views: 81 views, it should have <= 80!

过多Levels

类似,布局也不应该太深层次的嵌套。建议将布局保持在10级以下。可以使用RelativeLayout解决深层次的布局嵌套。

-1:-1 This layout has too many nested layouts: 12 levels, it should have <= 10!
305:318 This LinearLayout layout or its RelativeLayout parent is possibly useless
307:314 This LinearLayout layout or its FrameLayout parent is possibly useless
310:312 This LinearLayout layout or its LinearLayout parent is possibly useless

你可能感兴趣的:(layoutopt)