The Android Developer Challenge is back! Submit your idea before December 2.

실행/디버그 구성 만들기 및 수정하기

코드를 실행, 디버그, 테스트하면 Android 스튜디오가 실행/디버그 구성을 사용하여 작업 진행 방법을 결정합니다. 일반적으로 기본 구성으로 충분히 앱을 실행하거나 디버그할 수 있습니다. 그러나 이 페이지에서 설명하는 것처럼 개발 과정에 맞게 구성을 수정하거나 새로운 구성을 만들고 기본 템플릿을 수정할 수 있습니다.

자세한 내용은 다음 IntelliJ 문서를 참고하세요.

실행/디버그 구성 정보

실행/디버그 구성은 앱 설치, 시작, 테스트 옵션과 같은 세부정보를 지정합니다. 일회용으로 구성을 정의하거나 나중에 사용하기 위해 저장할 수 있습니다. 저장한 후에는 툴바Select Run/Debug Configuration 드롭다운 목록에서 구성을 선택할 수 있습니다. Android 스튜디오는 프로젝트의 일부로 구성을 저장합니다.

기본 실행/디버그 구성

처음 프로젝트를 생성하면 Android 스튜디오는 Android App 템플릿을 기반으로 주 활동의 기본 실행/디버그 구성을 만듭니다. 프로젝트를 실행하거나 디버그하려면 항상 실행/디버그 구성을 하나 이상 정의해야 합니다. 그러므로 기본 구성을 삭제하지 않는 것이 좋습니다.

프로젝트 범위 및 버전 관리

실행/디버그 구성과 템플릿 변경사항은 현재 프로젝트에만 적용됩니다. 버전 관리 시스템에서 실행/디버그 구성을 공유할 수 있지만 템플릿은 공유할 수 없습니다. 구성을 공유하는 방법에 관한 자세한 내용은 이름 및 공유 구성 옵션을 참고하세요.

Run/Debug Configurations 대화상자 열기

Run/Debug Configurations 대화상자를 열려면 Run > Edit Configurations를 선택합니다. 그림 1과 같이 Run/Debug Configurations 대화상자가 나타납니다.

그림 1. Run/Debug Configurations 대화상자

왼쪽 패널의 대화상자에서 Defaults 폴더 아래에 기본 템플릿이 표시되고 Defaults 폴더 위에는 정의된 구성이 템플릿 유형별로 그룹화됩니다. 대화상자 크기를 조절하여 숨겨진 항목을 확인할 수 있습니다.

이 대화상자에서는 다음 작업을 진행할 수 있습니다.

새 실행/디버그 구성 만들기

Run/Debug Configurations 대화상자, Project 창, 코드 편집기에서 새로운 실행/디버그 구성을 정의할 수 있습니다. 새로운 구성은 기본 템플릿을 기반으로 해야 합니다.

Run/Debug Configurations 대화상자에 실행/디버그 구성과 사용 가능한 기본 템플릿이 표시됩니다. 템플릿에서 바로 새 구성을 시작하거나 다른 구성의 사본에서 시작할 수 있습니다. 그런 다음 필요에 따라 필드 값을 변경할 수 있습니다.

또는 Project 창의 항목을 마우스 오른쪽 버튼으로 클릭하여 항목에 맞는 구성을 자동으로 만들 수도 있습니다. 예를 들어 특정 활동을 실행하려면 활동 자바 파일을 마우스 오른쪽 버튼으로 클릭하고 Run을 선택합니다. 항목에 따라 Android 스튜디오는 Android App, Android Instrumented Tests, Android JUnit 기본 템플릿 중 하나를 사용하여 구성을 만듭니다.

코드 편집기에서 클래스 또는 메서드의 테스트 구성과 실행/디버그 구성을 쉽게 만들고 실행할 수 있습니다.

Run/Debug Configurations 대화상자 밖에서 구성을 만든 경우 저장하지 않으면 이 구성은 임시 구성이 됩니다. 기본적으로 프로젝트에서 임시 구성을 최대 5개까지 만들 수 있으며, 5개를 초과하는 구성은 Android 스튜디오에서 삭제됩니다. 이 기본값을 변경하려면 Run/Debug Configurations 대화상자에서 Defaults 폴더를 클릭하고 Temporary Configurations Limit 필드에 값을 입력합니다. 임시 구성에 관한 자세한 내용은 Creating and Saving Temporary Run/Debug Configurations(임시 실행/디버그 구성 생성 및 저장)를 참고하세요.

템플릿을 기반으로 구성 시작하기

템플릿을 기반으로 실행/디버그 구성을 정의하려면 다음 단계를 따르세요.

  1. Run/Debug Configurations 대화상자를 엽니다.
  2. Add New Configuration 을 클릭합니다.
  3. 기본 템플릿을 선택합니다.
  4. Name 필드에 이름을 입력합니다.
  5. 필요에 따라 구성을 수정합니다.
  6. 대화상자 하단에 표시되는 오류가 있으면 이를 수정해야 합니다.

  7. Apply 또는 OK를 클릭합니다.

사본에서 구성 시작하기

다른 구성의 사본에서 시작되는 실행/디버그 구성을 정의하려면 다음 단계를 따르세요.

  1. Run/Debug Configurations 대화상자를 엽니다.
  2. 왼쪽 창에서 기존 실행/디버그 구성을 선택합니다.
  3. Copy Configuration 을 클릭합니다.
  4. Name 필드에 이름을 입력합니다.
  5. 필요에 따라 구성을 수정합니다.
  6. 대화상자 하단에 표시되는 오류가 있으면 이를 수정해야 합니다.

  7. Apply 또는 OK를 클릭합니다.

프로젝트 내 항목의 구성 정의하기

Android 스튜디오는 Project 창에 표시된 일부 항목의 실행/디버그 구성을 만들 수 있습니다. 구성은 다음과 같이 기본 템플릿을 기반으로 합니다.

