項目規范性檢測工具lint.bat
一、Lint基本概念介紹
Android Lint是SDK Tools 16 (ADT 16)之后才引入的工具,通過它對Android工程源代碼進行掃描和檢查,可發現潛在的問題,以便程序員及早修正這個問題。Android Lint提供了命令行方式執行,還可與IDE(如Eclipse)集成,並提供了html形式的輸出報告。
由於Android Lint在最初設計時就考慮到了independent於IDE,所以它可以很方便的與項目中的其他自動系統(配置/ Build / 測試等)集成。Android Lint主要用於檢查以下這些錯誤:
當然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文件)是用不到的,那么可以直接刪除,保險起見、也可以在其他地方進行備份。而如果要在某個文件中對部分不用的變量進行剔除,一般采用的專業做法是進行注釋,而不是簡單粗暴的刪除,以防以后需要重新使用這些變量,而且留下痕跡也便於查看誰對該文件做過修改。