因?yàn)楣ぷ髦幸胠int檢查沒有使用資源引用的字符串,而我之前從來沒有用過這個(gè)工具,只是聽說過悠就,趁著這個(gè)機(jī)會(huì)學(xué)習(xí)一下lint工具千绪。
優(yōu)化的內(nèi)容主要包括:
1.Correctness:不夠完美的編碼,比如硬編碼梗脾、使用過時(shí) API 等荸型。
2.Performance:對(duì)性能有影響的編碼,比如:靜態(tài)引用炸茧,循環(huán)引用等
3.Internationalization:國(guó)際化瑞妇,直接使用漢字,沒有使用資源引用等
4.Security:不安全的編碼,比如在 WebView 中允許使用 JavaScriptInterface 等
Lint檢查有兩種方式,我學(xué)習(xí)的是第二種方式
1.從命令行運(yùn)行 Lint
lint [flags] <project directory>
Lint 也可以使用 Gradle 運(yùn)行:gradlew lint
2.Android Studio 中使用 Lint
點(diǎn)擊inspect Code,默認(rèn)檢查的是整個(gè)項(xiàng)目
可以選擇Custom scope自定義檢查范圍
以下以我的Demo為例做了Lint檢查,一個(gè)小小Demo就有這么多問題
針對(duì) Android 的規(guī)則類別會(huì)在分類前說明是 Android 相關(guān)的骤宣,主要是六類:
1.Accessibility 無障礙等限,例如 ImageView 缺少 contentDescription 描述,String 編碼字符串等問題。
2.Correctness 正確性友存,例如 xml 中使用了不正確的屬性值搀军,Java 代碼中直接使用了超過最低 SDK 要求的 API 等。
3.Internationalization 國(guó)際化,如字符缺少翻譯等問題。
4.Performance 性能,例如在 onMeasure挨措、onDraw 中執(zhí)行 new伶唯,內(nèi)存泄露,產(chǎn)生了冗余的資源符欠,xml 結(jié)構(gòu)冗余等。
5.Security 安全性,例如沒有使用 HTTPS 連接 Gradle,AndroidManifest 中的權(quán)限問題等。
6.Usability 易用性,例如缺少某些倍數(shù)的切圖,重復(fù)圖標(biāo)等。
其他的結(jié)果條目則是針對(duì) Java 語法的問題,另外每一個(gè)問題都有區(qū)分嚴(yán)重程度(severity),從高到底依次是:
Fatal
Error
Warning
Information
Ignore