프로젝트 항목의 실행/디버그 구성을 만들려면 다음 단계를 따르세요.

  1. Android 뷰 또는 Project 뷰에서 프로젝트를 엽니다.
  2. Project 창에서 테스트 가능한 항목을 마우스 오른쪽 버튼으로 클릭하고 Run filename 또는 Debug filename을 선택합니다. Android 스튜디오가 임시 실행/디버그 구성을 만들고 앱을 시작합니다.
  3. 툴바의 Select Run/Debug Configuration 드롭다운 목록에서 Save를 선택합니다. 툴바가 표시되지 않는 경우 View > Toolbar를 선택합니다.

그림 2. 구성 저장하기

참고: 마우스 오른쪽 버튼을 클릭하여 동일한 항목(활동 아님)을 실행하거나 디버그하는 경우 Android 스튜디오에서 새로운 구성이 만들어집니다.

클래스 또는 메서드의 테스트 구성 정의하기

Android 스튜디오에서는 클래스 또는 메서드의 테스트 실행 구성을 정의하고 실행할 수 있습니다. 예를 들어 새로운 클래스를 만들면 이 클래스의 테스트를 만들어 실행할 수 있습니다. 테스트에 통과하면 프로젝트의 나머지 부분에도 테스트를 실행하여 새 코드가 다른 위치에서 이상을 일으키지 않는지 확인할 수 있습니다.

소스 세트에 따라 Android 스튜디오는 Android Instrumented Tests 템플릿이나 Android JUnit 템플릿을 사용합니다. 로컬 단위 테스트의 경우 선택적으로 코드 범위로 실행할 수 있습니다.

자바 코드에서 클래스 또는 메서드의 실행/디버그 구성을 만들려면 다음 단계를 따르세요.

  1. Android 뷰 또는 Project 뷰에서 프로젝트를 엽니다.
  2. 코드 편집기에서 자바 파일을 엽니다.
  3. 코드에서 클래스 또는 메서드를 선택한 후 Control+Shift+T(Command+Shift+T)를 누릅니다.
  4. 나타나는 메뉴에서 Create New Test를 선택합니다.
  5. 선택적으로 Create Test 대화상자에서 값을 변경하거나 설정한 후 OK를 클릭합니다.
  6. Choose Destination Directory 대화상자에서 Android 스튜디오가 테스트를 배치할 프로젝트 내 위치를 선택합니다. 디렉터리 구조별로 위치를 지정하거나 인접한 클래스를 선택하여 지정할 수 있습니다.
  7. OK를 클릭합니다.

    새로운 테스트가 Project 창에서 해당하는 테스트 소스 세트에 나타납니다.

  8. 테스트를 실행하려면 다음 중 하나를 진행합니다.
    • Project 창에서 테스트를 마우스 오른쪽 버튼으로 클릭하고 Run 또는 Debug를 선택합니다.
    • 코드 편집기에서 테스트 파일 내의 클래스 정의 또는 메서드 이름을 마우스 오른쪽 버튼으로 클릭하고 Run 또는 Debug를 선택하여 클래스의 모든 메서드를 테스트합니다.
  9. 툴바의 Select Run/Debug Configuration 드롭다운 목록에서 Save를 선택합니다.

그림 3. 구성 저장하기

저장된 구성을 사용하여 앱 실행 또는 디버그하기

실행/디버그 구성을 저장한 경우 구성을 선택한 후에 앱을 실행하거나 디버그할 수 있습니다.

저장한 실행/디버그 구성을 사용하려면 다음 단계를 따르세요.

  1. 툴바에 있는 Select Run/Debug Configuration 드롭다운 목록에서 실행/디버그 구성을 선택합니다.
  2. 드롭다운 목록은 Run 이나 Debug 의 왼쪽에 있습니다. 예를 들어 다음과 같습니다.

  3. Run > Run 또는 Run > Debug를 선택합니다.
  4. 또는 Run 이나 Debug 를 클릭합니다.

참고: Instant Run 세션에서 다른 실행/디버그 구성을 선택한 후 Apply Changes 를 클릭하면 현재 세션이 종료됩니다.

실행/디버그 구성 수정하기

실행/디버그 구성을 수정하려면 다음 단계를 따르세요.

  1. Run/Debug Configurations 대화상자를 엽니다.
  2. 왼쪽 창에서 구성을 선택합니다.
  3. 필요에 따라 구성을 수정합니다.
  4. 대화상자 하단에 표시되는 오류가 있으면 이를 수정해야 합니다.

  5. Apply 또는 OK를 클릭합니다.

기본 실행/디버그 구성 템플릿 수정하기

Android 스튜디오에서 제공되는 기본 템플릿을 개발 프로세스에 맞게 수정할 수 있습니다. 템플릿을 수정해도 이 템플릿을 사용하는 기존 구성에는 영향을 미치지 않습니다. 예를 들어 특정 유형의 구성을 여러 개 만들어야 하는 경우 템플릿을 수정하고 작업을 완료했을 때 원래대로 변경하면 됩니다.

새로운 템플릿을 만들 수는 없지만 구성을 만들어 템플릿과 유사하게 사용할 수는 있습니다. 구성을 복사하고 사본을 수정하여 새로운 구성을 만들 수도 있습니다.

템플릿을 편집하려면 다음 단계를 따르세요.

  1. Run/Debug Configurations 대화상자를 엽니다.
  2. Defaults 폴더를 펼쳐 기본 템플릿을 선택합니다.
  3. 필요에 따라 구성을 수정합니다.
  4. 대화상자 하단에 표시되는 오류가 있으면 이를 수정해야 합니다.

  5. Apply 또는 OK를 클릭합니다.

구성 정렬 및 그룹화하기

Run/Debug Configurations 대화상자에서 구성을 쉽게 찾을 수 있도록 정렬할 수 있습니다. 폴더의 항목을 알파벳순으로 정렬할 수 있으며 새 폴더를 생성하여 구성을 그룹화할 수도 있습니다.

