From 375d72baa7078daeaea943bfa252e06a67021847 Mon Sep 17 00:00:00 2001 From: Quddus Chong Date: Tue, 24 Jul 2012 10:46:16 -0700 Subject: [PATCH] docs: Added docs for lint tool. Change-Id: I06192262b56e0333bcfbcac223395788f7b0d072 Bug: 5942358 Change-Id: Ib15f96f267aa0a713fbd03b3bf5dced8c37da12e --- docs/html/images/tools/lint.png | Bin 0 -> 29918 bytes docs/html/images/tools/lint_output.png | Bin 0 -> 73335 bytes docs/html/tools/debugging/debugging-ui.jd | 66 +----- docs/html/tools/debugging/improving-w-lint.jd | 219 ++++++++++++++++++ docs/html/tools/help/lint.jd | 178 ++++++++++++++ docs/html/tools/tools_toc.cs | 3 +- 6 files changed, 407 insertions(+), 59 deletions(-) create mode 100644 docs/html/images/tools/lint.png create mode 100644 docs/html/images/tools/lint_output.png create mode 100644 docs/html/tools/debugging/improving-w-lint.jd create mode 100644 docs/html/tools/help/lint.jd diff --git a/docs/html/images/tools/lint.png b/docs/html/images/tools/lint.png new file mode 100644 index 0000000000000000000000000000000000000000..889e325aed3faf45112603fc44c80962b41edd58 GIT binary patch literal 29918 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 HjRXE4-Y`;* literal 0 HcmV?d00001 diff --git a/docs/html/images/tools/lint_output.png b/docs/html/images/tools/lint_output.png new file mode 100644 index 0000000000000000000000000000000000000000..554aee7ab09c8c2513ff331bde3dc01a57ba661d GIT binary patch literal 73335 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

efJ6uHN31cn^9fViTtG@s@BN9VXMTs3N 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êZ)@`Kb2BuguwKG*Jk=9t>jz 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
-I?Kf`fPLgw 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
Working with Pixel Perfect overlays -

  • Using layoutopt
  • +
  • Using lint to optimize your UI
  • Related videos

      @@ -55,15 +55,15 @@ parent.link=index.html

      Sometimes your application's layout can slow down your application. To help debug issues in your layout, the Android SDK provides the Hierarchy Viewer and - layoutopt tools. + lint tools.

      The Hierarchy Viewer application allows you to debug and optimize your user interface. It provides a visual representation of the layout's View hierarchy (the View Hierarchy window) and a magnified view of the display (the Pixel Perfect window).

      -

      layoutopt is a command-line tool that helps you optimize the layouts and layout - hierarchies of your applications. You can run it against your layout files or resource +

      Android lint is a static code scanning tool that helps you optimize the layouts and layout + hierarchies of your applications, as well as detect other common coding problems. You can run it against your layout files or resource directories to quickly check for inefficiencies or other types of problems that could be affecting the performance of your application.

      @@ -491,57 +491,7 @@ Sometimes your application's layout can slow down your application. alt="" height="600"/>

      Figure 4. The Pixel Perfect window

      -

      Using layoutopt

      -

      - The layoutopt tool lets you analyze the XML files that define your - application's UI to find inefficiencies in the view hierarchy.

      - -

      - To run the tool, open a terminal and launch layoutopt <xmlfiles> - from your SDK tools/ directory. The <xmlfiles> argument is a space- - delimited list of resources you want to analyze, either uncompiled resource xml files or - directories of such files. -

      -

      - The tool loads the specified XML files and analyzes their definitions and - hierarchies according to a set of predefined rules. For every issue it detects, it - displays the following information: -

      -
        -
      • - The filename in which the issue was detected. -
      • -
      • - The line number for the issue. -
      • -
      • - A description of the issue, and for some types of issues it also suggests a resolution. -
      • -
      -

      The following is a sample of the output from the tool:

      -
      -$ 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/>
      -samples/too_deep.xml
      -   -1:-1 This layout has too many nested layouts: 13 levels, it should have <= 10!
      -   20:81 This LinearLayout layout or its LinearLayout parent is useless
      -   24:79 This LinearLayout layout or its LinearLayout parent is useless
      -   28:77 This LinearLayout layout or its LinearLayout parent is useless
      -   32:75 This LinearLayout layout or its LinearLayout parent is useless
      -   36:73 This LinearLayout layout or its LinearLayout parent is useless
      -   40:71 This LinearLayout layout or its LinearLayout parent is useless
      -   44:69 This LinearLayout layout or its LinearLayout parent is useless
      -   48:67 This LinearLayout layout or its LinearLayout parent is useless
      -   52:65 This LinearLayout layout or its LinearLayout parent is useless
      -   56:63 This LinearLayout layout or its LinearLayout parent is useless
      -samples/too_many.xml
      -   7:413 The root-level <FrameLayout/> can be replaced with <merge/>
      -   -1:-1 This layout has too many views: 81 views, it should have <= 80!
      -samples/useless.xml
      -   7:19 The root-level <FrameLayout/> can be replaced with <merge/>
      -   11:17 This LinearLayout layout or its FrameLayout parent is useless
      -
      +

      Using lint to Optimize Your UI

      +

      The Android {@code lint} tool lets you analyze the XML files that define your application's UI to find inefficiencies in the view hierarchy.

      +

      Note: The Android layoutopt tool has been replaced by the {@code lint} tool beginning in ADT and SDK Tools revision 16. The {@code lint} tool reports UI layout performance issues in a similar way as layoutopt, and detects additional problems.

      +

      For more information about using {@code lint}, see Improving Your Code with lint and the lint reference documentation.

      diff --git a/docs/html/tools/debugging/improving-w-lint.jd b/docs/html/tools/debugging/improving-w-lint.jd new file mode 100644 index 0000000000000..7e238fa5a86fc --- /dev/null +++ b/docs/html/tools/debugging/improving-w-lint.jd @@ -0,0 +1,219 @@ +page.title=Improving Your Code with lint +parent.title=Debugging +parent.link=index.html +@jd:body + + + + +

      +In addition to testing that your Android application meets its functional requirements, it's important to ensure that your code has no structural problems. Poorly structured code can impact the reliability and efficiency of your Android apps and make your code harder to maintain. For example, if your XML resource files contain unused namespaces, this takes up space and incurs unnecessary processing. Other structural issues, such as use of deprecated elements or API calls that are not supported by the target API versions, might lead to code failing to run correctly.

      + +

      Overview

      +

      The Android SDK provides a code scanning tool called {@code lint} that can help you to easily identify and correct problems with the structural quality of your code, without having to execute the app or write any test cases. Each problem detected by the tool is reported with a description message and a severity level, so that you can quickly prioritize the critical improvements that need to be made. You can also configure a problem's severity level to ignore issues that are not relevant for your project, or raise the severity level. The tool has a command-line interface, so you can easily integrate it into your automated testing process.

      +

      The {@code lint} tool checks your Android project source files for potential bugs and optimization improvements for correctness, security, performance, usability, accessibility, and internationalization. You can run {@code lint} from the command-line or from the Eclipse environment.

      +

      Figure 1 shows how the {@code lint} tool processes the application source files.

      + +

      Figure 1. Code scanning workflow with the {@code lint} tool

      +
      +
      Application source files
      +
      The source files consist of files that make up your Android project, including Java and XML files, icons, and ProGuard configuration files.
      +
      The lint.xml file
      +
      A configuration file that you can use to specify any {@code lint} checks that you want to exclude and to customize problem severity levels.
      +
      The {@code lint} tool
      +
      A static code scanning tool that you can run on your Android project from the command-line or from Eclipse. The {@code lint} tool checks for structural code problems that could affect the quality and performance of your Android application. It is strongly recommended that you correct any errors that {@code lint} detects before publishing your application.
      +
      Results of {@code lint} checking
      +
      You can view the results from {@code lint} in the console or in the Lint Warnings view in Eclipse. Each issue is identified by the location in the source files where it occurred and a description of the issue.
      +
      +

      The {@code lint} tool is automatically installed as part of the Android SDK Tools revision 16 or higher. If you want to use {@code lint} in the Eclipse environment, you must also install the Android Development Tools (ADT) Plugin for Eclipse revision 16 or higher. For more information about installing the SDK or the ADT Plugin for Eclipse, see Installing the SDK.

      + +

      Running lint from Eclipse

      +

      If the ADT Plugin is installed in your Eclipse environment, the {@code lint} tool runs automatically when you perform one of these actions:

      +
        +
      • Export an APK
      • +
      • Edit and save an XML source file in your Android project (such as a manifest or layout file)
      • +
      • Use the layout editor in Eclipse to make changes
      • +
      +

      Note that when you export an APK, {@code lint} only runs an automatic check for fatal errors and aborts the export if fatal errors are found. You can turn off this automatic checking from the Lint Error Checking page in Eclipse Preferences.

      +

      The output is displayed in the Lint Warnings view. If the Lint Warnings view is not showing in the workbench, you can bring it up from the Eclipse menu by clicking Window > Show View > Other > Android > Lint Warnings.

      +

      Figure 2 shows an example of the output in the Lint Warnings view.

      + +

      Figure 2. Sample output in the Lint Warnings view

      +

      You can also run a {@code lint} scan manually on your Android project in Eclipse by right-clicking on the project folder in the Package Explorer > Android Tools > Run Lint: Check for Common Errors.

      + + +

      Running lint from the Command-Line

      +

      +To run {@code lint} against a list of files in a project directory: +

      lint [flags] <project directory>
      +

      For example, you can issue the following command to scan the files under the {@code myproject} directory and its subdirectories. The issue ID MissingPrefix tells {@code lint} to only scan for XML attributes that are missing the Android namespace prefix.

      +
      lint --check MissingPrefix myproject 
      +

      To see the full list of flags and command-line arguments supported by the tool:

      +
      lint --help
      +

      + +

      Example lint output

      +

      The following example shows the console output when the {@code lint} command is run against a project called Earthquake.

      +
      +$ lint Earthquake
      +
      +Scanning Earthquake: ...............................................................................................................................
      +Scanning Earthquake (Phase 2): .......
      +AndroidManifest.xml:23: Warning: <uses-sdk> tag appears after <application> tag [ManifestOrder]
      +  <uses-sdk android:minSdkVersion="7" />
      +  ^
      +AndroidManifest.xml:23: Warning: <uses-sdk> tag should specify a target API level (the highest verified version; when running on later versions, compatibility behaviors may be enabled) with android:targetSdkVersion="?" [UsesMinSdkAttributes]
      +  <uses-sdk android:minSdkVersion="7" />
      +  ^
      +res/layout/preferences.xml: Warning: The resource R.layout.preferences appears to be unused [UnusedResources]
      +res: Warning: Missing density variation folders in res: drawable-xhdpi [IconMissingDensityFolder]
      +0 errors, 4 warnings
      +
      +

      The output above lists four warnings and no errors in this project. Three warnings ({@code ManifestOrder}, {@code UsesMinSdkAttributes}, and {@code UsesMinSdkAttributes}) were found in the project's AndroidManifest.xml file. The remaining warning ({@code IconMissingDensityFolder}) was found in the Preferences.xml layout file.

      + +

      Configuring lint

      +

      By default, when you run a {@code lint} scan, the tool checks for all issues that are supported by {@code lint}. You can also restrict the issues for {@code lint} to check and assign the severity level for those issues. For example, you can disable {@code lint} checking for specific issues that are not relevant to your project and configure {@code lint} to report non-critical issues at a lower severity level.

      +

      You can configure {@code lint} checking at different levels:

      +
        +
      • Globally, for all projects
      • +
      • Per project
      • +
      • Per file
      • +
      • Per Java class or method (by using the @SuppressLint annotation), or per XML element (by using the tools:ignore attribute.
      • +
      + +

      Configuring lint in Eclipse

      +

      You can configure global, project-specific, and file-specific settings for {@code lint} from the Eclipse user interface.

      + +

      Global preferences

      +
        +
      1. Open Window > Preferences > Android > Lint Error Checking.
      2. +
      3. Specify your preferences and click OK.
      4. +
      +

      These settings are applied by default when you run {@code lint} on your Android projects in Eclipse.

      + +

      Project and file-specific preferences

      +
        +
      1. Run the {@code lint} tool on your project by right-clicking on your project folder in the Package Explorer and selecting Android Tools > Run Lint: Check for Common Errors. This action brings up the Lint Warnings view which displays a list of issues that {@code lint} detected in your project.
      2. +
      3. From the Lint Warnings view, use the toolbar options to configure {@code lint} preferences for individual projects and files in Eclipse. The options you can select include: +
          +
        • Suppress this error with an annotation/attribute - If the issue appears in a Java class, the {@code lint} tool adds a @SuppressLint annotation to the method where the issue was detected. If the issue appears in an {@code .xml} file, {@code lint} inserts a tools:ignore attribute to disable checking for the {@code lint} issue in this file.
        • +
        • Ignore in this file - Disables checking for this {@code lint} issue in this file.
        • +
        • Ignore in this project - Disables checking for this {@code lint} issue in this project.
        • +
        • Always ignore - Disables checking for this {@code lint} issue globally for all projects.
        • +
        +
      4. +
      +

      If you select the second or third option, the {@code lint} tool automatically generates a lint.xml file with these configuration settings in your Android application project folder.

      + +

      Configuring the lint file

      +

      You can specify your {@code lint} checking preferences in the lint.xml file. If you are creating this file manually, place it in the root directory of your Android project. If you are configuring {@code lint} preferences in Eclipse, the lint.xml file is automatically created and added to your Android project for you.

      +

      The lint.xml file consists of an enclosing <lint> parent tag that contains one or more children <issue> elements. Each <issue> is identified by a unique id attribute value, which is defined by {@code lint}.

      +
      +<?xml version="1.0" encoding="UTF-8"?>
      +    <lint>
      +        <!-- list of issues to configure -->
      +</lint>
      +
      +

      By setting the severity attribute value in the <issue> tag, you can disable {@code lint} checking for an issue or change the severity level for an issue.

      +

      Tip: To see the full list of issues supported by the {@code lint} tool and their corresponding issue IDs, run the lint --list command.

      + +

      Sample lint.xml file

      +

      The following example shows the contents of a lint.xml file.

      +
      +<?xml version="1.0" encoding="UTF-8"?>
      +<lint>
      +    <!-- Disable the given check in this project -->
      +    <issue id="IconMissingDensityFolder" severity="ignore" />
      +
      +    <!-- Ignore the ObsoleteLayoutParam issue in the specified files -->
      +    <issue id="ObsoleteLayoutParam">
      +        <ignore path="res/layout/activation.xml" />
      +        <ignore path="res/layout-xlarge/activation.xml" />
      +    </issue>
      +
      +    <!-- Ignore the UselessLeaf issue in the specified file -->
      +    <issue id="UselessLeaf">
      +        <ignore path="res/layout/main.xml" />
      +    </issue>
      +
      +    <!-- Change the severity of hardcoded strings to "error" -->
      +    <issue id="HardcodedText" severity="error" />
      +</lint>
      +
      + +

      Configuring lint checking in Java and XML source files

      +

      You can disable {@code lint} checking from your Java and XML source files.

      + +

      Tip: If you are using Eclipse, you can use the Quick Fix feature to automatically add the annotation or attribute to disable {@code lint} checking to your Java or XML source files: +

        +
      1. Open the Java or XML file that has a {@code lint} warning or error in an Eclipse editor.
      2. +
      3. Move your cursor to the location in the file where is {@code lint} issue is found, then press Ctrl+1 to bring up the Quick Fix pop-up.
      4. +
      5. From the Quick Fix pop-up, select the action to add an annotation or attribute to ignore the {@code lint} issue.
      6. +
      +

      + +

      Configuring lint checking in Java

      +

      To disable {@code lint} checking specifically for a Java class or method in your Android project, add the @SuppressLint annotation to that Java code.

      +

      The following example shows how you can turn off {@code lint} checking for the {@code NewApi} issue in the onCreate method. The {@code lint} tool continues to check for the {@code NewApi} issue in other methods of this class.

      +
      +@SuppressLint("NewApi")
      +@Override
      +public void onCreate(Bundle savedInstanceState) {
      +    super.onCreate(savedInstanceState);
      +    setContentView(R.layout.main);
      +
      +

      The following example shows how to turn off {@code lint} checking for the {@code ParserError} issue in the FeedProvider class:

      +
      +@SuppressLint("ParserError")
      +public class FeedProvider extends ContentProvider {
      +
      +

      To suppress checking for all {@code lint} issues in the Java file, use the {@code all} keyword, like this:

      +
      +@SuppressLint("all")
      +
      + +

      Configuring lint checking in XML

      +

      You can use the tools:ignore attribute to disable {@code lint} checking for specific sections of your XML files. In order for this attribute to be recognized by the {@code lint} tool, the following namespace value must be included in your XML file:

      +
      +namespace xmlns:tools="http://schemas.android.com/tools"
      +
      +

      The following example shows how you can turn off {@code lint} checking for the {@code UnusedResources} issue for the <LinearLayout> element of an XML layout file. The ignore attribute is inherited by the children elements of the parent element in which the attribute is declared. In this example, the {@code lint} check is also disabled for the child <TextView> element.

      +
      +<LinearLayout 
      +    xmlns:android="http://schemas.android.com/apk/res/android"
      +    xmlns:tools="http://schemas.android.com/tools"
      +    tools:ignore="UnusedResources" >
      +
      +    <TextView
      +        android:text="@string/auto_update_prompt" />
      +</LinearLayout>
      +
      +

      To disable more than one issue, list the issues to disable in a comma-separated string. For example:

      +
      +tools:ignore="NewApi,StringFormatInvalid"
      +
      +

      To suppress checking for all {@code lint} issues in the XML element, use the {@code all} keyword, like this:

      +
      +tools:ignore="all"
      +
      diff --git a/docs/html/tools/help/lint.jd b/docs/html/tools/help/lint.jd new file mode 100644 index 0000000000000..ba31f6d6bc1c2 --- /dev/null +++ b/docs/html/tools/help/lint.jd @@ -0,0 +1,178 @@ +page.title=lint +parent.title=Tools +parent.link=index.html +@jd:body + +
      +
      +

      In this document

      +
        +
      1. Syntax
      2. +
      3. Options
      4. +
      5. Configuring Java and XML Source Files
      6. +
      +
      +
      + +

      The Android {@code lint} tool is a static code analysis tool that checks your Android project source files for potential bugs and optimization improvements for correctness, security, performance, usability, accessibility, and internationalization.

      +

      For more information on running {@code lint}, see Improving Your Code with lint.

      + +

      Syntax

      +

      +

      lint [flags] <project directory>
      + +For example, you can issue the following command to scan the Java and XML files under the {@code myproject} directory and its subdirectories. The result is displayed on the console. +
      lint myproject
      + +You can also use {@code lint} to check for a specific issue. For example, you can run the following command to scan the files under the {@code myproject} directory and its subdirectories to check for XML attributes missing the Android namespace prefix. The issue ID {@code MissingPrefix} tells lint to only scan for this issue. +
      lint --check MissingPrefix myproject
      + +You can create an HTML report for the issues that {@code lint} detects. For example, you can run the following command to scan the {@code myproject} directory and its subdirectories for accessibility issues, then generate an HTML report in the {@code accessibility_report.html} file. +
      lint --check Accessibility --HTML accessibility_report.html myproject
      +

      + +

      Options

      +

      Table 1 describes the command-line options for {@code lint}.

      +

      + Table 1. Command-line options for lint

      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      CategoryOptionDescriptionComments
      Checking--disable <list>Disable checking for a specific list of issues.The <list> must be a comma-separated list of {@code lint} issue IDs or categories.
      --enable <list>Check for all the default issues supported by {@code lint} as well as the specifically enabled list of issues.The <list> must be a comma-separated list of {@code lint} issue IDs or categories.
      --check <list>Check for a specific list of issues.The <list> must be a comma-separated list of {@code lint} issue IDs or categories.
      -w or --nowarnOnly check for errors and ignore warnings 
      -WallCheck for all warnings, including those that are disabled by default 
      -WerrorReport all warnings as errors 
      --config <filename>Use the specified configuration file to determine if issues are enabled or disabled for {@code lint} checkingIf the project contains a {@code lint.xml} file, the {@code lint.xml} file will be used as the configuration file by default.
      Reporting--html <filename>Generate an HTML report.The report is saved in the output file specified in the argument. The HTML output includes code snippets of the source code where {@code lint} detected an issue, a verbose description of the issue found, and links to the source file.
      --url <filepath>=<url>In the HTML output, replace a local path prefix <filepath> with a url prefix <url>.The {@code --url} option only applies when you are generating an HTML report with the {@code --html} option. You can specify multiple <filepath>=<url> mappings in the argument by separating each mapping with a comma.

      To turn off linking to files, use {@code --url none}

      --simplehtml <filename>Generate a simple HTML reportThe report is saved in the output file specified in the argument.
      --xml <filename>Generate an XML reportThe report is saved in the output file specified in the argument.
      --fullpathShow the full file paths in the {@code lint} checking results. 
      --showallDon't truncate long messages or lists of alternate locations. 
      --nolinesDon't include code snippets from the source files in the output. 
      --exitcodeSet the exit code to 1 if errors are found. 
      --quietDon't show the progress indicator. 
      Help--helpList the command-line arguments supported by the {@code lint} tool.Use {@code --help <topic>} to see help information for a specific topic, such as "suppress".
      --listList the ID and short description for issues that can be checked by {@code lint} 
      --showList the ID and verbose description for issues that can be checked by {@code lint}Use {@code --show <ids>} to see descriptions for a specific list of {@code lint} issue IDs.
      --versionShow the {@code lint} version 
      + + +

      Configuring Java and XML Source Files

      +

      To configure lint checking, you can apply the following annotation or attribute to the source files in your Android project.

      +
        +
      • To disable lint checking for a specific Java class or method, use the @SuppressLint annotation.
      • +
      • To disable lint checking for specific sections of your XML file, use the tools:ignore attribute.
      • +
      +

      You can also specify your lint checking preferences for a specific Android project in the lint.xml file. For more information on configuring lint, see Improving Your Code with lint.

      diff --git a/docs/html/tools/tools_toc.cs b/docs/html/tools/tools_toc.cs index c7cdded460f3d..850e0ecb55fb4 100644 --- a/docs/html/tools/tools_toc.cs +++ b/docs/html/tools/tools_toc.cs @@ -107,6 +107,7 @@
    1. From Other IDEs
    2. Using DDMS
    3. Reading and Writing Logs
    4. +
    5. Improving Your Code with lint
    6. Optimizing your UI
    7. Profiling with Traceview and dmtracedump
    8. Using the Dev Tools App
    9. @@ -137,7 +138,7 @@ class="en">Tools Help
    10. etc1tool
    11. Hierarchy Viewer
    12. hprof-conv
    13. -
    14. layoutopt
    15. +
    16. lint
    17. logcat
    18. mksdcard
    19. monkey