提高你的代碼穩定性與可讀性-lint工具


from://http://wiki.eoe.cn/page/Improving_Your_Code_with_lint.html

負責人:lingzideshensha

分任務原文鏈接:http://developer.android.com/tools/debugging/improving-w-lint.html

除了測試你的Android應用程序滿足其功能需求,重要的是要確保你的代碼沒有結構性問題。代碼結構簡陋的可靠性和效率的影響你的Android應用程序,使您的代碼很難維護。例如,如果您的XML資源文件包含未使用的名稱空間,這占用空間並產生不必要的處理。其他的結構性問題,比如使用棄用元素或API調用所不支持的目標API版本,可能會導致代碼未能正確地運行。

概述

Android SDK提供了一個代碼掃描工具,稱為 lint這可以幫助您輕松地識別並糾正問題與結構質量的代碼,而不必執行應用程序或編寫任何測試用例。每個問題檢測到該工具報告的一個描述消息和嚴重性級別,您可以快速地優先考慮的關鍵改進,需要。您還可以配置一個問題的嚴重性級別,忽略不相關的問題,為您的項目,或提高的嚴重程度。這個工具有一個命令行接口,所以您可以很容易地集成到您的自動化測試過程。

這個 lint工具檢查你的Android項目源文件潛在的bug和優化改進,以確保正確性、安全性、性能、可用性、可訪問性和國際化。您可以運行 lint從命令行或從Eclipse環境。

圖1展示了 lint工具處理應用程序源文件。

http://developer.android.com/images/tools/lint.png

圖1。代碼掃描的工作流與 lint工具

  • 應用程序源文件*

:源文件包含文件,讓你的Android項目,包括Java和XML文件,圖標和混淆器配置文件。

  • 這個 lint.xml文件*

:一個配置文件,您可以使用它來指定任何 lint檢查你想排除和定制問題嚴重級別。

  • 這個 lint工具*

:一個靜態代碼掃描工具,您可以運行在你的Android項目從命令行或從Eclipse。這個 lint工具檢查結構代碼的問題,可能會影響質量和性能的Android應用程序。強烈建議您糾正任何錯誤 lint檢測應用程序之前出版。

  • 結果 lint檢查*

:您可以查看結果 lint在控制台或在Lint Warnings在Eclipse視圖。每個問題是確定的位置在源文件它發生的位置和描述的問題。

這個 lint工具將自動安裝Android SDK的一部分16或更高版本的工具。如果你想使用 lint在Eclipse環境中,您還必須安裝Android開發工具(ADT)插件的Eclipse版本16或更高。為更多的信息關於安裝SDK和Eclipse ADT插件,請參閱安裝SDK。

lint從Eclipse運行

如果ADT插件���裝在您的Eclipse環境, lint工具運行時自動執行這些行動的:

  • 出口一個APK
  • 編輯和保存一個XML源文件在你的Android項目(比如清單或布局文件)
  • 使用布局編輯器在Eclipse中進行更改

注意,當您導出一個APK, lint只運行一個自動檢查致命錯誤和中止出口如果致命錯誤被發現。你可以關掉這個自動檢查從Lint錯誤檢查Eclipse首選項頁面。

輸出顯示在Lint Warnings視圖。如果Lint Warnings的觀點是不顯示在工作台,你可以把它從Eclipse菜單點擊窗口> Show view > > >其他AndroidLint Warnings。

圖2顯示了一個示例的輸出在Lint Warnings視圖。

文件:1233.png|800px|thumb|left|圖2。在示例輸出Lint Warnings視圖

您還可以運行 lint在你的Android項目手動掃描在Eclipse中通過右鍵單擊項目文件夾在Package Explorer工具>運行> Android Lint Warnings.

從命令行運行lint

要運行 lint對一個文件列表的項目目錄:

lint [flags]

例如,您可以發出以下命令來掃描下的文件 myproject目錄及其子目錄。這個問題ID MissingPrefix告訴 lint只掃描XML屬性缺失的Android名稱空間前綴。

lint --check MissingPrefix myproject

要查看完整的列表的命令行參數所支持的工具:

lint --help

示例lint產量

下面的例子顯示了控制台時的輸出 lint命令是違反一項名為Earthquake。

$ lint Earthquake