구성을 알파벳순으로 정렬하려면 다음 단계를 따르세요.

  1. Run/Debug Configurations 대화상자를 엽니다.
  2. 구성이 포함된 폴더를 선택합니다.
  3. Sort Configurations 를 클릭합니다.
  4. Apply 또는 OK를 클릭합니다.

폴더에서 구성을 그룹화하려면 다음 단계를 따르세요.

  1. Run/Debug Configurations 대화상자를 엽니다.
  2. 구성이 포함된 폴더를 선택합니다.
  3. Create New Folder 를 클릭합니다.
  4. Folder Name 필드에 이름을 입력합니다.
  5. 동일한 템플릿 카테고리의 항목을 폴더로 드래그합니다.
  6. 동일한 템플릿 카테고리의 폴더와 구성을 올바른 위치로 드래그하거나 Move Up Move Down 을 사용하여 정렬합니다.
  7. Apply 또는 OK를 클릭합니다.

출시 전 작업 정의하기

실행/디버그 구성을 적용하기 전에 실행할 작업을 지정할 수 있습니다. 작업은 목록에 나타난 순서대로 실행됩니다.

참고: 출시 전 작업을 정의하는 것은 고급 기능입니다. 이 기능을 사용하는 대신 build.gradle 파일에 준비 로직을 작업으로 포함하여 명령줄에서 빌드할 때 이 로직을 실행하는 것이 좋습니다.

작업 목록을 생성하려면 다음 단계를 따르세요.

  1. Run/Debug Configurations 대화상자 하단의 Before launch 아래에서 Add 를 클릭하고 작업 유형을 선택합니다. 대화상자가 열리면 필드를 채우고 OK를 클릭합니다.
  2. 필요에 따라 더 많은 작업을 추가합니다.
  3. 작업의 순서를 지정하려면 작업을 선택하고 Up Down 을 클릭하여 목록에서 위나 아래로 작업을 이동합니다.
  4. 실행/디버그 구성 설정을 적용 전에 표시하려면 Show this page를 선택합니다.

    이 옵션은 기본적으로 선택 해제되어 있습니다.

  5. 앱을 실행하거나 디버그할 때 Run 또는 Debug 도구 창이 활성화되도록 하려면 Active tool window를 선택합니다.

    이 옵션은 기본적으로 선택되어 있습니다.

목록에서 작업을 삭제하려면 다음 단계를 따르세요.

  1. 작업을 선택합니다.
  2. Remove 를 클릭합니다.

작업을 편집하려면 다음 단계를 따르세요.

  1. 작업을 선택합니다.
  2. Edit 을 클릭합니다.
  3. 열리는 대화상자에서 작업 설정을 수정하고 OK를 클릭합니다.

다음 표는 추가할 수 있는 작업 목록입니다.

작업 설명
Run External tool Android 스튜디오 외부에 있는 애플리케이션을 실행합니다. External Tools 대화상자에서 실행할 애플리케이션을 하나 이상 선택한 후 OK를 클릭합니다. 애플리케이션이 아직 Android 스튜디오에서 정의되지 않은 경우 애플리케이션 정의를 Create Tools 대화상자에서 추가합니다. 자세한 내용은 Configuring Third-Party Tools(타사 도구 구성)External Tools(외부 도구)를 참고하세요.
Run Another Configuration 기존 실행/디버그 구성 중 하나를 실행합니다. Choose Configuration to Execute 대화상자에서 실행할 구성을 선택한 후 OK를 클릭합니다.
Make 프로젝트 또는 모듈을 컴파일합니다. Android 스튜디오는 실행/디버그 구성에서 특정 모듈이 지정되어 있으면 Make Module 명령을 실행하고 모듈이 지정되어 있지 않으면 Make Project 명령을 실행합니다.
Make Project 프로젝트를 컴파일합니다. Android 스튜디오는 Make Project 명령을 실행합니다.
Make, no error check 이 옵션은 Make와 동일하지만 Android 스튜디오가 컴파일 결과와 관계없이 실행/디버그 구성을 실행한다는 점에 차이가 있습니다.
Build Artifacts Android 스튜디오에서는 지원되지 않습니다.
Run Gradle task Gradle 작업을 실행합니다. 열리는 대화상자에서 세부정보를 지정한 후 OK를 클릭합니다. 자세한 내용은 Gradle을 참고하세요.
Gradle-aware Make 프로젝트를 컴파일하고 Gradle을 실행합니다.
App Engine Gradle builder App Engine Gradle 빌더 작업은 프로젝트를 동기화한 후 모듈을 빌드합니다.

기본 실행/디버그 구성 템플릿

Android 스튜디오에서 제공하는 기본 구성 템플릿을 사용하여 빠르게 시작할 수 있습니다. 다음 섹션에서는 Android 스튜디오를 사용한 Android 개발에 적용되는 템플릿을 설명합니다.

참고: Android 스튜디오 2.1.x 및 이전 버전에는 Native Application 템플릿이 있지만 최신 버전에는 이 템플릿이 없습니다. 프로젝트에 Native Application 템플릿이 있는 경우 프로젝트를 로드할 때 Android 스튜디오는 이 프로젝트를 Android 앱으로 변환합니다. Convert Project 대화상자에서 안내하는 과정을 따르면 됩니다.

지원되지 않는 템플릿

다음의 지원되지 않는 템플릿은 IntelliJ IDEA에서 온 것으로, Android 스튜디오를 사용한 Android 개발에만 사용되는 것은 아닙니다. 이러한 템플릿을 사용하는 방법에 관한 자세한 내용은 IntelliJ IDEA 문서 링크를 참조하세요.

이름 및 공유 구성 옵션

NameShare 옵션은 구성에만 적용됩니다. 구성을 만들 때 구성의 이름을 지정하고 구성을 공유하려는 경우에는 Share 체크박스를 선택합니다. 템플릿은 이름을 지정하거나 공유할 수 없습니다.

