from://http://wiki.eoe.cn/page/Improving_Your_Code_with_lint.html
负责人:lingzideshensha
分任务原文链接:http://developer.android.com/tools/debugging/improving-w-lint.html
除了测试你的Android应用程序满足其功能需求,重要的是要确保你的代码没有结构性问题。代码结构简陋的可靠性和效率的影响你的Android应用程序,使您的代码很难维护。例如,如果您的XML资源文件包含未使用的名称空间,这占用空间并产生不必要的处理。其他的结构性问题,比如使用弃用元素或API调用所不支持的目标API版本,可能会导致代码未能正确地运行。
概述
Android SDK提供了一个代码扫描工具,称为 lint这可以帮助您轻松地识别并纠正问题与结构质量的代码,而不必执行应用程序或编写任何测试用例。每个问题检测到该工具报告的一个描述消息和严重性级别,您可以快速地优先考虑的关键改进,需要。您还可以配置一个问题的严重性级别,忽略不相关的问题,为您的项目,或提高的严重程度。这个工具有一个命令行接口,所以您可以很容易地集成到您的自动化测试过程。
这个 lint工具检查你的Android项目源文件潜在的bug和优化改进,以确保正确性、安全性、性能、可用性、可访问性和国际化。您可以运行 lint从命令行或从Eclipse环境。
图1展示了 lint工具处理应用程序源文件。
http://developer.android.com/images/tools/lint.png
图1。代码扫描的工作流与 lint工具
- 应用程序源文件*
:源文件包含文件,让你的Android项目,包括Java和XML文件,图标和混淆器配置文件。
- 这个 lint.xml文件*
:一个配置文件,您可以使用它来指定任何 lint检查你想排除和定制问题严重级别。
- 这个 lint工具*
:一个静态代码扫描工具,您可以运行在你的Android项目从命令行或从Eclipse。这个 lint工具检查结构代码的问题,可能会影响质量和性能的Android应用程序。强烈建议您纠正任何错误 lint检测应用程序之前出版。
- 结果 lint检查*
:您可以查看结果 lint在控制台或在Lint Warnings在Eclipse视图。每个问题是确定的位置在源文件它发生的位置和描述的问题。
这个 lint工具将自动安装Android SDK的一部分16或更高版本的工具。如果你想使用 lint在Eclipse环境中,您还必须安装Android开发工具(ADT)插件的Eclipse版本16或更高。为更多的信息关于安装SDK和Eclipse ADT插件,请参阅安装SDK。
lint从Eclipse运行
如果ADT插件���装在您的Eclipse环境, lint工具运行时自动执行这些行动的:
- 出口一个APK
- 编辑和保存一个XML源文件在你的Android项目(比如清单或布局文件)
- 使用布局编辑器在Eclipse中进行更改
注意,当您导出一个APK, lint只运行一个自动检查致命错误和中止出口如果致命错误被发现。你可以关掉这个自动检查从Lint错误检查Eclipse首选项页面。
输出显示在Lint Warnings视图。如果Lint Warnings的观点是不显示在工作台,你可以把它从Eclipse菜单点击窗口> Show view > > >其他AndroidLint Warnings。
图2显示了一个示例的输出在Lint Warnings视图。
文件:1233.png|800px|thumb|left|图2。在示例输出Lint Warnings视图
您还可以运行 lint在你的Android项目手动扫描在Eclipse中通过右键单击项目文件夹在Package Explorer工具>运行> Android Lint Warnings.
从命令行运行lint
要运行 lint对一个文件列表的项目目录:
lint [flags]
例如,您可以发出以下命令来扫描下的文件 myproject目录及其子目录。这个问题ID MissingPrefix告诉 lint只扫描XML属性缺失的Android名称空间前缀。
lint --check MissingPrefix myproject
要查看完整的列表的命令行参数所支持的工具:
lint --help
示例lint产量
下面的例子显示了控制台时的输出 lint命令是违反一项名为Earthquake。
$ lint Earthquake
Scanning Earthquake: ...............................................................................................................................
Scanning Earthquake (Phase 2): .......
AndroidManifest.xml:23: Warning: tag appears after tag [ManifestOrder]
^
AndroidManifest.xml:23: Warning: 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]
^
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
上面的输出列出了四个警告和没有错误在这个项目。三个警告(ManifestOrder, UsesMinSdkAttributes,UsesMinSdkAttributes在项目的)被发现的 AndroidManifest.xml文件。剩下的警告(IconMissingDensityFolder)被发现的 Preferences.xml布局文件。
配置lint
默认情况下,当您运行一个 lint扫描,该工具检查所有问题所支持 lint。您还可以限制问题 lint检查并分配为这些问题的严重程度。例如,您可以禁用 lint检查特定的问题无关你的项目和配置 lint报告非关键问题在一个较低的严重程度。
您可以配置 lint检查在不同的级别:
* 在可操作范围内,对所有的项目
* 每个项目
* 每个文件
* 每个Java类或方法(通过使用 @SuppressLint注释),或每个XML元素(通过使用 tools:ignore属性。
lint在Eclipse中配置
您可以配置可操作,具体项目和文件特定的设置 lint从Eclipse用户界面。
Global preferences
1.Open Window > Preferences > Android > Lint Error Checking。
2.指定您的首选项并单击OK。
这些设置都应用默认情况下当你运行 lint在你的Android项目在Eclipse中。
项目和文件特定偏好
1.运行 lint工具在你的项目通过右键单击您的项目文件夹在包浏览器并选择Android工具>运行Lint:检查常见的错误。这个操作将显示视图,其中显示了Lint Warnings的问题清单, lint在你的项目检测。
2.从Lint Warnings视图,使用工具栏选项来配置 lint个人偏好在Eclipse项目和文件。你可以在选项选择包括:
:* 抑制这个错误的注释/属性——如果这个问题出现在一个Java类, lint工具添加一个 @SuppressLint注释的方法检测问题。如果这个问题出现在一个 .xml文件, lint插入一个 tools:ignore属性来禁用检查 lint问题在这个文件中。
:* 忽略在这个文件中,禁用检查这个 lint问题在这个文件中。
:* 忽略在这个项目-禁用检查这个 lint在这个项目的问题。
:* 总是忽略——禁用检查这个 lint在可操作范围内对所有的项目问题。
如果你选择第二个或第三个选项, lint工具会自动生成一个 lint.xml文件与这些配置设置在你的Android应用程序项目文件夹。
配置lint文件
您可以指定你的 lint检查偏好在 lint.xml文件。如果你正在创建这个文件手动,将其放置在你的Android项目根目录。如果您正在配置 lint在Eclipse首选项, lint.xml文件是自动创建并添加到你的Android项目给你。
这个 lint.xml文件包含一个封闭 父标记,它包含一个或更多的child 元素。每个 由一个唯一的标识吗 id属性值,它被定义为 lint.
<?xml version"UTF-8"?>
通过设置属性值的程度 标签,你可以禁用 lint检查一个问题或更改为一个问题的严重程度。
提示:要查看完整的列表,支持的问题 lint工具及其相应的问题id,运行 lint --list命令。
- 示例lint。xml文件*
下面的例子显示的内容 lint.xml文件。
<?xml version"UTF-8"?>
1 2 3 4 5 6 7 8 9 10 11 12 13 |
<!-- 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"error" />
|
配置lint检查Java和XML源文件中
你可以禁用 lint检查从你的Java和XML源文件。
提示:如果您使用的是Eclipse,您可以使用快速修复功能来自动添加注释或属性来禁用 lint检查您的Java或XML源文件:
1.打开Java或XML文件,有一个 Lint Warnings或错误在Eclipse编辑器。
2.移动你的光标位置的文件在哪里 lint问题是找到,然后按 Ctrl+1启动快速修复弹出。
3.从快速修复弹出,选择行动来添加一个注释或属性来忽略 lint问题。
在Java中配置lint检查
禁用 lint专门为一个Java类检查或方法在你的Android项目,添加 @SuppressLint注释的Java代码。
下面的例子展示了如何关掉 lint检查 NewApi问题 onCreate方法。这个 lint工具继续检查 NewApi问题在其他这个类的方法。
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
下面的例子显示了如何关掉 lint检查 ParserError问题 FeedProvider类:
@SuppressLint("ParserError")
public class FeedProvider extends ContentProvider {
忽略检查所有 lint问题在Java文件,使用 all关键字,像这样:
@SuppressLint("all")
在XML配置lint检查
您可以使用 tools:ignore属性来禁用 lint检查你的XML文件的特定部分。为了让这个属性是承认的 lint工具,以下名称空间值必须包含在XML文件:
namespace xmlns:tools="http://schemas.android.com/tools"
下面的例子展示了如何关掉 lint检查 UnusedResources问题 元素的XML布局文件。这个 ignore属性是继承了children 的元素的 parent 元素中声明的属性。在这个例子中, lint检查是否禁用了child 元素。
1 2 |
<TextView
android:text="@string/auto_update_prompt" />
|
禁用不止一个问题,这个问题列表来禁用以逗号分隔的字符串。例如:
tools:ignore="NewApi,StringFormatInvalid"
忽略检查所有 lint问题在XML元素,使用 all关键字,像这样:
tools:ignore="all"