Scanning Earthquake: ...............................................................................................................................
Scanning Earthquake (Phase 2): .......
AndroidManifest.xml:23: Warning: tag appears after tag [ManifestOrder]

^
AndroidManifest.xml:23: Warning: tag should specify a target API level (the highest verified version; when running on later versions, compatibility behaviors may be enabled) with android:targetSdkVersion="?" [UsesMinSdkAttributes]

^
res/layout/preferences.xml: Warning: The resource R.layout.preferences appears to be unused [UnusedResources]
res: Warning: Missing density variation folders in res: drawable-xhdpi [IconMissingDensityFolder]
0 errors, 4 warnings

上面的輸出列出了四個警告和沒有錯誤在這個項目。三個警告(ManifestOrder, UsesMinSdkAttributes,UsesMinSdkAttributes在項目的)被發現的 AndroidManifest.xml文件。剩下的警告(IconMissingDensityFolder)被發現的 Preferences.xml布局文件。

配置lint

默認情況下,當您運行一個 lint掃描,該工具檢查所有問題所支持 lint。您還可以限制問題 lint檢查並分配為這些問題的嚴重程度。例如,您可以禁用 lint檢查特定的問題無關你的項目和配置 lint報告非關鍵問題在一個較低的嚴重程度。

您可以配置 lint檢查在不同的級別:
* 在可操作范圍內,對所有的項目
* 每個項目
* 每個文件
* 每個Java類或方法(通過使用 @SuppressLint注釋),或每個XML元素(通過使用 tools:ignore屬性。

lint在Eclipse中配置

您可以配置可操作,具體項目和文件特定的設置 lint從Eclipse用戶界面。

Global preferences

1.Open Window > Preferences > Android > Lint Error Checking。
2.指定您的首選項並單擊OK。
這些設置都應用默認情況下當你運行 lint在你的Android項目在Eclipse中。

項目和文件特定偏好

1.運行 lint工具在你的項目通過右鍵單擊您的項目文件夾在包瀏覽器並選擇Android工具>運行Lint:檢查常見的錯誤。這個操作將顯示視圖,其中顯示了Lint Warnings的問題清單, lint在你的項目檢測。
2.從Lint Warnings視圖,使用工具欄選項來配置 lint個人偏好在Eclipse項目和文件。你可以在選項選擇包括:

:* 抑制這個錯誤的注釋/屬性——如果這個問題出現在一個Java類, lint工具添加一個 @SuppressLint注釋的方法檢測問題。如果這個問題出現在一個 .xml文件, lint插入一個 tools:ignore屬性來禁用檢查 lint問題在這個文件中。
:* 忽略在這個文件中,禁用檢查這個 lint問題在這個文件中。
:* 忽略在這個項目-禁用檢查這個 lint在這個項目的問題。
:* 總是忽略——禁用檢查這個 lint在可操作范圍內對所有的項目問題。

如果你選擇第二個或第三個選項, lint工具會自動生成一個 lint.xml文件與這些配置設置在你的Android應用程序項目文件夾。

配置lint文件

您可以指定你的 lint檢查偏好在 lint.xml文件。如果你正在創建這個文件手動,將其放置在你的Android項目根目錄。如果您正在配置 lint在Eclipse首選項, lint.xml文件是自動創建並添加到你的Android項目給你。

這個 lint.xml文件包含一個封閉 父標記,它包含一個或更多的child 元素。每個 由一個唯一的標識嗎 id屬性值,它被定義為 lint.

<?xml version"UTF-8"?>


通過設置屬性值的程度 標簽,你可以禁用 lint檢查一個問題或更改為一個問題的嚴重程度。

提示:要查看完整的列表,支持的問題 lint工具及其相應的問題id,運行 lint --list命令。

  • 示例lint。xml文件*

下面的例子顯示的內容 lint.xml文件。

<?xml version"UTF-8"?>


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<!-- Ignore the ObsoleteLayoutParam issue in the specified files -->
<issue id="ObsoleteLayoutParam">
    <ignore path="res/layout/activation.xml" />
    <ignore path="res/layout-xlarge/activation.xml" />
</issue>

<!-- Ignore the UselessLeaf issue in the specified file -->
<issue id="UselessLeaf">
    <ignore path="res/layout/main.xml" />
</issue>

<!-- Change the severity of hardcoded strings to "error" -->
<issue id"error" />

配置lint檢查Java和XML源文件中

你可以禁用 lint檢查從你的Java和XML源文件。

提示:如果您使用的是Eclipse,您可以使用快速修復功能來自動添加注釋或屬性來禁用 lint檢查您的Java或XML源文件:

1.打開Java或XML文件,有一個 Lint Warnings或錯誤在Eclipse編輯器。
2.移動你的光標位置的文件在哪里 lint問題是找到,然后按 Ctrl+1啟動快速修復彈出。
3.從快速修復彈出,選擇行動來添加一個注釋或屬性來忽略 lint問題。

在Java中配置lint檢查

禁用 lint專門為一個Java類檢查或方法在你的Android項目,添加 @SuppressLint注釋的Java代碼。

下面的例子展示了如何關掉 lint檢查 NewApi問題 onCreate方法。這個 lint工具繼續檢查 NewApi問題在其他這個類的方法。

@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);