Share 체크박스를 사용하면 버전 관리를 통해 실행/디버그 구성을 다른 팀원이 사용할 수 있도록 설정할 수 있습니다. 이 옵션을 선택하면 프로젝트가 버전 관리 시스템에 체크인되어 있는 경우 누군가가 이 프로젝트를 체크아웃할 때 실행/디버그 구성이 포함됩니다.

Android 스튜디오는 공유된 실행/디버그 구성을 project_directory/.idea/runConfigurations/ 폴더 아래의 개별 XML 파일에 저장합니다. 자세한 내용은 Directory-based Project Format(디렉터리 기반 프로젝트 형식)을 참고하세요.

Android 앱

이 템플릿에 기반한 구성을 사용하여 가상 기기 또는 하드웨어 기기에서 Android 앱과 활동을 실행/디버그할 수 있습니다.

General 탭

General 탭에서 설치, 시작, 배포 옵션을 지정할 수 있습니다. Miscellaneous 탭에도 설치 옵션이 있습니다.

필드 설명
Module 이 구성을 적용할 모듈을 선택합니다.
Installation Options: Deploy

옵션을 선택합니다.

  • Default APK: 현재 선택한 변형의 APK를 빌드하고 배포합니다.
  • APK from app bundle: Android App Bundle에서 앱을 빌드하고 배포합니다. 다시 말해서, Android 스튜디오는 먼저 앱 프로젝트를 앱의 모든 컴파일된 코드 및 리소스가 포함된 App Bundle로 변환한 후에 이 App Bundle에서 연결 기기에 앱을 배포하는 데 필요한 APK만 생성합니다. 일반적으로 Google Play에 업로드하려는 App Bundle을 테스트하는 경우에만 이 옵션을 사용합니다. App Bundle에서 배포할 때는 다음과 같은 제한사항을 고려해야 하기 때문입니다.
    • App Bundle에서 배포하면 Instant Run이 작동하지 않습니다.
    • Android 스튜디오 빌드 시스템에서는 App Bundle을 먼저 빌드한 후에 App Bundle을 사용하여 앱에 배포할 APK를 빌드해야 하며, 이 프로세스는 앱 배포 시 총 빌드 시간을 늘립니다.
  • Custom Artifact: Android 스튜디오에서는 지원되지 않습니다.
  • Nothing: 기기에 APK를 설치하지 않습니다. 예를 들어 APK를 수동으로 설치할 때는 Android 스튜디오가 필요 없습니다.
Installation Options: Deploy as instant app 앱이 인스턴트 환경을 지원하는 경우, 다시 말해서 새 프로젝트를 생성할 때 인스턴트 앱 지원을 추가하거나 인스턴트 지원 동적 기능을 하나 이상 만드는 경우 Deploy as instant app 옆의 체크박스를 선택하면 인스턴트 지원 모듈을 배포하도록 선택할 수 있습니다.
Installation Options: Dynamic features to deploy 앱에 동적 기능 모듈이 포함된 경우 앱 배포 시 포함할 각 동적 기능 옆에 있는 체크박스를 선택합니다. 앱에 동적 기능이 포함된 경우에만 이 옵션이 표시됩니다.

참고: 요청 시 동적 기능 모듈의 다운로드 및 설치를 테스트하려는 경우에는 App Bundle을 게시한 후에 Play Console 내부 테스트 트랙을 사용하여 테스트해야 합니다. 자세한 내용은 Play Console에 App Bundle 업로드하기를 참조하세요.

Installation Options: Install Flags 사용할 adb pm install 옵션을 입력합니다. 경로를 제외하고 명령줄에 사용하는 것처럼 옵션 형식을 지정합니다. 예를 들면 다음과 같습니다.

-i foo.bar.baz -r /path/to/apk

-d -r

기본값: 옵션 없음

Launch Options: Launch

옵션을 선택합니다.

  • Nothing: **Run** 또는 **Debug**를 선택할 때 아무것도 시작하지 않습니다. 하지만 앱이 이미 실행 중일 때 **Debug**를 선택하면 Android 스튜디오는 앱 프로세스에 디버거를 추가합니다.
  • Default Activity: manifest에 시작으로 표시한 활동을 시작합니다. 예를 들어 다음과 같습니다.
    
        <intent-filter>
          <action android:name="android.intent.action.MAIN" />
          <category android:name="android.intent.category.LAUNCHER" />
        </intent-filter>
        
  • Specified Activity: 모듈 내의 특정 앱 활동을 시작합니다. 이 옵션을 선택하면 아래에 Activity 필드가 나타나며, 여기에 시작하려는 활동의 이름을 입력할 수 있으며 More를 클릭하여 목록에서 활동을 선택할 수도 있습니다.
  • URL: 앱의 manifest에 있는 인텐트 필터와 일치하는 URL을 시작합니다. 이 옵션을 선택하면 아래에 URL 필드가 나타나며 여기에 URL을 입력할 수 있습니다.

    Android 인스턴트 앱을 시작하려면 이 필드를 채워야 합니다. 이 옵션을 사용하여 Android 앱 링크를 테스트할 수도 있습니다.

Launch Options: Launch Flags 사용할 adb am start 옵션을 입력합니다. 인텐트를 제외하고 명령줄에 사용하는 것처럼 옵션 형식을 지정합니다. 예:

-W

이 옵션은 Launch 값을 Nothing으로 선택하면 나타나지 않습니다.

기본값: 옵션 없음

Deployment Target Options: Target

옵션을 선택합니다.

  • Open Select Deployment Target Dialog: Select Deployment Target 대화상자를 열어 가상 기기나 하드웨어 기기를 선택합니다.
  • USB Device: USB 포트를 통해 개발용 컴퓨터에 연결된 하드웨어 기기를 사용합니다. 기기가 2개 이상이면 선택할 수 있는 대화상자가 나타납니다.
  • Emulator: 가상 기기를 사용합니다. 구성에서 AVD를 선택할 수 있으며, 선택하지 않는 경우 목록에 있는 첫 번째 AVD가 사용됩니다.

