新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > android官方技术文档翻译――Android Lint

android官方技术文档翻译――Android Lint

作者: 时间:2016-09-12 来源:网络 收藏

Android Lint是在ADT 16(和 Tools 16)引入的一个新工具,可以扫描Android 项目源码中潜在的bug 。它可同时作为一个命令行工具,以及集??成在Eclipse(如下所述),和IntelliJ(详细信息)中。这个架构是有意独立于IDE的,因此它有希望与其他的IDE,其他的构建工具和持续集成系统集成。

本文引用地址:https://www.eepw.com.cn/article/201609/304306.htm

以下是它进行扫描的一些错误类型的例子:

缺少翻译(和未使用的翻译)

布局性能问题(老的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 can be replaced with atag

...

使用--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 文件名 作为参数:


上一页 1 2 下一页

关键词:

评论


相关推荐

技术专区

关闭