下面的例子顯示了如何關掉 lint檢查 ParserError問題 FeedProvider類:

@SuppressLint("ParserError")
public class FeedProvider extends ContentProvider {

忽略檢查所有 lint問題在Java文件,使用 all關鍵字,像這樣:
@SuppressLint("all")

在XML配置lint檢查

您可以使用 tools:ignore屬性來禁用 lint檢查你的XML文件的特定部分。為了讓這個屬性是承認的 lint工具,以下名稱空間值必須包含在XML文件:

namespace xmlns:tools="http://schemas.android.com/tools"

下面的例子展示了如何關掉 lint檢查 UnusedResources問題 元素的XML布局文件。這個 ignore屬性是繼承了children 的元素的 parent 元素中聲明的屬性。在這個例子中, lint檢查是否禁用了child 元素。

1
2
<TextView
    android:text="@string/auto_update_prompt" />

禁用不止一個問題,這個問題列表來禁用以逗號分隔的字符串。例如:

tools:ignore="NewApi,StringFormatInvalid"

忽略檢查所有 lint問題在XML元素,使用 all關鍵字,像這樣:

tools:ignore="all"

 

LintWindow
想一個項目中運行lint,在PackageExplorer中選擇項目,點擊Lint工具欄選項(見右圖)。
或者你可以在項目上右擊點擊Android Tools子菜單,將會有一個 “RunLint” 選項. 這個會打開一個 包含有各種錯誤的Lint窗口.選擇一個錯誤將會在右邊的區域顯示與之關聯的解釋.
你可以在Lint窗口中雙擊錯誤去定位到與之關聯的源碼, 每個警告圖標將顯示其嚴重性,對於已經修復的警告,有一個小燈泡.
窗口也有一個操作欄(在右上方角落),它可以讓你
再次運行lint 檢查並刷新結果 (刷新的過程中會變成停止按鈕,如果你想停止的話可以點擊停止按鈕)
如果存在,運行和此錯誤關聯修復
忽略此修復
移除單條警告標識
移除所有警告標識
快速修復                                                                        
許多lint警告有自動修復功能。例如,不同的layoutopt修正建議替換(例如:更換wrap_content與0DP)。
從lint視圖,點擊燈泡修復
從布局編輯器警告摘要,單擊“修復”按鈕來修復。
從XML源代碼編輯器中,調用快速修復(按Ctrl-1),並選擇快速修復警告。
抑制錯誤                                                        
從編輯器的快速修復菜單,您也可以選擇
僅僅在這個文件中忽略警告
在這個項目中忽略警告
忽略警告,周期.
使用注釋或屬性忽略警告.
選項
要編輯全局的皮棉選項,這是用於所有項目的后備選項,調用正常的Eclipse選項“對話框,選擇Android> lint選項:
如果你選擇了一個問題,你可以在右下角的下拉列表編輯其嚴重性。這使您可以設計特定的問題作為一個錯誤。需要完全的關閉的一個問題,選擇“忽略”的嚴重程度。需要注意的是,這並不編輯每個項目的Lint設置。打開項目設置對話框(右鍵單擊該項目),在那里你會發現一個AndroidLint的屬性頁。在“選項”對話框手動編輯嚴重程度伴隨抑制錯誤將被記錄在lint.xml文件,因此在你的團隊的其他人將獲得相同的診斷配置

 


免責聲明!

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



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