使用 Lint 檢查改進(jìn)您的代碼
除了通過構(gòu)建測(cè)試來確保您的應(yīng)用符合其功能要求之外,還務(wù)必通過 Lint 運(yùn)行代碼來確保您的代碼不存在結(jié)構(gòu)問題。結(jié)構(gòu)不合理的代碼會(huì)影響 Android 應(yīng)用的可靠性和效率舟山,并使您的代碼更難以維護(hù)重窟,而 Lint 工具有助于找到這些代碼。
例如曼验,如果 XML 資源文件包含未使用的命名空間考阱,這樣不僅占用空間翠忠,而且還會(huì)導(dǎo)致不必要的處理鞠苟。其他結(jié)構(gòu)問題(如使用目標(biāo) API 版本不支持的已棄用的元素或 API 調(diào)用)可能會(huì)導(dǎo)致代碼無法正常運(yùn)行乞榨。Lint 可幫助您解決這些問題。
要進(jìn)一步提高 Lint 檢查的性能当娱,還應(yīng)向您的代碼添加注解吃既。
概覽
Android Studio 提供了一個(gè)名為 Lint 的代碼掃描工具,可幫助您發(fā)現(xiàn)并更正代碼結(jié)構(gòu)質(zhì)量的問題跨细,而無需您實(shí)際執(zhí)行應(yīng)用鹦倚,也不必編寫測(cè)試用例。系統(tǒng)會(huì)報(bào)告該工具檢測(cè)到的每個(gè)問題并提供問題的描述消息和嚴(yán)重級(jí)別冀惭,以便您可以快速確定需要優(yōu)先進(jìn)行的關(guān)鍵改進(jìn)震叙。此外,您還可以降低問題的嚴(yán)重級(jí)別以忽略與項(xiàng)目無關(guān)的問題散休,或者提高嚴(yán)重級(jí)別以突出特定問題媒楼。
Lint 工具可以檢查您的 Android 項(xiàng)目源文件是否有潛在的錯(cuò)誤,以及在正確性戚丸、安全性划址、性能、易用性、無障礙性和國(guó)際化方面是否需要優(yōu)化改進(jìn)夺颤。使用 Android Studio 時(shí)痢缎,無論何時(shí)編譯應(yīng)用,都會(huì)運(yùn)行配置的 Lint 和 IDE 檢查世澜。不過独旷,您可以手動(dòng)運(yùn)行檢查或從命令行運(yùn)行 Lint。
注意:在 Android Studio 中編譯代碼時(shí)寥裂,會(huì)運(yùn)行額外的 IntelliJ 代碼檢查以簡(jiǎn)化代碼審核势告。
圖 1 顯示了 Lint 工具如何處理應(yīng)用源文件。
應(yīng)用源文件
源文件包含組成 Android 項(xiàng)目的文件抚恒,包括 Java咱台、Kotlin 和 XML 文件、圖標(biāo)以及 ProGuard 配置文件俭驮。
lint.xml 文件
一個(gè)配置文件回溺,可用于指定要排除的任何 Lint 檢查以及自定義問題嚴(yán)重級(jí)別。
Lint 工具
一個(gè)靜態(tài)代碼掃描工具混萝,您可以從命令行或在 Android Studio 中對(duì) Android 項(xiàng)目運(yùn)行該工具(請(qǐng)參閱手動(dòng)運(yùn)行檢查)遗遵。Lint 工具檢查可能會(huì)影響 Android 應(yīng)用的質(zhì)量和性能的代碼結(jié)構(gòu)問題。強(qiáng)烈建議您先更正 Lint 檢測(cè)到的所有錯(cuò)誤逸嘀,然后再發(fā)布您的應(yīng)用车要。
Lint 檢查結(jié)果
您可以在控制臺(tái)或 Android Studio 的 Inspection Results 窗口中查看 Lint 檢查結(jié)果。請(qǐng)參閱[手動(dòng)運(yùn)行檢查]
從命令行運(yùn)行 Lint
如果您當(dāng)前使用 Android Studio 或 Gradle崭倘,您可以通過從項(xiàng)目的根目錄輸入以下某個(gè)命令翼岁,使用 Gradle 封裝容器對(duì)項(xiàng)目調(diào)用 lint
任務(wù):
在 Windows 上:
gradlew lint
在 Linux 或 Mac 上:
./gradlew lint
您應(yīng)看到類似于以下內(nèi)容的輸出:
> Task :app:lint
Ran lint on variant release: 5 issues found
Ran lint on variant debug: 5 issues found
Wrote HTML report to file:<path-to-project>/app/build/reports/lint-results.html
Wrote XML report to file:<path-to-project>/app/build/reports/lint-results.xml
Lint 工具完成其檢查后,會(huì)提供 XML 和 HTML 版 Lint 報(bào)告的路徑司光。然后琅坡,您可以轉(zhuǎn)到 HTML 報(bào)告并在瀏覽器中將其打開,如圖 2 所示残家。
如果您的項(xiàng)目包含一些編譯變體榆俺,而您希望僅對(duì)某個(gè)特定的編譯變體運(yùn)行 lint
任務(wù),則必須將該變體名稱的首字母大寫坞淮,并在其前面加上 lint
作為前綴茴晋。
gradlew lintDebug
要詳細(xì)了解如何從命令行運(yùn)行 Gradle 任務(wù),請(qǐng)閱讀從命令行編譯您的應(yīng)用回窘。
使用獨(dú)立工具運(yùn)行 Lint
如果您當(dāng)前未使用 Android Studio 或 Gradle诺擅,您可以在通過 SDK 管理器安裝 Android SDK Tools 后使用獨(dú)立 Lint 工具。安裝該組件后毫玖,您可以在 android_sdk/tools/
目錄中找到 Lint 工具掀虎。
要對(duì)項(xiàng)目目錄中的文件列表運(yùn)行 Lint凌盯,請(qǐng)使用以下命令:
lint [flags] <project directory>
例如,您可以發(fā)出以下命令來掃描 myproject
目錄及其子目錄下的文件烹玉。問題 ID MissingPrefix
提示 Lint 僅掃描缺少 Android 命名空間前綴的 XML 屬性驰怎。
lint --check MissingPrefix myproject
要查看該工具支持的標(biāo)志和命令行參數(shù)的完整列表,請(qǐng)使用以下命令:
lint --help
以下示例顯示了對(duì)一個(gè)名為 Earthquake 的項(xiàng)目運(yùn)行 Lint 命令時(shí)的控制臺(tái)輸出二打。
$ lint Earthquake
Scanning Earthquake: ...............................................................................................................................
Scanning Earthquake (Phase 2): .......
AndroidManifest.xml:23: Warning: <uses-sdk> tag appears after <application> tag [ManifestOrder]
<uses-sdk android:minSdkVersion="7" />
^
AndroidManifest.xml:23: Warning: <uses-sdk> 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]
<uses-sdk android:minSdkVersion="7" />
^
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
以上輸出未列出任何錯(cuò)誤县忌,但列出了四條警告:其中三條警告(ManifestOrder
、UsesMinSdkAttributes
和 UnusedResources
)出現(xiàn)在項(xiàng)目的 AndroidManifest.xml
文件中继效,一條警告 (IconMissingDensityFolder
) 出現(xiàn)在 Preferences.xml
布局文件中症杏。
將 Lint 配置為抑制警告
默認(rèn)情況下,當(dāng)您運(yùn)行 Lint 掃描時(shí)瑞信,Lint 工具會(huì)檢查它支持的所有問題厉颤。您也可以限制 Lint 要檢查的問題差购,并為這些問題分配嚴(yán)重級(jí)別槽棍。例如,您可以禁止對(duì)與項(xiàng)目無關(guān)的特定問題進(jìn)行 Lint 檢查化借,也可以將 Lint 配置為以較低的嚴(yán)重級(jí)別報(bào)告非關(guān)鍵問題秤涩。
您可以配置不同級(jí)別的 Lint 檢查:
- 全局(整個(gè)項(xiàng)目)
- 項(xiàng)目模塊
- 生產(chǎn)模塊
- 測(cè)試模塊
- 打開的文件
- 類層次結(jié)構(gòu)
- 版本控制系統(tǒng) (VCS) 范圍
在 Android Studio 中配置 Lint
在您使用 Android Studio 時(shí)帜乞,內(nèi)置的 Lint 工具會(huì)檢查您的代碼。您可以通過以下兩種方式查看警告和錯(cuò)誤:
- 作為代碼編輯器中的彈出文本查看筐眷。Lint 發(fā)現(xiàn)問題后黎烈,會(huì)用黃色突出顯示有問題的代碼,而對(duì)于更嚴(yán)重的問題匀谣,則會(huì)在代碼下面添加紅色下劃線照棋。
- 依次點(diǎn)擊 Analyze > Inspect Code 后,在 Lint Inspection Results 窗口中查看振定。請(qǐng)參閱手動(dòng)運(yùn)行檢查必怜。
配置 Lint 文件
您可以在 lint.xml
文件中指定 Lint 檢查偏好設(shè)置。如果您是手動(dòng)創(chuàng)建此文件后频,請(qǐng)將其放置在 Android 項(xiàng)目的根目錄下。
lint.xml
文件由封閉的 <lint>
父標(biāo)記組成暖途,此標(biāo)記包含一個(gè)或多個(gè) <issue>
子元素卑惜。Lint 會(huì)為每個(gè) <issue>
定義唯一的 id
屬性值。
<?xml version="1.0" encoding="UTF-8"?>
<lint>
<!-- list of issues to configure -->
</lint>
您可以通過在 <issue>
標(biāo)記中設(shè)置嚴(yán)重級(jí)別屬性來更改某個(gè)問題的嚴(yán)重級(jí)別或?qū)υ搯栴}停用 Lint 檢查驻售。
提示:如需查看 Lint 支持的問題及其對(duì)應(yīng)的問題 ID 的完整列表露久,請(qǐng)運(yùn)行 lint --list
命令。
lint.xml 文件示例
以下示例顯示了 lint.xml
文件的內(nèi)容欺栗。
<?xml version="1.0" encoding="UTF-8"?>
<lint> <!-- Disable the given check in this project -->
<issue id="IconMissingDensityFolder" severity="ignore" />
<!-- 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="HardcodedText" severity="error" />
</lint>
配置 Java毫痕、Kotlin 和 XML 源文件的 Lint 檢查
您可以禁止 Lint 檢查 Java征峦、Kotlin 和 XML 源文件。
提示:您可以在 Default Preferences 對(duì)話框中管理 Lint 檢查 Java消请、Kotlin 或 XML 源文件的功能栏笆。只需依次選擇 File > Other Settings > Default Settings,然后在 Default Preferences 對(duì)話框的左側(cè)窗格中依次選擇 Editor > Inspections臊泰。
配置 Java 或 Kotlin 的 Lint 檢查
要專門對(duì) Android 項(xiàng)目中的某個(gè)類或方法停用 Lint 檢查蛉加,請(qǐng)向該代碼添加 @SuppressLint
注解。
以下示例展示了如何對(duì) onCreate
方法中的 NewApi
問題關(guān)閉 Lint 檢查缸逃。Lint 工具會(huì)繼續(xù)檢查該類的其他方法中的 NewApi
問題针饥。
[JAVA](https://developer.android.google.cn/studio/write/lint#java)
@SuppressLint("NewApi")
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
以下示例展示了如何對(duì) FeedProvider
類中的 ParserError
問題關(guān)閉 Lint 檢查:
[JAVA](https://developer.android.google.cn/studio/write/lint#java)
@SuppressLint("ParserError")
public class FeedProvider extends ContentProvider {
要禁止 Lint 檢查文件中的所有問題,請(qǐng)使用 all
關(guān)鍵字需频,如下所示:
[JAVA](https://developer.android.google.cn/studio/write/lint#java)
@SuppressLint("all")
配置 XML 的 Lint 檢查
您可以使用 tools:ignore
屬性對(duì) XML 文件的特定部分停用 Lint 檢查丁眼。在 lint.xml
文件中添加以下命名空間值,以便 Lint 工具能夠識(shí)別該屬性:
namespace xmlns:tools="http://schemas.android.com/tools"
以下示例展示了如何對(duì) XML 布局文件的 <LinearLayout>
元素中的 UnusedResources
問題關(guān)閉 Lint 檢查昭殉。如果某個(gè)父元素聲明了 ignore
屬性户盯,則該元素的子元素會(huì)繼承此屬性。在本例中饲化,也會(huì)對(duì) <TextView>
子元素停用 Lint 檢查莽鸭。
//
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
tools:ignore="UnusedResources">
<TextView android:text="@string/auto_update_prompt" />
</LinearLayout>
要禁止檢查多個(gè)問題,請(qǐng)使用以逗號(hào)分隔的字符串列出要禁止檢查的問題吃靠。例如:
tools:ignore="NewApi,StringFormatInvalid"
要禁止 Lint 檢查 XML 元素中的所有問題硫眨,請(qǐng)使用 all
關(guān)鍵字,如下所示:
tools:ignore="all"
通過 Gradle 配置 Lint 選項(xiàng)
通過 Android Plugin for Gradle巢块,您可以使用模塊級(jí) build.gradle
文件中的 lintOptions {}
塊配置某些 Lint 選項(xiàng)礁阁,例如要運(yùn)行或忽略哪些檢查。以下代碼段展示了您可以配置的部分屬性:
android {
...
lintOptions {
// Turns off checks for the issue IDs you specify.
disable 'TypographyFractions','TypographyQuotes'
// Turns on checks for the issue IDs you specify. These checks are in
// addition to the default lint checks.
enable 'RtlHardcoded','RtlCompat', 'RtlEnabled'
// To enable checks for only a subset of issue IDs and ignore all others,
// list the issue IDs with the 'check' property instead. This property overrides
// any issue IDs you enable or disable using the properties above.
check 'NewApi', 'InlinedApi'
// If set to true, turns off analysis progress reporting by lint.
quiet true
// if set to true (default), stops the build if errors are found.
abortOnError false
// if true, only report errors.
ignoreWarnings true
}
}
...
創(chuàng)建警告基準(zhǔn)
您可以為項(xiàng)目的當(dāng)前警告集創(chuàng)建快照族奢,然后將該快照用作將來運(yùn)行檢查的基準(zhǔn)姥闭,以便只報(bào)告新問題。有了基準(zhǔn)快照越走,您便可開始使用 Lint 使編譯失敗棚品,而不必先返回并解決所有現(xiàn)有問題。
要?jiǎng)?chuàng)建基準(zhǔn)快照廊敌,請(qǐng)修改項(xiàng)目的 build.gradle
文件铜跑,如下所示。
android {
lintOptions {
baseline file("lint-baseline.xml")
}
}
首次添加此代碼行時(shí)骡澈,系統(tǒng)會(huì)創(chuàng)建 lint-baseline.xml
文件以建立基準(zhǔn)锅纺。此后,Lint 工具僅讀取該文件以確定基準(zhǔn)肋殴。如果要?jiǎng)?chuàng)建新基準(zhǔn)囤锉,請(qǐng)手動(dòng)刪除該文件并再次運(yùn)行 Lint 以重新創(chuàng)建它坦弟。
然后,從 IDE(依次選擇 Analyze > Inspect Code)或從命令行運(yùn)行 Lint官地,如下所示酿傍。系統(tǒng)會(huì)輸出 lint-baseline.xml
文件的位置。您的設(shè)置的文件位置可能與此處顯示的有所不同区丑。
$ ./gradlew lintDebug
...
Wrote XML report to file:///app/lint-baseline.xml
Created baseline file /app/lint-baseline.xml
運(yùn)行 lint
會(huì)將所有當(dāng)前問題記錄在 lint-baseline.xml
文件中拧粪。當(dāng)前問題集稱為“基準(zhǔn)”,如果要與其他人共享 lint-baseline.xml
文件沧侥,您可以將其簽入版本控制可霎。
自定義基準(zhǔn)
如果要將某些問題類型(而不是全部)添加到基準(zhǔn),您可以通過修改項(xiàng)目的 build.gradle
文件來指定要添加的問題宴杀,如下所示癣朗。
android {
lintOptions {
check 'NewApi', 'HandlerLeak'
baseline file("lint-baseline.xml")
}
}
創(chuàng)建基準(zhǔn)后,如果向代碼庫添加任何新警告旺罢,Lint 將僅列出新引入的錯(cuò)誤旷余。
基準(zhǔn)警告
實(shí)行基準(zhǔn)時(shí),您會(huì)收到一條信息性警告扁达,告知您一個(gè)或多個(gè)問題已被過濾掉正卧,因?yàn)樗鼈円言诨鶞?zhǔn)中列出。之所以發(fā)出這條警告跪解,是為了幫您記住您已配置基準(zhǔn)炉旷,因?yàn)槔硐肭闆r下,您希望在某一時(shí)刻解決所有問題叉讥。
這條信息性警告不僅會(huì)告知您過濾掉的錯(cuò)誤和警告的確切數(shù)量窘行,而且還會(huì)跟蹤不再報(bào)告的問題。此信息可讓您知道是否確實(shí)解決了問題图仓,以便您可以選擇性地重新創(chuàng)建基準(zhǔn)罐盔,以防止錯(cuò)誤再次出現(xiàn)時(shí)檢測(cè)不到。
注意:在 IDE 中以批處理模式運(yùn)行檢查時(shí)救崔,會(huì)啟用基準(zhǔn)惶看;但對(duì)于修改文件時(shí)在后臺(tái)運(yùn)行的編輯器中的檢查,會(huì)忽略基準(zhǔn)帚豪。原因是基準(zhǔn)適用于這樣一種情況:代碼庫具有大量的現(xiàn)有警告碳竟,但您確實(shí)希望在處理代碼時(shí)在本地解決相關(guān)問題。
手動(dòng)運(yùn)行檢查
您可以通過依次選擇 Analyze > Inspect Code狸臣,手動(dòng)運(yùn)行配置的 Lint 及其他 IDE 檢查。檢查結(jié)果將顯示在 Inspection Results 窗口中昌执。
設(shè)置檢查范圍和配置文件
選擇要分析的文件(檢查范圍)和要運(yùn)行的檢查(檢查配置文件)烛亦,具體操作步驟如下:
在 Android 視圖中诈泼,打開您的項(xiàng)目,然后選擇要分析的項(xiàng)目煤禽、文件夾或文件铐达。
從菜單欄中,依次選擇 Analyze > Inspect Code檬果。
-
在 Specify Inspection Scope 對(duì)話框中瓮孙,查看設(shè)置。
指定檢查范圍
圖 3. 查看檢查范圍設(shè)置
Specify Inspection Scope 對(duì)話框中顯示的選項(xiàng)組合因您選擇的是項(xiàng)目选脊、文件夾還是文件而異杭抠。您可以通過選中其他某個(gè)單選按鈕來更改要檢查的內(nèi)容。您可以在 Specify Inspection Scope 對(duì)話框中查看 Specify Inspection Scope對(duì)話框中可能顯示的所有字段的說明恳啥。- 如果您選擇一個(gè)項(xiàng)目偏灿、文件或目錄,Specify Inspection Scope 對(duì)話框中會(huì)顯示選定項(xiàng)目钝的、文件或目錄的路徑翁垂。
- 如果您選擇多個(gè)項(xiàng)目、文件或目錄硝桩,在 Specify Inspection Scope 對(duì)話框中沿猜,選定的文件旁邊會(huì)顯示一個(gè)選中的單選按鈕。
在 Inspection profile 下碗脊,保留默認(rèn)配置文件 (Project Default)啼肩。
-
點(diǎn)擊 OK 以運(yùn)行檢查。圖 4 顯示了通過運(yùn)行檢查代碼所生成的 Lint 及其他 IDE 檢查結(jié)果:
**圖 4.** 選擇問題以查看其解決方法 在左側(cè)窗格樹狀視圖中望薄,通過展開并選擇錯(cuò)誤類別疟游、類型和問題來查看檢查結(jié)果。
右側(cè)窗格顯示選定錯(cuò)誤類別痕支、類型或問題的檢查報(bào)告颁虐,并提供錯(cuò)誤的名稱和位置。在適用情況下卧须,檢查報(bào)告會(huì)顯示問題概要等其他信息另绩,以幫助您更正問題。在左側(cè)窗格樹狀視圖中花嘶,右鍵點(diǎn)擊某個(gè)類別笋籽、類型或問題,以顯示上下文菜單椭员。
根據(jù)上下文车海,您可以執(zhí)行以下全部或部分操作:跳到源代碼、排除和包含選定項(xiàng)隘击、抑制問題侍芝、修改設(shè)置研铆、管理檢查警報(bào)和重新運(yùn)行檢查。
如需左側(cè)工具欄按鈕州叠、上下文菜單項(xiàng)和檢查報(bào)告字段的說明棵红,請(qǐng)參閱檢查工具窗口。
使用自定義范圍
您可以使用 Android Studio 中提供的某個(gè)自定義范圍咧栗,具體操作步驟如下:
在 Specify Inspection Scope 對(duì)話框中逆甜,點(diǎn)擊 Custom scope。
-
點(diǎn)擊 Custom scope 下拉列表以顯示選項(xiàng)致板。
選擇檢查范圍
圖 5. 選擇要使用的自定義范圍- Project Files:當(dāng)前項(xiàng)目中的所有文件交煞。
- Project Production Files:僅限當(dāng)前項(xiàng)目中的生產(chǎn)文件。
- Project Test Files:僅限當(dāng)前項(xiàng)目中的測(cè)試文件可岂。請(qǐng)參閱測(cè)試類型和位置错敢。
- Open Files:僅限當(dāng)前項(xiàng)目中已打開的文件。
- Module <your-module>:僅限當(dāng)前項(xiàng)目中對(duì)應(yīng)模塊文件夾中的文件缕粹。
- Current File:僅限當(dāng)前項(xiàng)目中的當(dāng)前文件稚茅。當(dāng)您選擇了文件或文件夾時(shí),會(huì)顯示此選項(xiàng)平斩。
- Class Hierarchy:如果您選擇此選項(xiàng)并點(diǎn)擊 OK亚享,會(huì)出現(xiàn)一個(gè)對(duì)話框,其中顯示當(dāng)前項(xiàng)目中的所有類绘面。您可以使用此對(duì)話框中的 Search by Name 字段過濾并選擇要檢查的類欺税。如果未過濾類列表,代碼檢查將檢查所有類揭璃。
點(diǎn)擊 OK晚凿。
創(chuàng)建自定義范圍
如果您要檢查的部分文件和目錄不在當(dāng)前可用的任何自定義范圍內(nèi),您可以創(chuàng)建自定義范圍瘦馍。
在 Specify Inspection Scope 對(duì)話框中歼秽,選擇 Custom scope。
-
點(diǎn)擊 Custom Scope 下拉列表后面的三個(gè)點(diǎn)情组。
**圖 6.** “Specify Inspection Scope”對(duì)話框
此時(shí)將顯示 Scopes 對(duì)話框燥筷。
**圖 7.** 創(chuàng)建自定義范圍 點(diǎn)擊 Add 圖標(biāo) (加號(hào))以定義新范圍。
-
在隨即出現(xiàn)的 Add Scope 下拉列表中院崇,選擇 Local肆氓。
局部范圍和共享范圍都在項(xiàng)目?jī)?nèi)用于檢查代碼功能。共享范圍還可用于具有范圍字段的其他項(xiàng)目功能底瓣。例如谢揪,當(dāng)您點(diǎn)擊 Edit Settings 圖標(biāo) !(扳手)以更改 Find Usages 的設(shè)置時(shí),隨即出現(xiàn)的對(duì)話框中包含一個(gè) Scope 字段,您可以在其中選擇共享范圍键耕。
**圖 8.** 從 **Find Usages** 對(duì)話框中選擇共享范圍 為范圍命名寺滚,然后點(diǎn)擊 OK柑营。
Scopes 對(duì)話框的右側(cè)窗格填充有可用于定義自定義范圍的選項(xiàng)屈雄。從下拉列表中,選擇 Project官套。
此時(shí)將顯示可用項(xiàng)目的列表酒奶。
注意:您可以為項(xiàng)目或軟件包創(chuàng)建自定義范圍。它們的步驟相同奶赔。-
展開項(xiàng)目文件夾惋嚎,選擇要添加到自定義范圍的內(nèi)容,然后點(diǎn)擊右側(cè)的某個(gè)按鈕站刑。
**圖 9.** 定義自定義范圍- Include:包含此文件夾及其文件另伍,但不包含其任何子文件夾。
- Include Recursively:包含此文件夾及其所有文件绞旅,以及子文件夾及其文件摆尝。
- Exclude:排除此文件夾及其文件,但不排除其任何子文件夾因悲。
- Exclude Recursively:排除此文件夾及其所有文件堕汞,以及子文件夾及其文件。
圖 10 顯示包含 main 文件夾晃琳,并且遞歸包含 java 文件夾讯检。藍(lán)色表示部分包含的文件夾,而綠色表示遞歸包含的文件夾和文件卫旱。
**圖 10.** 自定義范圍模式示例- 如果您選擇 java 文件夾并點(diǎn)擊 Exclude Recursively人灼,java 文件夾以及該文件夾下的所有文件夾和文件將不再用綠色突出顯示。
- 相反顾翼,如果您選擇用綠色突出顯示的 MainActivity.java 文件并點(diǎn)擊“Exclude”投放,MainActivity.java 將不再用綠色突出顯示,而 java 文件夾下的其他所有項(xiàng)目則會(huì)用綠色突出顯示暴构。
點(diǎn)擊 OK跪呈。該自定義范圍將顯示在下拉列表的底部。
查看和修改檢查配置文件
Android Studio 附帶了許多 Lint 及其他檢查配置文件取逾,這些配置文件可通過 Android 更新進(jìn)行更新耗绿。您可以原封不動(dòng)地使用這些配置文件,也可以修改它們的名稱砾隅、說明误阻、嚴(yán)重級(jí)別和范圍。您還可以激活和禁用整組的配置文件或一組配置文件中的個(gè)別配置文件。
要訪問 Inspections 對(duì)話框究反,請(qǐng)執(zhí)行以下操作:
- 依次選擇 Analyze > Inspect Code寻定。
- 在 Specify Scope 對(duì)話框的 Inspection Profile 下,點(diǎn)擊 More精耐。
此時(shí)將顯示 Inspections 對(duì)話框狼速,其中列出了支持的檢查及其說明。
**圖 11.** 支持的檢查及其說明 - 選擇 Profile 下拉列表卦停,以在 Default (Android Studio) 與 Project Default(活動(dòng)項(xiàng)目)檢查之間切換向胡。如需了解詳情,請(qǐng)參閱以下 IntelliJ 頁面:“Specify Inspection Scope”對(duì)話框惊完。
- 在左側(cè)窗格的 Inspections 對(duì)話框中僵芹,選擇一個(gè)頂級(jí)配置文件類別,或展開一個(gè)組并選擇特定的配置文件小槐。選擇一個(gè)配置文件類別后拇派,您可以將該類別中的所有檢查項(xiàng)目當(dāng)作一個(gè)檢查項(xiàng)目進(jìn)行修改。
- 選擇 Manage 下拉列表凿跳,以復(fù)制檢查項(xiàng)目件豌、對(duì)檢查項(xiàng)目進(jìn)行重命名、向檢查項(xiàng)目添加說明拄显,以及導(dǎo)出和導(dǎo)入檢查項(xiàng)目苟径。
- 操作完成后,點(diǎn)擊 OK躬审。