使用Android Lint檢查代碼缺陷

背景

Android Lint 是Android自帶的代碼檢查工具,它能幫助我們識(shí)別很多潛在的錯(cuò)誤。

Lint 介紹

Android Lint 可以掃描android項(xiàng)目源代碼中的潛在錯(cuò)誤。它既可以作為命令行工具,也可以與Eclipse(如下所述)和Intellij(詳細(xì)信息)集成。體系結(jié)構(gòu)是有意獨(dú)立于IDE的,因此它有望與其他IDE、其他構(gòu)建工具以及持續(xù)集成系統(tǒng)集成。

下面是它查找的錯(cuò)誤類型的一些示例:

  • 缺少轉(zhuǎn)換(和未使用的轉(zhuǎn)換)
  • 布局性能問題(舊布局工具用于查找的所有問題等)
  • 未使用的資源
  • 數(shù)組大小不一致(在多個(gè)配置中定義數(shù)組時(shí))
  • 可訪問性和國際化問題(硬編碼字符串、缺少內(nèi)容描述等)
  • 圖標(biāo)問題(如密度丟失、圖標(biāo)重復(fù)、大小錯(cuò)誤等)
  • 可用性問題(如未在文本字段上指定輸入類型)
  • 明顯錯(cuò)誤

它可幫助您發(fā)現(xiàn)并糾正代碼結(jié)構(gòu)質(zhì)量的問題,而無需實(shí)際執(zhí)行該應(yīng)用,也不必編寫測試用例。該工具會(huì)報(bào)告其檢測到的每個(gè)問題并提供該問題的描述消息和嚴(yán)重級(jí)別,以便您可以快速確定需要優(yōu)先進(jìn)行哪些關(guān)鍵改進(jìn)。此外,您可以調(diào)低問題的嚴(yán)重級(jí)別,忽略與項(xiàng)目無關(guān)的問題,也可以調(diào)高嚴(yán)重級(jí)別,以突出特定問題。

Lint 工具可檢查您的 Android 項(xiàng)目源文件是否包含潛在錯(cuò)誤,以及在正確性、安全性、性能、易用性、便利性和國際化方面是否需要優(yōu)化改進(jìn)。在使用 Android Studio 時(shí),配置的 Lint 和 IDE 檢查會(huì)在您每次構(gòu)建應(yīng)用時(shí)運(yùn)行。

image.png

在命令行執(zhí)行

./gradlew lint

加入僅僅僅僅檢查 buildType=debug ,可以使用:

./gradlew lintDebug

執(zhí)行完畢后,輸入的內(nèi)容如下:


image.png

查看報(bào)告

報(bào)告位于:app/build/reports/lint-results.html
它可能長這樣:

image.png

接下來

查看報(bào)告,根據(jù)這些警告和提示修復(fù)代碼,改進(jìn)代碼缺陷,提高代碼質(zhì)量。

我們可以將 Lint 工具集成到我們CI過程中去,構(gòu)成研發(fā)體系的一部分。

擴(kuò)展閱讀

我們可能想做一些自定義設(shè)置,可以這么做

def configDir = "${project.rootDir}/config/quality"
def reportsDir = "${project.buildDir}/reports"

    android {
        lintOptions {
            abortOnError true
            xmlReport false
            htmlReport true
            lintConfig file("$configDir/lint/lint.xml")
            htmlOutput file("$reportsDir/lint/lint-result.html")
            xmlOutput file("$reportsDir/lint/lint-result.xml")
        }
    }

參考

https://developer.android.google.cn/studio/write/lint.html
https://sites.google.com/a/android.com/tools/tips/lint
http://www.itdecent.cn/p/b4c44e62d652 這篇文章真的很詳細(xì)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容