Deployment Target Options: Use same device for future launches

기본적으로 이 옵션은 선택 해제되어 있으므로 앱을 실행할 때마다 기기를 선택하도록 Select Deployment 대화상자가 나타납니다. 이 옵션을 선택한 후 앱을 실행하면 Select Deployment 대화상자가 표시되어 기기를 선택하게 됩니다. 그럼 앱을 실행할 때마다 Select Deployment 대화상자가 표시되지 않고 기존에 선택한 기기에서 앱이 시작됩니다. 다른 기기에서 앱을 실행하려면 Use same device for future launches를 선택 해제하거나 Run > Stop app 또는 Stop 을 사용하여 앱을 중지했다가 다시 시작합니다. Select Deployment 대화상자가 표시되면 여기서 기기를 선택할 수 있습니다.
Before Launch 출시 전 작업 정의하기를 참고하세요.

Miscellaneous 탭

Miscellaneous 탭에서 logcat, 설치, 시작, 배포 옵션을 지정할 수 있습니다. General 탭에도 설치 옵션이 있습니다.

필드 설명
Logcat: Show logcat automatically 이 옵션을 선택하면 이 구성을 사용하여 앱을 배포 및 시작할 때마다 Logcat 창이 열립니다. 기본값: 선택됨
Logcat: Clear log before launch 앱을 시작하기 전에 Android 스튜디오 로그 파일에서 이전 세션 데이터를 삭제하려면 이 옵션을 선택합니다. 기본값: 선택 해제됨
Installation Options: Skip installation if APK has not changed. 이 옵션을 선택하면 Android 스튜디오가 APK에 변경사항이 없는 것을 확인할 경우 APK를 재배포하지 않습니다. APK에 변경사항이 없어도 Android 스튜디오가 강제로 APK를 설치하게 하려면 이 옵션을 선택 해제하세요. 기본값: 선택됨
Installation Options: Force stop running application before launching activity

이 옵션을 선택하면 Android 스튜디오가 APK에 변경사항이 없어서 APK를 재설치할 필요가 없다는 것을 확인할 경우 앱을 강제 종료하여 기본 런처 활동에서 앱이 시작되도록 합니다. 이 옵션을 선택 해제하면 Android 스튜디오가 앱을 강제 종료하지 않습니다.

이 옵션은 APK 설치 여부를 제어하는 이전의 옵션과 함께 사용합니다. 매번 강제 설치를 원하는 것이 아니라면 Installation Options 필드 두 개를 모두 기본값으로 둡니다.

이 옵션을 선택 해제해야 하는 경우도 있습니다. 예를 들어 IME(Input Method Engine)를 작성 중인 경우, 앱을 강제로 종료하면 현재 키보드로 이 옵션이 선택 해제되는데 이러한 상황을 원치 않을 수도 있습니다.

기본값: 선택됨

Before Launch 출시 전 작업 정의하기를 참고하세요.

Debugger 탭

Debugger 탭에서 디버그 옵션을 지정합니다.

C 및 C++ 코드의 경우 Android 스튜디오는 LLDB 디버거를 사용합니다. 일반적인 Android 스튜디오 UI 외에, 디버거 창에는 디버깅 중에 LLDB 명령을 입력할 수 있는 LLDB 탭이 있습니다. Android 스튜디오가 디버거 UI에 정보를 표시하기 위해 사용하는 동일한 명령을 입력하고 추가 작업을 진행할 수 있습니다.

C 및 C++ 프로젝트의 경우 Debugger 탭에서 기호 디렉터리는 물론이고 LLDB 시작 및 게시/첨부 명령을 추가할 수 있습니다. 그러려면 다음과 유사한 버튼을 사용합니다.

  • Add : 디렉터리 또는 명령을 추가합니다.
  • Remove : 디렉터리나 명령을 선택한 후 이 버튼을 클릭하여 선택 항목을 삭제합니다.
  • Up : 디렉터리나 명령을 선택한 후 이 버튼을 클릭하여 목록에서 항목을 위로 이동합니다.
  • Down : 디렉터리나 명령을 선택한 후 이 버튼을 클릭하여 목록에서 항목을 아래로 이동합니다.

Android 스튜디오에서 디버그하는 방법에 관한 자세한 내용은 앱 디버깅을 참고하세요.

필드 설명
Debug type

다음 옵션 중 하나를 선택합니다.

  • Java: 자바 코드만 디버그합니다.
  • Auto: Android 스튜디오가 개발자의 프로젝트에 가장 적합한 디버그 유형을 자동으로 선택하게 합니다.
  • Native: 네이티브 C 또는 C++ 코드를 디버그합니다.
  • Dual: 별도의 디버그 세션 두 개에서 자바 코드와 네이티브 코드를 디버그합니다.

Auto 옵션을 사용하면 프로젝트에 적합한 디버그 유형이 자동으로 선택되므로 이 옵션을 선택하는 것이 좋습니다.

Symbol Directories

Android 스튜디오 외부에서 생성된 C 또는 C++ 정보를 디버거에 제공하기 위한 기호 파일을 추가하려는 경우 여기서 디렉터리를 하나 이상 추가할 수 있습니다. Android 스튜디오는 Gradle용 Android 플러그인에서 생성되는 파일보다 이 디렉터리에 있는 파일을 우선적으로 사용합니다. 디버거는 필요한 것을 찾을 때까지 디렉터리를 위에서 아래로 순서대로 검색합니다. 또한 디버거는 디렉터리에 있는 파일을 반복적으로 검색합니다. 목록을 최적화하고 시간을 절약하려면 가장 자주 사용하는 디렉터리를 목록 위쪽에 두세요.

