실행/디버그 구성 생성 및 수정

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

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

실행/디버그 구성 정보

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

초기에 생성된 실행/디버그 구성

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

프로젝트 범위 및 버전 관리

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

실행/디버그 구성 대화상자 열기

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

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

대화상자의 왼쪽 패널에는 정의된 구성이 템플릿 유형별로 그룹되어 있고, 하단에서 구성 템플릿을 수정할 수 있습니다. 선택한 구성은 오른쪽 패널에서 수정할 수 있습니다. 대화상자 크기를 조절하여 숨겨진 항목을 확인할 수 있습니다.

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

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

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

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

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

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

Run/Debug Configurations 대화상자 밖에서 구성을 생성할 때 저장하지 않으면 임시 구성이 생성됩니다. 기본적으로 프로젝트에서 임시 구성을 최대 5개까지 만들 수 있으며, 5개를 초과하는 구성은 Android 스튜디오에서 삭제됩니다. 이 기본값을 변경하려면 Android 스튜디오 설정을 열고 Advanced Settings > Run/Debug > Temporary configurations limit을 변경합니다. 임시 구성에 관한 자세한 내용은 임시 실행/디버그 구성 생성 및 저장을 참조하세요.

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

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

  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 드롭다운 목록을 엽니다.
  4. 저장하려는 구성 옆에 있는 옵션에서 Save Configuration을 선택합니다.

    그림 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 드롭다운 목록을 엽니다.
  10. 저장하려는 구성 옆에 있는 옵션에서 Save Configuration을 선택합니다.

    그림 3. 구성 저장하기

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

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

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

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

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

실행/디버그 구성 수정

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

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

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

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

Android 스튜디오에서 제공되는 구성 템플릿을 개발 프로세스에 맞게 수정할 수 있습니다. 템플릿을 수정해도 이 템플릿을 사용하는 기존 구성에는 영향을 미치지 않습니다. 예를 들어 특정 유형의 구성을 여러 개 생성해야 한다면 템플릿을 수정하고 작업이 완료된 후에 되돌릴 수 있습니다.

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

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

  1. Run/Debug Configurations 대화상자를 엽니다.
  2. Edit configuration templates...를 클릭합니다.
  3. 구성 템플릿을 선택합니다.
  4. 필요에 따라 구성을 수정합니다.
  5. 대화상자 하단에 표시되는 오류가 있으면 이를 수정해야 합니다.

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

