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"