트리에서 상위 수준에 있는 디렉터리를 지정하면 그에 속한 모든 하위 디렉터리를 검색하는 데 시간이 더 오래 걸릴 수 있습니다. 매우 구체적으로 특정된 디렉터리를 추가하면 검색 시간을 절약할 수 있습니다. 속도와 디버깅에 필요한 파일을 찾아내는 것 사이에서 적절한 균형점을 찾아야 합니다. 예를 들어 다양한 ABI(Android 바이너리 인터페이스)에 해당하는 하위 디렉터리가 포함된 디렉터리가 있는 경우 특정 ABI용 디렉터리나 모든 ABI용 디렉터리를 추가할 수 있습니다. 상위 수준 디렉터리를 검색하는 데 시간이 더 오래 걸릴 수 있지만 다른 기기에서 디버그하기로 결정하는 경우에는 더 확실하고 간단한 방법이기도 합니다.

디버거가 Gradle 기호 파일을 포함한 디렉터리를 자동으로 사용하므로 이러한 디렉터리를 추가할 필요는 없습니다.

LLDB Startup Commands

디버거가 프로세스에 연결하기 전에 실행하고 싶은 LLDB 명령을 추가합니다. 예를 들어 다음 명령에 나오는 것처럼 환경에 적합한 설정을 정의할 수 있습니다.

settings set target.max-memory-read-size 2048

LLDB는 위에서 아래로 순서대로 명령을 실행합니다.

LLDB Post Attach Commands

디버거가 프로세스에 연결한 직후에 실행하고 싶은 LLDB 명령을 추가합니다. 예:

process handle SIGPIPE -n true -p true -s false

LLDB는 위에서 아래로 순서대로 명령을 실행합니다.

Host working directory LLDB 작업 디렉터리를 지정합니다.
Logging: Target channels

LLDB 로그 옵션을 지정합니다. Android 스튜디오는 개발팀의 경험을 바탕으로 기본 옵션을 설정하므로 그다지 느리지 않지만 문제해결에 필요한 정보가 있습니다. Android 스튜디오 버그 보고서를 위해 종종 로그가 요청됩니다. 기본값은 다음과 같습니다.

lldb process:gdb-remote packets

기본값을 변경하여 더 많은 정보를 수집할 수 있습니다. 예를 들어, 다음 로그 옵션으로 특정 platform에 관한 정보를 수집할 수 있습니다.

lldb process platform:gdb-remote packets

로그 명령의 전체 목록을 보려면 Android 스튜디오의 LLDB 셸 창에서 log list 명령을 입력하세요.

Android 스튜디오에서는 다음 위치에 기기 로그가 저장됩니다. 여기서 ApplicationId는 빌드된 APK manifest에서 사용되는 고유한 애플리케이션 ID로, 이 ID를 사용하여 기기 및 Google Play 스토어에서 앱을 식별합니다.

/data/data/ApplicationId/lldb/log

또는 여러 사용자가 한 기기에 액세스하는 경우에는 로그가 다음 위치에 저장됩니다. 여기서 AndroidUserId는 기기에서 사용자의 고유 식별자입니다.

/data/user/AndroidUserId/ApplicationId/lldb/log

원격 디버깅을 위해 LLDB를 사용하는 자세한 방법은 원격 디버깅을 참고하세요.

Before Launch 출시 전 작업 정의하기를 참고하세요.

Profiling 탭

Android 7.1 또는 이전 버전을 실행하는 기기의 경우 Android 프로파일러의 특정 기능을 사용 설정하려면 Enable advanced profiling 옵션을 선택해야 합니다.

Android Tests

사용해야 하는 테스트 템플릿은 소스 세트에 따라 다릅니다. Android Instrumented Tests 템플릿은 계측 테스트용이고, Android JUnit 템플릿은 로컬 단위 테스트용입니다.

참고: Firebase Test Lab을 사용하여 다양한 기기를 테스트하는 중이라면 Android JUnit 템플릿을 사용하여 계측 테스트를 정의할 수 있습니다. 자세한 내용은 Firebase Test Lab으로 테스트 실행하기를 참고하세요.

다음 탭 설명에서는 Android Instrumented Tests 템플릿에 사용되는 탭과 필드를 다룹니다. Android JUnit 테스트 템플릿의 탭과 필드에 관한 자세한 내용은 IntelliJ Run/Debug Configuration: JUnit(실행/디버그 구성: JUnit) 페이지를 참고하세요.

General 탭

General 탭에서 테스트 위치, 계측 실행기, adb 셸, 배포 옵션을 지정할 수 있습니다.

필드 설명
Module 이 구성을 적용할 모듈을 선택합니다.
Test

이 영역에서는 실행할 테스트의 위치를 지정합니다.

  • All in module: 선택한 모듈에서 모든 테스트를 실행합니다.
  • All in package: Package 필드에서 지정한 패키지에서 모든 테스트를 실행합니다. 이름을 입력하거나 More를 클릭하여 대화상자에서 패키지를 선택합니다.
  • Class: Class 필드에서 지정한 클래스의 테스트를 실행합니다. 이름을 입력하거나 More를 클릭하여 대화상자에서 클래스를 선택합니다.
  • Method: 테스트 메서드를 실행합니다. Class 필드에서 메서드가 포함된 클래스를 지정합니다. Method 필드에서 메서드를 지정합니다. 이름을 입력하거나 More를 클릭하여 대화상자에서 클래스 또는 메서드를 선택합니다.
Specific instrumentation runner(선택사항) 계측 실행기 위치를 입력하고 More를 클릭하여 대화상자를 사용합니다. 계측 실행기 위치는 build.gradle 파일에서 지정되지만 이 옵션의 값에 따라 위치가 재정의됩니다. 기본값은 일반적으로 AndroidX TestAndroidJUnitRunner 클래스입니다.
Extra options

사용할 adb am instrument 옵션을 입력합니다. 구성요소는 입력하지 않습니다. 예를 들어 AndroidX Test AndroidJUnitRunner를 사용 중인 경우 이 필드를 사용하여 실행기에 다음과 같은 추가 옵션을 전달할 수 있습니다. -e size small

기본값: 옵션 없음

