項目規范性檢測工具Lint


項目規范性檢測工具lint.bat

 

一、Lint基本概念介紹

  Android Lint是SDK Tools 16 (ADT 16)之后才引入的工具,通過它對Android工程源代碼進行掃描和檢查,可發現潛在的問題,以便程序員及早修正這個問題。Android Lint提供了命令行方式執行,還可與IDE(如Eclipse)集成,並提供了html形式的輸出報告。

  由於Android Lint在最初設計時就考慮到了independent於IDE,所以它可以很方便的與項目中的其他自動系統(配置/ Build / 測試等)集成。Android Lint主要用於檢查以下這些錯誤:

  1、Missing translations (and unused translations)
2、Layout performance problems (all the issues the old layoutopt tool used to find, and more)
3、Unused resources
4、Inconsistent array sizes (when arrays are defined in multiple configurations)
5、Accessibility and internationalization problems (hardcoded strings, missing contentDescription, etc)
6、Icon problems (like missing densities, duplicate icons, wrong sizes, etc)
7、Usability problems (like not specifying an input type on a text field)
8、Manifest errors

  當然Android Lint遠遠不只檢查以上列出的8中錯誤,這里不一一給出,想了解更多的小伙伴可以參考相關文檔。

  在Eclipse中可以在菜單Window->Preference->“Lint Error Checking”中設置規則的檢查級別,如圖1所示。

  點開界面上的Severity下拉箭頭,可以看到Lint的檢查級別從高到低分別是:

  Default

  Fatal

  Errro

  Waring

  Information

  Ingore(即不檢查)

 

二、Lint命令行使用方法

  命令行的操作,自然是先從路徑說起了。

  Lint的命令名稱為lint.bat,完整路徑為SDK安裝目錄下的tools文件夾中,比如我的為:“E:\Android\Android Eclipse\sdk\tools\lint.bat”。為了以后能夠快速使用該命令,建議將路徑“E:\Android\Android Eclipse\sdk\tools”加入系統環境變量中。

  常規的用法格式為:lint.bat Project_Full_Path --xml Project_Result.xml --html Project_Result.html。其中:

  Project_Full_Path為項目完整的路徑名,也可以先定位到項目上一級目錄然后在此寫上項目名即可。如先定位於目錄“E:\Android\Project”,工程名為LoginUMQQ,那么具體的命令為:lint.bat LoginUMQQ --xml LoginUMQQ_Result.xml --html LoginUMQQ_Result.html。

  --xml和--html指定項目檢測內容的輸出格式,而Project_Result.xml和Project_Result.html為對應的結果輸出文件。

  一般來說,項目越大,檢測過程耗時越長,不過速度是非常快的。下面給出檢測命令及結果圖:

  此時,在指定目錄下就可以看到生成的文件了:

  這里說明一下,文件夾LoginUMQQ_Result_files中給出了error(紅色圓形感嘆號)、warning(灰色三角形感嘆號)、run(一般不用理會)的圖標,還有一個css格式文件。如下圖:

  通過這三個圖標在html文件中瀏覽檢測結果時可以清楚地知道某條信息是對應哪個類別,打開html文件后,有各種信息的分類和數目:

  以圖中2條未使用的屬性為例(UnusedAttribute),直接點擊會跳轉到對應說明:

  可以發現,Lint工具真的非常給力。對於未使用的屬性資源,細化到了真實的代碼(包括目錄、文件名、代碼塊)。當然,經過測試,檢測結果中的其他資源也類似地方便定位與修改。注意圖中下半部分給出的解釋信息,分析結果還會給出warnings或errors的修改優先級,數字越大,優先級越高,最高為10;最后一段會針對當前的警告信息做一個詳細的解釋,還包括推薦做法。

  雖然,檢測結果中的錯誤並不等同於Eclipse等工具在進行工程編譯時的錯誤(會讓程序終止運行),但是根據檢測信息對項目進行響應的修改絕對是一個好習慣。這樣做的好處有很多,如刪除冗余不用的圖片、xml等資源文件會讓項目變得整潔,減小整體容量;注釋(或刪除)文件中多余的變量定義可以讓文件易讀、易維護。

  其實,在實際的項目管理中,若像圖片這樣的整體資源(或整個xml文件)是用不到的,那么可以直接刪除,保險起見、也可以在其他地方進行備份。而如果要在某個文件中對部分不用的變量進行剔除,一般采用的專業做法是進行注釋,而不是簡單粗暴的刪除,以防以后需要重新使用這些變量,而且留下痕跡也便於查看誰對該文件做過修改。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM