android官方技術(shù)文檔翻譯――Android Lint
Android Lint是在A(yíng)DT 16(和 Tools 16)引入的一個(gè)新工具,可以?huà)呙鐰ndroid 項目源碼中潛在的bug 。它可同時(shí)作為一個(gè)命令行工具,以及集??成在Eclipse(如下所述),和IntelliJ(詳細信息)中。這個(gè)架構是有意獨立于IDE的,因此它有希望與其他的IDE,其他的構建工具和持續集成系統集成。
本文引用地址:http://dyxdggzs.com/article/201609/304306.htm
以下是它進(jìn)行掃描的一些錯誤類(lèi)型的例子:
缺少翻譯(和未使用的翻譯)
布局性能問(wèn)題(老的layoutopt工具會(huì )用于查找所有這樣的問(wèn)題,和除此之外更多的問(wèn)題)
未使用的資源
不一致的數組大小(當在多個(gè)配置中定義數組)
可訪(fǎng)問(wèn)性和國際化問(wèn)題(硬編碼字符串,缺少contentDescription等)
圖標問(wèn)題 (如丟失密度、 重復圖標、 錯誤尺寸等)
可用性問(wèn)題 (如不在文本字段上指定輸入的類(lèi)型)
清單錯誤 以及其他更多的問(wèn)題。
請參閱此文檔以了解當前 lint 檢查的問(wèn)題的完整列表。 有關(guān)如何取消顯示(suppress)特定的 lint 警告信息,請參閱取消警告顯示的文檔.
如果你對編寫(xiě)自定義的lint 檢查有興趣,可以參閱編寫(xiě)新的 Lint 檢查和編寫(xiě)自定義 Lint 規則。
命令行用法
在 SDK 工具目錄有一個(gè)命令行工具叫做 lint。 如果在你的path上已經(jīng)配置了 SDK 的tools/ 目錄,您可以使用“lint”來(lái)調用它。只需指向一個(gè)特定的 Android 項目目錄。你也可以指向一個(gè)隨機的目錄,(如果它不是一個(gè) Android 的項目)將以遞歸方式搜索,并將檢查該目錄下的所有項目。(你還可以指定通過(guò)空格分隔的多個(gè)項目)。
$ 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
禁用檢查
每種錯誤類(lèi)型的“ID”都顯示在錯誤消息后面的括號中,如上面的“MissingTranslation”。
您可以通過(guò)添加 --disable argument,禁用一個(gè)特定的檢查,或一列的檢查,例如:
$ lint --disable MissingTranslation,UnusedIds,Usability:Icons /src/astrid/
注意,您也可以列出類(lèi)別,比如上面的“Usability:Icons”,就是用性類(lèi)別的圖標子類(lèi)別。
有些檢查默認情況下牌禁用狀態(tài)??梢酝ㄟ^(guò)添加--enable標志啟用它們。
最后,您可以通過(guò)--check標志指定運行哪些確切的檢查。這讓你可以在代碼庫中查找一個(gè)具體的問(wèn)題,比如:
$ lint --check MissingPrefix /src/astrid/
如果要找出哪個(gè) id 和類(lèi)別是可用的,請運行
$ 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 列表或類(lèi)別 (或不帶參數查看全部)可以獲取指定的問(wèn)題的解釋?zhuān)?/p>
$ 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 報表
這個(gè)命令行工具還可以生成HTML報告。這相比普通的 lint 輸出有一定的優(yōu)勢:
它包含每個(gè)問(wèn)題相關(guān)的更長(cháng)的解釋?zhuān)⑼ㄟ^(guò)一個(gè)More info 的屬性提供關(guān)于這個(gè)問(wèn)題的更詳細信息的鏈接。
它包含有錯誤的實(shí)際的源代碼行 (上下各有三行代碼的一個(gè)窗口)。
它可以包含關(guān)聯(lián)到該源代碼文件的鏈接
對于錯誤圖標,為能夠比較起見(jiàn),在報告中會(huì )顯示圖標本身 要生成 HTML 報告,只需要添加--html 文件名 作為參數:
評論