앱이 기능적 요구사항을 충족하는지 확인하기 위해 테스트를 빌드하는 것 외에도 린트 도구를 통해 코드를 실행하여 코드에 구조적 문제가 없는지 확인하는 것도 중요합니다. 린트 도구를 사용하면 구조적 문제로 인해 Android 앱의 안정성과 효율성에 영향을 미치거나 코드 관리에 지장을 줄 가능성이 있는 코드를 찾을 수 있습니다. 앱을 게시하기 전에 린트가 탐지한 오류를 수정하는 것이 좋습니다.
예를 들어 XML 리소스 파일에 사용되지 않는 네임스페이스가 있다면 공간을 차지하고 불필요한 처리가 발생합니다. 지원 중단된 요소 또는 타겟 API 버전에서 지원하지 않는 API 호출의 사용과 같은 다른 구조적 문제가 발생하는 경우 코드가 올바르게 실행되지 않을 수 있습니다. 린트를 사용하면 이런 문제를 해결할 수 있습니다.
린트 성능을 개선하려면 코드에 주석을 추가할 수도 있습니다.
개요
Android 스튜디오에서 제공하는 린트라는 코드 스캔 도구를 사용하면 앱을 실행하거나 테스트 사례를 작성할 필요 없이 코드의 구조적 품질 문제를 식별하고 수정할 수 있습니다. 도구에서 감지된 각 문제는 설명 메시지 및 심각도 수준과 함께 보고되므로 개선이 시급한 순서대로 신속히 우선순위를 정할 수 있습니다. 문제의 심각도 수준을 낮춰서 프로젝트와 관련이 없는 문제를 무시하거나 심각도 수준을 높여서 특정 문제를 강조표시할 수도 있습니다.
린트 도구는 Android 프로젝트 소스 파일을 검사하여 잠재적 버그를 찾아내고 정확성, 보안, 성능, 사용성, 접근성, 국제화 등을 최적화합니다. Android 스튜디오를 사용하면 앱을 빌드할 때 구성된 린트 및 IDE 검사가 실행됩니다. 그러나 이 페이지에 설명된 대로 검사를 수동으로 실행하거나 명령줄에서 린트를 실행할 수도 있습니다.
Android 스튜디오를 사용하는 동안 내장된 린트 도구가 코드를 검사합니다. 경고와 오류를 확인할 수 있는 2가지 방법이 있습니다.
- 편집기 창의 팝업 텍스트로 린트가 문제를 발견하면 문제가 있는 코드는 노란색으로 강조표시됩니다. 더 심각한 문제의 경우 코드에 빨간색 밑줄이 표시됩니다.
- 린트 Inspection Results 창에서 Code > Inspect Code를 클릭합니다.
참고: Android 스튜디오에서 코드를 컴파일할 때는 추가 IntelliJ 코드 검사가 실행되어 코드 검토가 간소화됩니다. 최신 린트 규칙과 검사를 사용할 수 있도록 Android 스튜디오를 최대한 최신 상태로 유지합니다.
그림 1은 린트 도구가 앱 소스 파일을 처리하는 방법을 보여줍니다.
- 앱 소스 파일
- 소스 파일은 Kotlin, Java, XML 파일, 아이콘, ProGuard 구성 파일을 포함하여 Android 프로젝트를 구성하는 파일로 이루어집니다.
lint.xml
파일- 제외하려는 린트 검사를 지정하고 문제 심각도 수준을 맞춤설정하는 데 사용할 수 있는 구성 파일입니다.
- 린트 도구
- 명령줄 또는 Android 스튜디오를 사용하여 Android 프로젝트에서 실행할 수 있는 정적 코드 스캔 도구입니다. 린트 도구는 Android 앱의 품질과 성능에 영향을 미칠 수 있는 구조적 코드 문제를 검사합니다.
- 린트 검사 결과
- 콘솔이나 Android 스튜디오의 Inspection Results 창에서 린트의 결과를 확인할 수 있습니다. 명령줄에서
lint
를 실행하면 결과가build/
폴더에 쓰여집니다. 자세한 내용은 수동으로 검사 실행 섹션을 참고하세요.
명령줄에서 린트 실행
Android 스튜디오나 Gradle을 사용하는 경우 프로젝트의 루트 디렉터리에서 다음 명령어 중 하나를 입력하여 Gradle 래퍼를 통해 프로젝트의 lint
작업을 호출합니다.
참고: 최신 린트 규칙을 사용하려면 Android Gradle 플러그인을 최대한 최신 상태로 유지하세요.
- Windows:
gradlew lint
- Linux 또는 macOS:
./gradlew lint
다음과 비슷한 출력이 표시됩니다.
> Task :app:lintDebug Wrote HTML report to file:<path-to-project>/app/build/reports/lint-results-debug.html
린트 도구에서 검사가 완료되면 XML 버전 및 HTML 버전의 린트 보고서 경로가 제공됩니다. 그러면 HTML 보고서로 이동하여 브라우저에서 보고서를 열 수 있습니다(그림 2 참조).
프로젝트에 빌드 변형이 포함된 경우 린트는 기본 변형만 검사합니다. 다른 변형에서 린트를 실행하려면 변형 이름을 대문자로 쓰고 lint
를 접두사로 붙여야 합니다.
./gradlew lintRelease
참고: 린트는 빌드의 일부로 자동 실행되지 않습니다. 기존 소스 코드를 빌드할 때 최신 린트 검사가 표시되도록 지속적 통합 빌드의 일부로 린트를 명시적으로 실행하는 것이 좋습니다.
명령줄에서 Gradle 작업을 실행하는 방법에 관한 자세한 내용은 명령줄에서 앱 빌드를 참고하세요.
독립형 도구를 사용하여 린트 실행
Android 스튜디오나 Gradle을 사용하지 않는 경우 Android SDK 명령줄 도구를 설치하여 독립형 린트 도구를 사용합니다. android_sdk/cmdline-tools/version/bin/lint
에서 린트 도구를 찾습니다.
참고: Gradle 프로젝트에서 독립형 도구를 실행하려고 하면 오류가 발생합니다. 항상 gradle lint
(Windows의 경우) 또는 ./gradlew
lint
(macOS 또는 Linux의 경우)를 사용하여 Gradle 프로젝트에서 린트를 실행해야 합니다.
프로젝트 디렉터리에서 파일 목록에 린트를 실행하려면 다음 명령어를 사용합니다.
lint [flags] <project directory>
예를 들어 다음 명령어를 실행하여 myproject
디렉터리 및 그 하위 디렉터리에 있는 파일을 스캔할 수 있습니다. 문제 ID MissingPrefix
는 Android 네임스페이스 접두사가 없는 XML 속성만 스캔하도록 린트에 지시합니다.
lint --check MissingPrefix myproject
도구에서 지원하는 플래그 및 명령줄 인수의 전체 목록을 보려면 다음 명령어를 사용하세요.
lint --help
다음 예는 Earthquake라는 프로젝트에 린트 명령어가 실행될 때의 콘솔 출력을 보여줍니다.
$ 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
출력 예시에는 경고 4개가 표시되고 오류는 없습니다.
프로젝트의 AndroidManifest.xml
파일과 관련된 두 가지 경고가 있습니다.
ManifestOrder
UsesMinSdkAttributes
Preferences.xml
레이아웃 파일(UnusedResources
)과 관련된 경고가 하나 있습니다.
res
디렉터리와 관련된 경고 하나(IconMissingDensityFolder
)가 있습니다.
경고를 표시하지 않도록 린트 구성
기본적으로 린트 스캔을 실행하면 도구는 린트에서 지원하는 모든 문제를 검사합니다. 린트가 검사할 문제를 제한하고 문제에 심각도 수준을 할당할 수도 있습니다. 예를 들어 프로젝트와 관련이 없는 특정 문제는 린트에서 검사가 이루어지지 않도록 구성하거나 중요하지 않은 문제를 낮은 심각도 수준으로 보고하도록 린트를 구성할 수도 있습니다.
심각도 수준은 다음과 같습니다.
enable
disable
또는ignore
informational
warning
error
fatal
다양한 수준으로 Lint 검사를 구성할 수 있습니다.
- 전역(전체 프로젝트)
- 프로젝트 모듈
- 프로덕션 모듈
- 테스트 모듈
- 열린 파일
- 클래스 계층 구조
- 버전 제어 시스템(VCS) 범위
린트 파일 구성
lint.xml
파일에서 린트 검사 환경설정을 지정할 수 있습니다. 이 파일을 수동으로 만드는 경우 Android 프로젝트의 루트 디렉터리에 파일을 넣습니다.
lint.xml
파일은 하위 <issue>
요소가 하나 이상 포함된 인클로징 <lint>
상위 태그로 구성됩니다. 린트에서는 각 <issue>
에 고유한 id
속성 값을 정의합니다.
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- list of issues to configure --> </lint>
문제의 심각도 수준을 변경하거나 문제의 린트 검사를 사용 중지하려면 <issue>
태그에서 심각도 속성을 설정하세요.
도움말: 린트에서 지원하는 문제 및 상응하는 문제 ID의 전체 목록을 확인하려면 lint --list
명령어를 실행하세요.
lint.xml 파일 샘플
다음 예는 lint.xml
파일의 콘텐츠를 보여줍니다.
<?xml version="1.0" encoding="UTF-8"?> <lint> <!-- Disable the IconMissingDensityFolder 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>
이 예에서는 다양한 문제 유형이 신고되는 방식을 보여줍니다. IconMissingDensityFolder
검사는 완전히 사용 중지되고 ObsoleteLayoutParam
검사는 폐쇄된 <ignore ... />
선언에 지정된 파일에서만 사용 중지됩니다.
린트에서 Kotlin, Java, XML 소스 파일 검사 구성
Preferences 대화상자에서 Kotlin, Java, XML 소스 파일의 린트 검사를 사용 중지할 수 있습니다.
- File > Settings (Windows) 또는 Android 스튜디오 > Preferences(macOS 또는 Linux)를 선택합니다.
- Editor > Inspections를 선택합니다.
- 사용 중지하려면 적절한 소스 파일을 선택 해제합니다.
적절한 프로필을 선택하여 IDE 또는 개별 프로젝트에 이를 설정할 수 있습니다.
Java 또는 Kotlin에서 린트 검사 구성
Android 프로젝트에서 특정 클래스 또는 메서드의 린트 검사를 사용 중지하려면 코드에 @SuppressLint
주석을 추가합니다.
다음 예는 onCreate
메서드에서 NewApi
문제의 린트 검사를 사용 중지할 수 있는 방법을 보여줍니다. 린트 도구는 이 클래스의 다른 메서드에서 NewApi
문제를 계속 검사합니다.
Kotlin
@SuppressLint("NewApi") override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.main)
자바
@SuppressLint("NewApi") @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main);
다른 컴포저블에서도 동일하게 실행할 수 있습니다. 다음 코드 스니펫은 컴포저블에서 NewApi
검사를 사용 중지하는 방법을 보여줍니다.
Kotlin
@SuppressLint("NewApi") @Composable fun MyComposable{ ... }
다음 예는 FeedProvider
클래스에서 ParserError
문제의 린트 검사를 사용 중지하는 방법을 보여줍니다.
Kotlin
@SuppressLint("ParserError") class FeedProvider : ContentProvider() {
자바
@SuppressLint("ParserError") public class FeedProvider extends ContentProvider {
파일에서 모든 린트 문제 검사를 금지하려면 all
키워드를 사용하세요.
Kotlin
@SuppressLint("all")
자바
@SuppressLint("all")
동일한 주석을 사용하여 구성 가능한 함수에서 린트 검사를 억제할 수 있습니다.
XML에서 린트 검사 구성
XML 파일의 특정 섹션을 대상으로 린트 검사를 사용 중지하려면 tools:ignore
속성을 사용합니다. 다음 네임스페이스 값을 lint.xml
파일에 입력하여 린트 도구에서 속성을 인식하도록 합니다.
namespace xmlns:tools="http://schemas.android.com/tools"
다음 예에서는 XML 레이아웃 파일의 <LinearLayout>
요소에서 UnusedResources
문제의 린트 검사를 사용 중지하는 방법을 보여줍니다. ignore
속성은 속성이 선언된 상위 요소의 하위 요소에서 상속됩니다. 이 예에서 린트 검사는 하위 <TextView>
요소에도 사용 중지됩니다.
<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>
두 개 이상의 문제를 사용 중지하려면 쉼표로 구분된 문자열로 사용 중지할 문제를 나열합니다. 예를 들면 다음과 같습니다.
tools:ignore="NewApi,StringFormatInvalid"
XML 요소에서 모든 린트 문제의 검사를 금지하려면 all
키워드를 사용하세요.
tools:ignore="all"
Gradle에서 린트 옵션 구성
Android Gradle 플러그인을 사용하면 모듈 수준 build.gradle
파일의
lint{}
블록을 사용하여 실행 또는 무시할 검사 등 특정 린트 옵션을 구성할 수 있습니다.
다음 코드 스니펫은 구성할 수 있는 속성 몇 가지를 보여줍니다.
Kotlin
android { ... lint { // 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. checkOnly += "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 set to true, lint only reports errors. ignoreWarnings = true // If set to true, lint also checks all dependencies as part of its analysis. // Recommended for projects consisting of an app with library dependencies. checkDependencies = true } } ...
Groovy
android { ... lint { // 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. checkOnly '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 set to true, lint only reports errors. ignoreWarnings true // If set to true, lint also checks all dependencies as part of its analysis. // Recommended for projects consisting of an app with library dependencies. checkDependencies true } } ...
문제의 주어진 심각도 수준을 재정의하는 모든 린트 메서드는 구성 순서를 따릅니다. 예를 들어 finalizeDsl()
에서 문제를 심각한 것으로 설정하면 기본 DSL에서 사용 중지되었던 것이 재정의됩니다.
경고 기준 만들기
프로젝트의 현재 경고 세트의 스냅샷을 만든 후 이 스냅샷을 이후 검사 실행의 기준으로 사용하여 새로운 문제만 보고되도록 만들 수 있습니다. 기준 스냅샷을 사용하면 먼저 모든 기존 문제로 돌아가 문제를 해결하지 않고도 린트를 사용해 빌드를 통과시키지 않게 만들 수 있습니다.
기준 스냅샷을 만들려면 다음과 같이 프로젝트의 build.gradle
파일을 수정합니다.
Kotlin
android { lint { baseline = file("lint-baseline.xml") } }
Groovy
android { lintOptions { baseline file("lint-baseline.xml") } }
이 줄을 처음 추가하면 기준을 설정하는 lint-baseline.xml
파일이 만들어집니다. 그런 다음에는 도구가 파일만 읽어 기준을 확인합니다. 새 기준을 만들려면 수동으로 파일을 삭제한 후 린트를 다시 실행하여 파일을 다시 만듭니다.
그런 다음, 다음과 같이 IDE에서 Code > Inspect Code를 선택하거나 명령줄에서 린트를 실행합니다. 출력에는 lint-baseline.xml
파일 위치가 표시됩니다. 설정에서 파일 위치는 여기에 표시된 것과 다를 수 있습니다.
$ ./gradlew lintDebug -Dlint.baselines.continue=true ... Wrote XML report to file:///app/lint-baseline.xml Created baseline file /app/lint-baseline.xml
lint
를 실행하면 lint-baseline.xml
파일의 현재 문제가 모두 기록됩니다. 이러한 현재 문제 세트를 기준이라고 합니다. lint-baseline.xml
파일을 다른 사람과 공유하려면 파일을 버전 제어로 확인할 수 있습니다.
기준 맞춤설정
기준에 특정 문제 유형만 추가하려면 다음과 같이 프로젝트의 build.gradle
파일을 수정하여 추가할 문제를 지정합니다.
Kotlin
android { lint { checkOnly += "NewApi" + "HandlerLeak" baseline = file("lint-baseline.xml") } }
Groovy
android { lintOptions { checkOnly 'NewApi', 'HandlerLeak' baseline file("lint-baseline.xml") } }
기준을 만든 후에 새로운 경고를 코드베이스에 추가하면 새로 발생한 버그만 린트에 나열됩니다.
기준 경고
기준이 적용되면 하나 이상의 문제가 기준에 나열되어 있어 필터링되었음을 알리는 정보성 경고를 받게 됩니다. 이 경고는 기준을 구성했음을 기억하고 특정 시점에 모든 문제를 해결해야 함을 알려줍니다.
또한 이 정보성 경고는 더 이상 보고되지 않는 문제도 추적합니다. 이 정보를 통해 실제로 문제를 해결했는지 여부를 알 수 있어 선택적으로 같은 오류가 탐지되지 않으면서 재발하는 것을 방지하기 위해 기준을 다시 만들 수도 있습니다.
참고: 기준은 IDE에서 일괄 모드로 검사를 실행하면 사용 설정되지만 파일을 수정할 때 백그라운드에서 실행되는 편집기 내 검사에서는 무시됩니다. 이는 기준이 코드베이스에 기존 경고가 많은 경우를 위한 것이며 코드를 터치하는 동안 로컬에서 문제를 해결하려고 하기 때문입니다.
수동으로 검사 실행
구성된 린트 검사 및 다른 IDE 검사를 수동으로 실행하려면 Code > Inspect Code를 선택합니다. 검사 결과는 Inspection Results 창에 표시됩니다.
검사 범위 및 프로필 설정
분석할 파일 (검사 범위)과 실행할 검사 (검사 프로필)를 다음과 같이 선택합니다.
- Android 뷰에서 프로젝트를 열고 분석할 프로젝트, 폴더 또는 파일을 선택합니다.
- 메뉴 바에서 Code > Inspect Code를 선택합니다.
Specify Inspection Scope 대화상자에서 설정을 검토합니다.
Specify Inspection Scope 대화상자에 표시되는 옵션은 프로젝트, 폴더 또는 파일을 선택했는지에 따라 다릅니다.
- 프로젝트, 파일, 디렉터리를 하나 선택하면 Specify Inspection Scope 대화상자에 선택한 프로젝트, 파일, 디렉터리의 경로가 표시됩니다.
- 프로젝트, 파일, 디렉터리를 2개 이상 선택하면 Assign Inspection Scope 대화상자에 Selected files라는 라디오 버튼이 표시됩니다.
검사 대상을 변경하려면 다른 라디오 버튼 중 하나를 선택합니다. Assign Inspection Scope 대화상자의 가능한 모든 필드에 관한 설명은 Design Inspection Scope 대화상자를 참고하세요.
- 검사 프로필에서 사용할 프로필을 선택합니다.
OK를 클릭하여 검사를 실행합니다.
그림 4는 Inspect Code 실행 시의 린트 및 다른 IDE 검사 결과를 보여줍니다.
-
Inspection Results 창에서 오류 카테고리, 유형 또는 문제를 펼쳐서 선택하면 검사 결과를 확인할 수 있습니다.
검사 보고서 창에는 검사 결과 창에서 선택한 오류 카테고리, 유형 또는 문제의 검사 보고서가 표시되며 오류의 이름과 위치가 표시됩니다. 경우에 따라 검사 보고서는 문제 개요와 같이 문제를 수정하는 데 도움이 되는 다른 정보를 표시합니다.
Inspection Results 창 트리 보기에서 카테고리, 유형 또는 문제를 마우스 오른쪽 버튼으로 클릭하여 컨텍스트 메뉴를 표시합니다.
컨텍스트에 따라 다음 작업을 할 수 있습니다.
- 소스로 이동합니다.
- 선택한 항목을 제외하고 포함합니다.
- 문제 억제.
- 설정을 변경합니다.
- 검사 알림을 관리합니다.
- 검사를 다시 실행합니다.
툴바 버튼, 컨텍스트 메뉴 항목, 검사 보고서 필드에 관한 설명은 Inspection Results 도구 창을 참고하세요.
맞춤 범위 사용
다음과 같이 Android 스튜디오에서 제공되는 맞춤 범위 중 하나를 사용합니다.
- Specify Inspection Scope 대화상자에서 Custom scope를 선택합니다.
Custom scope 목록을 클릭하여 옵션을 표시합니다.
- 모든 위치: 모든 파일
- Project Files: 현재 프로젝트의 모든 파일입니다.
- Project Source Files: 현재 프로젝트의 소스 파일만 해당합니다.
- Project Production Files: 현재 프로젝트의 프로덕션 파일만 해당합니다.
- Project Test Files: 현재 프로젝트의 테스트 파일만 해당합니다.
- Scratches and Consoles: 현재 프로젝트에서 열어 둔 스크래치 파일과 콘솔만 해당합니다.
- 최근에 본 파일: 현재 프로젝트에서 최근에 본 파일만
- Current File: 현재 프로젝트에 있는 현재 파일만 해당합니다. 파일 또는 폴더를 선택했을 때 나타납니다.
- Selected Directory: 현재 프로젝트의 현재 폴더만 해당합니다. 폴더를 선택했을 때 나타납니다.
- Class Hierarchy: 이 옵션을 선택하고 OK를 클릭하면 현재 프로젝트의 모든 클래스와 함께 대화상자가 표시됩니다. 대화상자의 Search by Name 필드를 사용하여 검사할 클래스를 필터링하고 선택합니다. 클래스 목록을 필터링하지 않으면 코드 검사에서 모든 클래스를 검사합니다.
- OK를 클릭합니다.
프로젝트에 VCS가 구성된 경우 수정된 파일로만 검색을 제한하는 옵션도 있습니다.
맞춤 범위 만들기
사용 가능한 맞춤 범위에 포함되지 않는 파일과 디렉터리를 검사하려면 맞춤 범위를 만들 수 있습니다.
- Specify Inspection Scope 대화상자에서 Custom scope를 선택합니다.
Custom Scope 목록 뒤에 있는 점 세 개를 클릭합니다.
Scopes 대화상자가 나타납니다.
- 대화상자의 왼쪽 상단에 있는 버튼을 클릭하여 새 범위를 정의합니다.
- 표시되는 Add Scope 목록에서 Local을 선택합니다.
로컬 범위와 공유 범위는 모두 프로젝트 내에서 Inspect Code 기능에 사용됩니다. Shared 범위는 범위 필드가 있는 다른 프로젝트 기능에서도 사용할 수 있습니다. 예를 들어 Edit Settings 를 클릭하여 Find Usages의 설정을 변경하면 이후 표시되는 대화상자의 Scope 필드에서 공유 범위를 선택할 수 있습니다.
- 범위에 이름을 지정하고 OK를 클릭합니다.
Scopes 대화상자의 오른쪽 창에 맞춤 범위를 정의할 수 있는 옵션이 나타납니다.
- 목록에서 Project를 선택합니다.
이용 가능한 프로젝트 목록이 나타납니다.
참고: 프로젝트 또는 패키지의 맞춤 범위를 만들 수 있습니다. 단계는 동일합니다.
프로젝트 폴더를 펼치고 맞춤 범위에 추가할 항목을 선택한 다음, 포함 또는 제외 여부를 선택합니다.
- Include: 이 폴더와 그 안의 파일을 포함하지만 하위 폴더는 포함하지 않습니다.
- Include Recursively: 이 폴더와 그 안의 파일, 그리고 하위 폴더와 그 안의 파일까지 포함합니다.
- Exclude: 이 폴더와 그 안의 파일을 제외하지만 하위 폴더는 제외하지 않습니다.
- Exclude Recursively: 이 폴더와 그 안의 파일, 그리고 하위 폴더와 그 안의 파일까지 제외합니다.
그림 10은 main 폴더가 포함되어 있고 java 및 res 폴더는 재귀적으로 포함된 상태를 보여줍니다. 파란색은 부분적으로 포함된 폴더를 나타내고 녹색은 재귀적으로 포함된 폴더와 파일을 나타냅니다.
- java 폴더를 선택하고 Exclude Recursively를 클릭하면 java 폴더와 그 안의 모든 폴더 및 파일을 강조표시하는 녹색이 사라집니다.
- 녹색으로 강조표시된 MainActivity.kt 파일을 선택하고 Exclude를 클릭하면 MainActivity.kt에서 녹색 강조표시가 사라지지만 java 폴더에 있는 그 외 모든 파일은 녹색으로 유지됩니다.
- OK(확인)을 클릭합니다. 맞춤 범위가 목록 하단에 표시됩니다.
검사 프로필 검토 및 수정
Android 스튜디오에는 Android 업데이트를 통해 업데이트된 린트 및 기타 검사 파일들이 있습니다. 이 프로필을 그대로 사용하거나 이름, 설명, 심각도, 범위를 수정할 수 있습니다. 또한 프로필 그룹 전체 또는 그룹 내 개별 프로필을 활성화/비활성화할 수도 있습니다.
Inspections 설정에 액세스하려면 다음 단계를 따르세요.
- File(파일) > Settings(설정)를 선택합니다. (Windows의 경우) 또는 Android 스튜디오 > Preferences(macOS 또는 Linux의 경우)를 선택합니다.
- 편집기 > 검사를 선택합니다.
-
Inspections 창에 지원되는 검사 및 설명 목록이 표시됩니다.
Profile 목록을 선택하여 Default 검사 (Android 스튜디오)와 Project Default 검사 (활성 프로젝트) 간에 전환합니다.
자세한 내용은 IntelliJ 프로필 관리 페이지를 참고하세요.
왼쪽 창의 Inspections 목록에서 최상위 프로필 카테고리를 선택하거나 그룹을 펼쳐서 특정 프로필을 선택합니다.
프로필 카테고리를 선택하면 해당 카테고리에 있는 모든 검사를 단일 검사로 수정할 수 있습니다.
- Show Schema Actions 목록을 선택하여 검사 복사, 이름 바꾸기, 설명 추가, 내보내기, 가져오기를 수행합니다.
- 완료되면 OK를 클릭합니다.