Deployment Target Options: Target

옵션을 선택합니다.

  • Open Select Deployment Target Dialog: Select Deployment Target 대화상자를 열어 가상 기기나 하드웨어 기기를 선택합니다.
  • USB Device: USB 포트를 통해 개발용 컴퓨터에 연결된 하드웨어 기기를 사용합니다. 기기가 2개 이상이면 선택할 수 있는 대화상자가 나타납니다.
  • Emulator: 가상 기기를 사용합니다. 구성에서 AVD를 선택할 수 있으며, 선택하지 않는 경우 목록에 있는 첫 번째 AVD가 사용됩니다.
  • Firebase Test Lab Device Matrix: Firebase Test Lab으로 테스트 실행하기를 참고하세요.
Deployment Target Options: Use same device for future launches Select Deployment Target 대화상자에서 선택한 기기를 이후에도 자동으로 사용하려면 이 옵션을 선택합니다. 기기를 사용할 수 없는 경우 대화상자가 나타납니다. 기본값: 선택 해제됨
Before Launch 출시 전 작업 정의하기를 참고하세요.

Miscellaneous 탭

Miscellaneous 탭에는 logcat 및 설치 옵션이 있습니다.

필드 설명
Logcat: Clear log before launch 앱을 시작하기 전에 Android 스튜디오 로그 파일에서 이전 세션 데이터를 삭제하려면 이 옵션을 선택합니다. 기본값: 선택 해제됨
Installation Options: Skip installation if APK has not changed 이 옵션을 선택하면 Android 스튜디오가 APK에 변경사항이 없는 것을 확인할 경우 APK를 재배포하지 않습니다. APK에 변경사항이 없어도 Android 스튜디오에서 강제로 APK를 설치하려면 이 옵션을 선택 해제하세요. 기본값: 선택됨
Installation Options: Force stop running application before launching activity

이 옵션을 선택하면 Android 스튜디오가 APK에 변경사항이 없어서 APK를 재설치할 필요가 없다는 것을 확인할 경우 앱을 강제 종료하여 기본 런처 활동에서 앱이 시작되도록 합니다. 이 옵션을 선택 해제하면 Android 스튜디오가 앱을 강제 종료하지 않습니다.

이 옵션은 APK 설치를 제어하는 이전의 옵션과 함께 사용합니다. 매번 강제 설치를 원하는 것이 아니라면 Installation Options 필드 두 개를 모두 기본값으로 둡니다.

이 옵션을 선택 해제해야 하는 경우도 있습니다. 예를 들어 IME(Input Method Engine)를 작성 중인 경우, 앱을 강제로 종료하면 현재 키보드로 이 옵션이 선택 해제되는데 이러한 상황을 원치 않을 수도 있습니다.

기본값: 선택됨

Before Launch 출시 전 작업 정의하기를 참고하세요.

Debugger 탭

Debugger 탭에서 디버그 옵션을 지정합니다.

C 및 C++ 코드의 경우 Android 스튜디오는 LLDB 디버거를 사용합니다. 일반적인 Android 스튜디오 UI 외에, 디버거 창에는 디버깅 중에 LLDB 명령을 입력할 수 있는 LLDB 탭이 있습니다. Android 스튜디오가 디버거 UI에 정보를 표시하기 위해 사용하는 동일한 명령을 입력하고 추가 작업을 진행할 수 있습니다.

C 및 C++ 프로젝트의 경우 Debugger 탭에서 기호 디렉터리는 물론이고 LLDB 시작 및 게시/첨부 명령을 추가할 수 있습니다. 그러려면 다음과 유사한 버튼을 사용합니다.

  • Add : 디렉터리 또는 명령을 추가합니다.
  • Remove : 디렉터리나 명령을 선택한 후 이 버튼을 클릭하여 선택 항목을 삭제합니다.
  • Up : 디렉터리나 명령을 선택한 후 이 버튼을 클릭하여 목록에서 항목을 위로 이동합니다.
  • Down : 디렉터리나 명령을 선택한 후 이 버튼을 클릭하여 목록에서 항목을 아래로 이동합니다.

Android 스튜디오에서 디버그하는 방법에 관한 자세한 내용은 앱 디버깅을 참고하세요.

필드 설명
Debug type

다음 옵션 중 하나를 선택합니다.

  • Java: 자바 코드만 디버그합니다.
  • Auto: Android 스튜디오가 개발자의 프로젝트에 가장 적합한 디버그 유형을 자동으로 선택하게 합니다.
  • Native: 네이티브 C 또는 C++ 코드를 디버그합니다.
  • Dual: 별도의 디버그 세션 두 개에서 자바 코드와 네이티브 코드를 디버그합니다.

Auto 옵션을 사용하면 프로젝트에 적합한 디버그 유형이 자동으로 선택되므로 이 옵션을 선택하는 것이 좋습니다.

Symbol Directories

Android 스튜디오 외부에서 생성된 C 또는 C++ 정보를 디버거에 제공하기 위한 기호 파일을 추가하려는 경우 여기서 디렉터리를 하나 이상 추가할 수 있습니다. Android 스튜디오는 Gradle용 Android 플러그인에서 생성되는 파일보다 이 디렉터리에 있는 파일을 우선적으로 사용합니다. 디버거는 필요한 것을 찾을 때까지 디렉터리를 위에서 아래로 순서대로 검색합니다. 또한 디버거는 디렉터리에 있는 파일을 반복적으로 검색합니다. 목록을 최적화하고 시간을 절약하려면 가장 자주 사용하는 디렉터리를 목록 위쪽에 두세요.

