[TOC]
## Android line靜態代碼檢查
### 優勢
1. 功能強大,Lint支持Java源文件、class文件、資源文件、Gradle等文件的檢查。
2. 擴展性強,支持開發自定義Lint規則。
3. 配套工具完善,Android Studio、Android Gradle插件原生支持Lint工具。
4. Lint專為Android設計,原生提供了幾百個實用的Android相關檢查規則。
5. 有Google官方的支持,會和Android開發工具一起升級完善
### 自定義line

### 執行時機
Lint檢查可以在多個階段執行,包括在本地手動檢查、編碼實時檢查、編譯時檢查、commit檢查,以及在CI系統中提Pull Request時檢查、打包發版時檢查等,下面分別介紹。
### 手動執行
在Android Studio中,自定義Lint可以通過Inspections功能(`Analyze - Inspect Code`)手動運行。
在Gradle命令行環境下,可直接用`./gradlew lint`執行Lint檢查。
手動執行簡單易用,但缺乏強制性,容易被開發者遺漏。
### 編碼階段實時檢查
編碼時檢查即在Android
Studio中寫代碼時在代碼窗口實時報錯。其好處很明顯,開發者可以第一時間發現代碼問題。但受限于Android
Studio對自定義Lint的支持不完善,開發人員IDE的配置不同,需要開發者主動關注報錯并修復,這種方式不能完全保證效果。
### 本地編譯時自動檢查
配置Gradle腳本可實現編譯Android工程時執行Lint檢查。好處是既可以盡早發現問題,又可以有強制性;缺點是對編譯速度有一定的影響。
### 提代碼時CI檢查
作為代碼提交流程規范的一部分,發Pull Request提代碼時用CI系統檢查Lint問題是一個常見、可行、有效的思路。可配置CI檢查通過后代碼才能被合并。
# 參考資料
[ 美團外賣Android Lint代碼檢查實踐](https://zhuanlan.zhihu.com/p/35608859)
[Android Lint](https://www.jianshu.com/p/b4c44e62d652)
- Android
- 四大組件
- Activity
- Fragment
- Service
- 序列化
- Handler
- Hander介紹
- MessageQueue詳細
- 啟動流程
- 系統啟動流程
- 應用啟動流程
- Activity啟動流程
- View
- view繪制
- view事件傳遞
- choreographer
- LayoutInflater
- UI渲染概念
- Binder
- Binder原理
- Binder最大數據
- Binder小結
- Android組件
- ListView原理
- RecyclerView原理
- SharePreferences
- AsyncTask
- Sqlite
- SQLCipher加密
- 遷移與修復
- Sqlite內核
- Sqlite優化v2
- sqlite索引
- sqlite之wal
- sqlite之鎖機制
- 網絡
- 基礎
- TCP
- HTTP
- HTTP1.1
- HTTP2.0
- HTTPS
- HTTP3.0
- HTTP進化圖
- HTTP小結
- 實踐
- 網絡優化
- Json
- ProtoBuffer
- 斷點續傳
- 性能
- 卡頓
- 卡頓監控
- ANR
- ANR監控
- 內存
- 內存問題與優化
- 圖片內存優化
- 線下內存監控
- 線上內存監控
- 啟動優化
- 死鎖監控
- 崩潰監控
- 包體積優化
- UI渲染優化
- UI常規優化
- I/O監控
- 電量監控
- 第三方框架
- 網絡框架
- Volley
- Okhttp
- 網絡框架n問
- OkHttp原理N問
- 設計模式
- EventBus
- Rxjava
- 圖片
- ImageWoker
- Gilde的優化
- APT
- 依賴注入
- APT
- ARouter
- ButterKnife
- MMKV
- Jetpack
- 協程
- MVI
- Startup
- DataBinder
- 黑科技
- hook
- 運行期Java-hook技術
- 編譯期hook
- ASM
- Transform增量編譯
- 運行期Native-hook技術
- 熱修復
- 插件化
- AAB
- Shadow
- 虛擬機
- 其他
- UI自動化
- JavaParser
- Android Line
- 編譯
- 疑難雜癥
- Android11滑動異常
- 方案
- 工業化
- 模塊化
- 隱私合規
- 動態化
- 項目管理
- 業務啟動優化
- 業務架構設計
- 性能優化case
- 性能優化-排查思路
- 性能優化-現有方案
- 登錄
- 搜索
- C++
- NDK入門
- 跨平臺
- H5
- Flutter
- Flutter 性能優化
- 數據跨平臺