구성 정렬 및 그룹화

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

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

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

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

  1. Run/Debug Configurations 대화상자를 엽니다.
  2. 구성이 포함된 폴더를 선택합니다.
  3. Create New Folder 를 클릭합니다.
  4. Folder Name 필드에 이름을 입력합니다.
  5. 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 대화상자에서 애플리케이션 정의를 추가합니다. 자세한 내용은 서드 파티 도구 구성외부 도구를 참고하세요.
    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 문서 링크를 참고하세요.

    일반 구성 옵션

    Name, Allow parallel run, Store as project file 옵션은 여러 구성 템플릿에 공통으로 적용됩니다. 이러한 옵션에 관한 자세한 내용은 일반 설정을 참고하세요.

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

    Android App

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

    General 탭

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

    필드 설명
    모듈 이 구성을 적용할 모듈을 선택합니다.
    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에서 배포하면 총 빌드 시간이 늘어나기 때문입니다.
    • Custom Artifact: Android 스튜디오에서는 지원되지 않습니다.
    • Nothing: 기기에 APK를 설치하지 않습니다. 예를 들어 APK를 수동으로 설치할 때는 Android 스튜디오가 필요 없습니다.
    Installation Options: Deploy as instant app 앱이 인스턴트 환경을 지원하면 즉, 새 프로젝트를 생성할 때 인스턴트 앱 지원을 추가하거나 인스턴트 지원 기능 모듈을 하나 이상 만든다면 Deploy as instant app 옆의 체크박스를 선택하여 인스턴트 지원 모듈을 배포하도록 선택할 수 있습니다.
    Installation Options: 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: 매니페스트에 시작으로 표시한 활동을 시작합니다. 예:
      <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
      </intent-filter>
      
    • Specified Activity: 모듈 내의 특정 앱 활동을 시작합니다. 이 옵션을 선택하면 아래에 Activity 필드가 표시됩니다. 이 필드에 시작하려는 활동의 이름을 입력하거나 More를 클릭하여 목록에서 활동을 선택할 수 있습니다.
    • URL: 앱 매니페스트의 인텐트 필터와 일치하는 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 only - 자바 코드만 디버그합니다.
    • Detect Automatically - Android 스튜디오가 개발자의 프로젝트에 가장 적합한 디버그 유형을 자동으로 선택하게 합니다.
    • Native Only - 네이티브 C 또는 C++ 코드를 디버그합니다.
    • Dual (Java + Native) - 별도의 디버그 세션 두 개에서 자바 코드와 네이티브 코드를 디버그합니다.

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

    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 매니페스트에서 사용되는 고유한 애플리케이션 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 실행/디버그 구성: JUnit 페이지를 참조하세요.

    General 탭

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

    필드 설명
    모듈 이 구성을 적용할 모듈을 선택합니다.
    테스트

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

    • 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 only - 자바 코드만 디버그합니다.
    • Detect Automatically - Android 스튜디오가 개발자의 프로젝트에 가장 적합한 디버그 유형을 자동으로 선택하게 합니다.
    • Native Only - 네이티브 C 또는 C++ 코드를 디버그합니다.
    • Dual (Java + Native) - 별도의 디버그 세션 두 개에서 자바 코드와 네이티브 코드를 디버그합니다.

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

    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 매니페스트에서 사용되는 고유한 애플리케이션 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 한 번에 실행/디버그 구성의 인스턴스 하나만 실행하려면 이 옵션을 선택합니다. 이 옵션을 선택하면 같은 구성을 동시에 여러 개 실행할 수 없습니다. 기본값: 선택됨
    모듈 이 구성을 적용할 모듈을 선택합니다.
    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(웹 애플리케이션 아카이브) 디렉터리 경로를 입력합니다. ...을 클릭하여 대화상자에서 선택합니다.
    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 출시 전 작업 정의하기를 참고하세요.

    Wear OS 실행/디버그 구성

    Wear OS 정보 표시, 카드, 시계 화면 템플릿을 사용하면 가상 기기나 하드웨어 기기에서 Wear OS 앱을 실행하거나 디버그할 수 있습니다. 대부분의 템플릿 구성 옵션은 Android App 옵션과 동일합니다. 다음은 Wear OS 실행/디버그 구성에 적용되는 옵션입니다.

    • 모든 Wear 실행/디버그 구성의 경우, 구성을 적용할 특정 정보 표시 데이터 소스, 카드 또는 시계 화면(템플릿에 따라)을 선택해야 합니다. 일반적으로 이러한 각 항목은 코드의 클래스에 상응합니다.
    • Wear OS 정보 표시 실행/디버그 구성의 경우, 정보 표시 데이터 소스에서 제공하는 정보 표시 데이터를 배치할 슬롯을 선택해야 합니다. 시계 화면의 상단, 오른쪽, 하단, 왼쪽 또는 배경에 배치하도록 선택할 수 있습니다.
    • Wear OS 정보 표시 실행/디버그 구성의 경우, 정보 표시 데이터 소스에서 제공하는 정보 표시 데이터의 유형도 선택해야 합니다. 선택할 수 있는 유형은 선택한 정보 표시 데이터 소스에서 제공되는 유형이자 선택한 슬롯에서 지원되는 유형으로 제한됩니다. 정보 표시 데이터 유형 목록은 유형 및 필드를 참고하세요.

    또는 다음 이미지와 같이 노출 영역 선언 옆에 있는 여백 아이콘에서 이러한 노출 영역을 실행할 수도 있습니다.

    WatchFaceService 클래스 옆에 있는 여백의 실행 버튼
    그림 1. 여백 아이콘을 사용하여 직접 Wear OS 노출 영역을 실행합니다.