Android Lint是在ADT 16(和 Tools 16)引进的一个新东西,可以扫描Android 项目源码中潜在的bug 。它可一起作为一个指令行东西,以及集??成在Eclipse(如下所述),和IntelliJ(详细信息)中。这个架构是有意独立于IDE的,因而它有期望与其他的IDE,其他的构建东西和继续集成系统集成。
以下是它进行扫描的一些过错类型的比方:
短少翻译(和未运用的翻译)
布局功能问题(老的layoutopt东西会用于查找一切这样的问题,和除此之外更多的问题)
未运用的资源
不一致的数组巨细(当在多个装备中界说数组)
可拜访性和国际化问题(硬编码字符串,短少contentDescription等)
图标问题 (如丢掉密度、 重复图标、 过错尺度等)
可用性问题 (如不在文本字段上指定输入的类型)
清单过错 以及其他更多的问题。
请参看此文档以了解当时 lint 检查的问题的完好列表。 有关怎么撤销显现(suppress)特定的 lint 正告信息,请参看撤销正告显现的文档.
假如你对编写自界说的lint 检查有爱好,可以参看编写新的 Lint 检查和编写自界说 Lint 规矩。
指令行用法
在 SDK 东西目录有一个指令行东西叫做 lint。 假如在你的path上现已装备了 SDK 的tools/ 目录,您可以运用“lint”来调用它。只需指向一个特定的 Android 项目目录。你也可以指向一个随机的目录,(假如它不是一个 Android 的项目)将以递归方法查找,并将检查该目录下的一切项目。(你还可以指定经过空格分隔的多个项目)。
$ lint /src/astrid/
Scanning GreenDroid-GoogleAPIs: ..
Scanning stream: …
Scanning api: ………………………
Scanning GDCatalog: …………………..
Scanning GreenDroid: …………………………………………………..
Scanning tests: …
Scanning filters: ….
Scanning tests: …..
Scanning astrid: ………………………………………………………………………………………………………………………………….
Scanning simple: …….
api/res/values-ca: Error: Locale ca is missing translations for: sync_SPr_bgwifi_key, sync_SPr_forget_key, sync_SPr_interval_values, sync_SPr_logged_in_prefix… (2 more) [MissingTranslation]
astrid/res/values-ca: Error: Locale ca is missing translations for: DLG_cancel, DLG_dismiss, DLG_ok, EPr_deactivated… (117 more) [MissingTranslation]
api/res/values-cs: Error: Locale cs is missing translations for: sync_SPr_bgwifi_key, sync_SPr_forget_key, sync_SPr_interval_values, sync_SPr_logged_in_prefix… (2 more) [MissingTranslation]
(many lines omitted)
43 errors, 466 warnings
禁用检查
每种过错类型的“ID”都显现在过错音讯后边的括号中,如上面的“MissingTranslation”。
您可以经过增加 –disable argument,禁用一个特定的检查,或一列的检查,例如:
$ lint –disable MissingTranslation,UnusedIds,Usability:Icons /src/astrid/
留意,您也可以列出类别,比方上面的“Usability:Icons”,便是用性类别的图标子类别。
有些检查默许情况下牌禁用状况。可以经过增加–enable标志启用它们。
最终,您可以经过–check标志指定运转哪些切当的检查。这让你可以在代码库中查找一个详细的问题,比方:
$ lint –check MissingPrefix /src/astrid/
假如要找出哪个 id 和类别是可用的,请运转
$ lint –list
Valid issue categories:
Correctness
Security
Performance
Usability
Usability:Icons
Accessibility
Internationalization
Valid issue id’s:
ContentDescription: Ensures that image widgets provide a contentDescription
DuplicateIds: Checks for duplicate ids within a single layout
StateListReachable: Looks for unreachable states in a
InefficientWeight: Looks for inefficient weight declarations in LinearLayouts
ScrollViewSize: Checks that ScrollViews use wrap_content in scrolling dimension
MergeRootFrame: Checks whether a root
…
运用–show指令加上 id 列表或类别 (或不带参数检查悉数)可以获取指定的问题的解说:
$ lint –show MissingPrefix
MissingPrefix
————-
Summary: Detect XML attributes not using the Android namespace
Priority: 8 / 10
Severity: Warning
Category: Correctness
Most Android views have attributes in the Android namespace. When
referencing these attributes you *must* include the namespace prefix,
or your attribute will be interpreted by aapt as just a custom
attribute.
HTML 报表
这个指令行东西还可以生成HTML陈述。这比较一般的 lint 输出有必定的优势:
它包括每个问题相关的更长的解说,并经过一个More info 的特点供给关于这个问题的更详细信息的链接。
它包括有过错的实践的源代码行 (上下各有三行代码的一个窗口)。
它可以包括相关到该源代码文件的链接
关于过错图标,为可以比较起见,在陈述中会显现图标自身 要生成 HTML 陈述,只需要增加–html 文件名 作为参数: