因為工作中要用lint檢查沒有使用資源引用的字符串,而我之前從來沒有用過這個工具,只是聽說過,趁著這個機會學習一下lint工具。
優化的內容主要包括:
1.Correctness:不夠完美的編碼,比如硬編碼、使用過時 API 等。
2.Performance:對性能有影響的編碼,比如:靜態引用,循環引用等
3.Internationalization:國際化,直接使用漢字,沒有使用資源引用等
4.Security:不安全的編碼,比如在 WebView 中允許使用 JavaScriptInterface 等
Lint檢查有兩種方式,我學習的是第二種方式
1.從命令行運行 Lint
lint [flags] <project directory>
Lint 也可以使用 Gradle 運行:gradlew lint
2.Android Studio 中使用 Lint
點擊inspect Code,默認檢查的是整個項目
可以選擇Custom scope自定義檢查范圍
以下以我的Demo為例做了Lint檢查,一個小小Demo就有這么多問題
針對 Android 的規則類別會在分類前說明是 Android 相關的,主要是六類:
1.Accessibility 無障礙,例如 ImageView 缺少 contentDescription 描述,String 編碼字符串等問題。
2.Correctness 正確性,例如 xml 中使用了不正確的屬性值,Java 代碼中直接使用了超過最低 SDK 要求的 API 等。
3.Internationalization 國際化,如字符缺少翻譯等問題。
4.Performance 性能,例如在 onMeasure、onDraw 中執行 new,內存泄露,產生了冗余的資源,xml 結構冗余等。
5.Security 安全性,例如沒有使用 HTTPS 連接 Gradle,AndroidManifest 中的權限問題等。
6.Usability 易用性,例如缺少某些倍數的切圖,重復圖標等。
其他的結果條目則是針對 Java 語法的問題,另外每一個問題都有區分嚴重程度(severity),從高到底依次是:
Fatal
Error
Warning
Information
Ignore