트리에서 상위 수준에 있는 디렉터리를 지정하면 그에 속한 모든 하위 디렉터리를 검색하는 데 시간이 더 오래 걸릴 수 있습니다. 매우 구체적으로 특정된 디렉터리를 추가하면 검색 시간을 절약할 수 있습니다. 속도와 디버깅에 필요한 파일을 찾아내는 것 사이에서 적절한 균형점을 찾아야 합니다. 예를 들어 다양한 ABI(Android 바이너리 인터페이스)에 해당하는 하위 디렉터리가 포함된 디렉터리가 있는 경우 특정 ABI용 디렉터리나 모든 ABI용 디렉터리를 추가할 수 있습니다. 상위 수준 디렉터리를 검색하는 데 시간이 더 오래 걸릴 수 있지만 다른 기기에서 디버그하기로 결정하는 경우에는 더 확실하고 간단한 방법이기도 합니다.

디버거가 Gradle 기호 파일을 포함한 디렉터리를 자동으로 사용하므로 이러한 디렉터리를 추가할 필요는 없습니다.

LLDB Startup Commands

디버거가 프로세스에 연결하기 전에 실행하고 싶은 LLDB 명령을 추가합니다. 예를 들어 다음 명령에 나오는 것처럼 환경에 적합한 설정을 정의할 수 있습니다.

settings set target.max-memory-read-size 2048

LLDB는 위에서 아래로 순서대로 명령을 실행합니다.

LLDB Post Attach Commands

디버거가 프로세스에 연결한 직후에 실행하고 싶은 LLDB 명령을 추가합니다. 예:

process handle SIGPIPE -n true -p true -s false

LLDB는 위에서 아래로 순서대로 명령을 실행합니다.

Host working directory LLDB 작업 디렉터리를 지정합니다.
Logging: Target channels

LLDB 로그 옵션을 지정합니다. Android 스튜디오는 개발팀의 경험을 바탕으로 기본 옵션을 설정하므로 그다지 느리지 않지만 문제해결에 필요한 정보가 있습니다. Android 스튜디오 버그 보고서를 위해 종종 로그가 요청됩니다. 기본값은 다음과 같습니다.

lldb process:gdb-remote packets

기본값을 변경하여 더 많은 정보를 수집할 수 있습니다. 예를 들어, 다음 로그 옵션으로 특정 platform에 관한 정보를 수집할 수 있습니다.

lldb process platform:gdb-remote packets

로그 명령의 전체 목록을 보려면 Android 스튜디오의 LLDB 셸 창에서 log list 명령을 입력하세요.

Android 스튜디오에서는 다음 위치에 기기 로그가 저장됩니다. 여기서 ApplicationId는 빌드된 APK manifest에서 사용되는 고유한 애플리케이션 ID로, 이 ID를 사용하여 기기 및 Google Play 스토어에서 앱을 식별합니다.

/data/data/ApplicationId/lldb/log

또는 여러 사용자가 한 기기에 액세스하는 경우에는 로그가 다음 위치에 저장됩니다. 여기서 AndroidUserId는 기기에서 사용자의 고유 식별자입니다.

/data/user/AndroidUserId/ApplicationId/lldb/log

원격 디버깅을 위해 LLDB를 사용하는 자세한 방법은 원격 디버깅을 참고하세요.

Before Launch 출시 전 작업 정의하기를 참고하세요.

App Engine DevAppServer

이 실행/디버그 구성은 Google Cloud Platform에 적용됩니다. 자세한 내용은 백엔드 실행, 테스트 및 배포를 참고하세요. 이 단계를 따라 프로젝트를 build.gradle 파일에 동기화하면 Android 스튜디오에서 자동으로 App Engine DevAppServer 구성이 생깁니다.

IntellJ IDEA App Engine Server 템플릿은 Android 스튜디오에서 사용할 수 없는 다른 템플릿입니다.

필드 설명
Single instance only 한 번에 실행/디버그 구성의 인스턴스 하나만 실행하려면 이 옵션을 선택합니다. 이 옵션을 선택하면 같은 구성을 동시에 여러 개 실행할 수 없습니다. 기본값: 선택됨
Module 이 구성을 적용할 모듈을 선택합니다.
Synchronize with build.gradle configuration App Engine 모듈을 추가하고 build.gradle 파일에 동기화하면 App Engine DevAppServer 구성 필드가 자동으로 채워집니다(권장). File > Sync Project with Gradle Files를 선택해도 프로젝트가 동기화됩니다. 기본값: 선택됨
App Engine SDK 로컬 컴퓨터에서 자바용 Google App Engine SDK 경로를 입력합니다. ...을 클릭하여 대화상자에서 선택합니다.
War Path 로컬 개발 서버에서 배포 중인 앱의 WAR(Web Application Archive) 디렉터리 경로를 입력합니다. ...을 클릭하여 대화상자에서 선택합니다.
VM Args

DevAppServer를 시작하기 위해 VM에 전달할 명령줄 옵션을 지정합니다. 옵션을 지정할 때는 다음을 고려하세요.

  • 공백을 사용하여 여러 옵션을 구분합니다.
  • 공백이 있는 옵션은 공백을 따옴표(" ")로 묶습니다.
  • 옵션에 따옴표가 있다면 따옴표 앞에 백슬래시를 추가(\")합니다.

VM 옵션에 관한 자세한 내용은 J2SE 버전 문서(예: java JDK 7java JDK 8)를 참고하세요.

기본값: 옵션 없음

Server Address 서버로 사용할 호스트 주소를 입력합니다. 네트워크상의 다른 컴퓨터에서 개발 서버에 액세스하려면 주소를 입력해야 할 수도 있습니다. 0.0.0.0 주소를 입력하면 localhost 액세스와 호스트 이름 액세스가 모두 가능합니다. 기본값: localhost
Server Port 서버에 사용할 포트 번호를 입력합니다. 기본값: 8080
Disable Check for App Engine SDK Updates 이 옵션을 선택하는 경우, 개발 서버는 새로운 SDK 릴리스 사용 가능 여부를 확인하기 위해 App Engine에 연결하지 않습니다. 서버는 기본적으로 시작 시에 새 버전을 확인하고 새 버전을 사용할 수 있으면 메시지를 출력합니다.
Before Launch 출시 전 작업 정의하기를 참고하세요.