From 0980e41e97db0c7e57d114a1aae76663d637ba87 Mon Sep 17 00:00:00 2001 From: Rich Hyndman Date: Wed, 15 Feb 2012 16:46:51 +0100 Subject: [PATCH] docs: Added Lint into Android Training and removed Layoutopt. Change-Id: Ib818ba3ab12fff79dbede69ebf543a8e4be6f3df --- docs/html/images/training/lint_icon.png | Bin 0 -> 22128 bytes .../improving-layouts/optimizing-layout.jd | 45 +++++++++--------- 2 files changed, 23 insertions(+), 22 deletions(-) create mode 100644 docs/html/images/training/lint_icon.png diff --git a/docs/html/images/training/lint_icon.png b/docs/html/images/training/lint_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..118a7419c6bde9285c94768b618a713474275bc1 GIT binary patch literal 22128 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 literal 0 HcmV?d00001 diff --git a/docs/html/training/improving-layouts/optimizing-layout.jd b/docs/html/training/improving-layouts/optimizing-layout.jd index 65c8af798fd18..0eaf199b132e6 100644 --- a/docs/html/training/improving-layouts/optimizing-layout.jd +++ b/docs/html/training/improving-layouts/optimizing-layout.jd @@ -18,7 +18,7 @@ next.link=reusing-layouts.html
  1. Inspect Your Layout
  2. Revise Your Layout
  3. -
  4. Use Layoutopt
  5. +
  6. Use Lint
@@ -44,7 +44,7 @@ is inflated repeatedly, such as when used in a {@link android.widget.ListView} o android.widget.GridView}.

In this lesson you'll learn to use Heirachy Viewer and Hierarchy Viewer and Layoutopt to examine and optimize your layout.

@@ -53,7 +53,7 @@ layout.

Inspect Your Layout

The Android SDK tools include a tool called Heirachy Viewer that allows +href="{@docRoot}guide/developing/tools/hierarchy-viewer.html">Hierarchy Viewer that allows you to analyze your layout while your application is running. Using this tool helps you discover bottlenecks in the layout performance.

@@ -130,27 +130,28 @@ example of how each layout has appropriate uses and you should carefully conside layout weight is necessary.

-

Use Layoutopt

+

Use Lint

+ +

It is always good practice to run the Lint tool on your layout files to search for possible view hierarchy optimizations. Lint has replaced the Layoutopt tool and has much greater functionality. Some examples of Lint rules are:

+ +
    +
  • Use compound drawables - A {@link android.widget.LinearLayout} which contains an {@link android.widget.ImageView} and a {@link android.widget.TextView} can be more efficiently handled as a compound drawable.
  • +
  • Merge root frame - If a {@link android.widget.FrameLayout} is the root of a layout and does not provide background or padding etc, it can be replaced with a merge tag which is slightly more efficient.
  • +
  • Useless leaf - A layout that has no children or no background can often be removed (since it is invisible) for a flatter and more efficient layout hierarchy.
  • +
  • Useless parent - A layout with children that has no siblings, is not a {@link android.widget.ScrollView} or a root layout, and does not have a background, can be removed and have its children moved directly into the parent for a flatter and more efficient layout hierarchy.
  • +
  • Deep layouts - Layouts with too much nesting are bad for performance. Consider using flatter layouts such as {@link android.widget.RelativeLayout} or {@link android.widget.GridLayout} to improve performance. The default maximum depth is 10.
  • +
+ +

Another benefit of Lint is that it is integrated into the Android Development Tools for Eclipse (ADT 16+). Lint automatically runs whenever you export an APK, edit and save an XML file or use the Layout Editor. To manually force Lint to run press the Lint button in the Eclipse toolbar.

+ + + +

When used inside Eclipse, Lint has the ability to automatically fix some issues, provide suggestions for others and jump directly to the offending code for review. If you don’t use Eclipse for your development, Lint can also be run from the command line. More information about Lint is available at tools.android.com.

+ + -

It is always good practice to also run the layoutopt tool on your final layout files -to search for places in your view hierarchy that may be optimized. Layoutopt is also in your SDK -{@code tools/} directory and takes a layout directory name or a space-separated list of layout files -that you'd like to inspect.

-

When you run {@code layoutopt} on a layout file, it prints a line number for each issue found, a -description of the issue, and for some types of issues it also suggests a resolution. For -example:

-
-$ layoutopt samples/
-samples/compound.xml
-   7:23 The root-level <FrameLayout/> can be replaced with <merge/>
-   11:21 This LinearLayout layout or its FrameLayout parent is useless
-samples/simple.xml
-   7:7 The root-level <FrameLayout/> can be replaced with <merge/>
-
-

After you apply the suggested layout optimizations, run Hierarchy Viewer again to inspect the -performance changes.