Android 靜態(tài)代碼分析
-
Android Studio IDE Inspections
-
IDE默認集成庙睡,通過IDE下安裝目錄 <android studio path>/bin/inspect.sh 進行執(zhí)行莫其,path需要絕對路徑指定。比如:
/Applications/Android\ Studio.app/Contents/bin/inspect.sh ~/tw/android/XXX ~/tw/android/XXX/.idea/inspectionProfiles/Project_Default.xml ~/tw/android/XXX/inspect_report -v2 -d ~/tw/android/XXX/host-demo
在執(zhí)行完成后,可以將inspect_report中的xml結(jié)果舆驶,通過IDE的View Offline Inspections Result…進行加載顯示。
-
或者通過Android Studio中的Analyze -> inpsect code執(zhí)行:
圖一可以自定義需要檢測的inpsect的scope而钞,或者export Inspection profile沙廉,通過上述的inspect.sh執(zhí)行。
inpsect result:
image-20180623153950310.png可以手動導出HMTL或者XML臼节。使用Inspection手動檢查
-
-
Android Lint
-
Android lint是通過ADT引入的一個工具撬陵,通過lint --list可以查看當前ADT版本所支持的所有issues(前提需要將~/Library/Android/sdk/tools/bin加入到PATH):
圖三 -
運行./gradlew lint,可以得到對應project的lint report以及具體的issue信息:
圖四 -
配置Android lint网缝,可以通過在build.gradle中添加lintOptions進行配置巨税,具體可通過添加field name或者添加lint.xml文件進行配置,默認加載Project目錄下的lint.xml
常用配置說明:
-
abortOnError = true
粉臊,發(fā)現(xiàn)Error級別Lint問題時會中斷編譯
-
ignoreWarnings = true
草添,不檢查Warning級別的Lint問題
-
lintConfig
,默認為lint.xml
扼仲,指定XML配置文件位置
-
enable
远寸,配置要檢查的問題
-
disable
,指定不檢查的問題
-
check
屠凶,指定所有要檢查的問題而晒,沒有指定的都不檢查
image.pnglint也支持自定義rule來檢查,更多關(guān)于lintOptions的使用:
-
-
-
第三方工具集成阅畴,如Checkstyle倡怎,F(xiàn)indBugs,PMD
比如Checkstyle插件贱枣,運行其中一個project結(jié)果:
image.png
繼續(xù)閱讀關(guān)于lint和checkstyle的配置:Android Lint & Checkstyle