Android Studio Lint、gradle 檢查方案收藏

App的迭代過程中,線上問題頻繁發(fā)生。開發(fā)時很容易寫出一些問題代碼,例如Serializable的使用:實現(xiàn)了Serializable接口的類,如果其成員變量引用的對象沒有實現(xiàn)Serializable接口,序列化時就會Crash。我們對一些常見問題的原因和解決方法做分析總結(jié),并在開發(fā)人員組內(nèi)或跟測試人員一起分享交流,幫助相關(guān)人員主動避免這些問題。

為了進一步減少問題發(fā)生,我們逐步完善了一些規(guī)范,包括制定代碼規(guī)范,加強代碼Review,完善測試流程等。但這些措施仍然存在各種不足,包括代碼規(guī)范難以實施,溝通成本高,特別是開發(fā)人員變動頻繁導(dǎo)致反復(fù)溝通等,因此其效果有限,相似問題仍然不時發(fā)生。另一方面,越來越多的總結(jié)、規(guī)范文檔,對于組內(nèi)新人也產(chǎn)生了不小的學(xué)習(xí)壓力。

有沒有辦法從技術(shù)角度減少或減輕上述問題呢?

我們調(diào)研發(fā)現(xiàn),靜態(tài)代碼檢查是一個很好的思路。靜態(tài)代碼檢查框架有很多種,例如FindBugs、PMD、Coverity,主要用于檢查Java源文件或class文件;再例如Checkstyle,主要關(guān)注代碼風(fēng)格;但我們最終選擇從Lint框架入手,因為它有諸多優(yōu)勢:

功能強大,Lint支持Java源文件、class文件、資源文件、Gradle等文件的檢查。

擴展性強,支持開發(fā)自定義Lint規(guī)則。

配套工具完善,Android Studio、Android Gradle插件原生支持Lint工具。

Lint專為Android設(shè)計,原生提供了幾百個實用的Android相關(guān)檢查規(guī)則。

有Google官方的支持,會和Android開發(fā)工具一起升級完善。

在對Lint進行了充分的技術(shù)調(diào)研后,我們根據(jù)實際遇到的問題,又做了一些更深入的思考,包括應(yīng)該用Lint解決哪些問題,怎么樣更好的推廣實施等,逐步形成了一套較為全面有效的方案

為什么要自己寫 Lint 規(guī)則?

大多數(shù)開發(fā)者可能都不知道:你可以自己寫 Lint 規(guī)則。其實,在很多使用案例中,自定義的 Lint 規(guī)則往往大有用處:

如果你在寫一個代碼庫/SDK,你想幫助開發(fā)者正確地使用它,Lint? 規(guī)則就能派上用場。有了 Lint,你可以輕易地提醒他們忽略或做錯的事情。

如果你的團隊有了新加入的開發(fā)者,Lint 可以幫助他快速了解團隊的最佳實踐,或命名慣例。

https://blog.csdn.net/wangpeng198688/article/details/50751367

Android ------ 美團的Lint代碼檢查實踐

https://blog.csdn.net/dickyqie/article/details/79950167

android 自定義Lint

https://blog.csdn.net/xiangzhihong8/article/details/62041022


gradle配置

http://www.itdecent.cn/p/1a320062aedd

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

相關(guān)閱讀更多精彩內(nèi)容

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