Android 스튜디오로 이전

프로젝트를 Android 스튜디오로 이전하려면 새 프로젝트 구조, 빌드 시스템, IDE 기능에 적응해야 합니다.

IntelliJ에서 이미 Gradle을 사용 중인 프로젝트를 이전하려면 Android 스튜디오에서 기존 프로젝트를 열면 됩니다. IntelliJ를 사용하고 있지만 프로젝트에서 Gradle을 사용하지 않는다면 프로젝트를 수동으로 준비해야 Android 스튜디오로 가져올 수 있습니다. 자세한 내용은 IntelliJ에서 이전 섹션을 참고하세요.

Android 스튜디오 기본 정보

다음은 Android 스튜디오로 이전하려고 준비할 때 알아야 하는 다른 환경과 Android 스튜디오의 주요 차이점입니다.

프로젝트 및 모듈 구성

Android 스튜디오는 IntelliJ IDEA IDE를 기반으로 합니다. 탐색, 코드 작성, 단축키와 같은 IDE 기본사항을 숙지하려면 Android 스튜디오 소개를 참고하세요.

Android 스튜디오는 코드를 프로젝트에 구성하며, 프로젝트에는 앱 소스 코드, 빌드 구성, 테스트 코드 등 Android 앱을 정의하는 모든 항목이 포함됩니다. 프로젝트는 별도의 Android 스튜디오 창에서 열립니다. 각 프로젝트에는 모듈이 하나 이상 포함되어 있고 이를 통해 프로젝트를 별개의 기능 단위로 분할할 수 있습니다. 모듈은 독립적으로 빌드, 테스트 및 디버그할 수 있습니다.

Android 스튜디오 프로젝트 및 모듈에 관한 자세한 내용은 프로젝트 개요를 참고하세요.

Gradle 기반 빌드 시스템

Android 스튜디오의 빌드 시스템은 Gradle을 기반으로 하며, Groovy 또는 Kotlin 스크립트로 작성된 빌드 구성 파일을 사용하므로 확장과 맞춤설정이 쉽습니다.

Gradle 기반 프로젝트는 Android 개발에 중요한 다음과 같은 기능을 제공합니다.

  • 바이너리 라이브러리(AAR) 지원. 더 이상 라이브러리 소스를 자신의 프로젝트에 복사할 필요가 없으며 종속 항목을 선언하기만 하면 라이브러리가 자동으로 다운로드되어 프로젝트에 병합됩니다. 여기에는 빌드 시에 리소스, 매니페스트 항목, Proguard 제외 규칙, 맞춤 린트 규칙 등의 자동 병합이 포함됩니다.
  • 빌드 변형 지원. 이를 통해 동일한 프로젝트에서 다양한 버전의 앱(예: 무료 버전, 프로 버전)을 빌드할 수 있습니다.
  • 간편한 빌드 구성 및 맞춤설정. 예를 들어 Git 태그에서 빌드의 일부로 버전 이름과 버전 코드를 가져올 수 있습니다.
  • Gradle은 IDE와 명령줄, 지속적 통합 서버(예: Jenkins)에서 사용할 수 있으므로 언제 어디서나 동일한 빌드를 제공할 수 있습니다.

Gradle 사용 및 구성에 관한 자세한 내용은 빌드 구성을 참고하세요.

종속 항목

Android 스튜디오의 라이브러리 종속 항목은 Maven 좌표가 있는 잘 알려진 로컬 소스 라이브러리 및 바이너리 라이브러리에 관해 Gradle 종속 항목 선언과 Maven 종속 항목을 사용합니다. 자세한 내용은 종속 항목 선언을 참고하세요.

IntelliJ에서 이전

IntelliJ 프로젝트가 Gradle 빌드 시스템을 사용할 경우 프로젝트를 직접 Android 스튜디오에 가져올 수 있습니다. IntelliJ 프로젝트가 Maven이나 다른 빌드 시스템을 사용할 경우 Android 스튜디오로 이전하기 전에 Gradle과 호환되도록 IntelliJ 프로젝트를 설정해야 합니다.

Gradle 기반 IntelliJ 프로젝트 가져오기

IntelliJ 프로젝트에서 이미 Gradle을 사용하고 있다면 다음 단계에 따라 Android 스튜디오에서 프로젝트를 엽니다.

  1. File > New > Import Project를 클릭합니다.
  2. IntelliJ 프로젝트 디렉터리를 선택한 후 OK를 클릭합니다. Android 스튜디오에서 프로젝트가 열립니다.

Gradle 기반이 아닌 IntelliJ 프로젝트 가져오기

IntelliJ 프로젝트에서 Gradle 빌드 시스템을 아직 사용하지 않는다면 프로젝트를 Android 스튜디오로 가져오는 옵션은 두 가지이며 다음 섹션에서 설명합니다.

  • 새로운 빈 Android 스튜디오 프로젝트를 만들고 기존 소스 코드를 새 프로젝트와 연결된 디렉터리에 복사합니다. 자세한 내용은 새로운 빈 프로젝트를 만들어 이전 섹션을 참고하세요.
  • 프로젝트에 새로운 Gradle 빌드 파일을 만들고 프로젝트와 새 빌드 파일을 Android 스튜디오로 가져옵니다. 자세한 내용은 맞춤 Gradle 빌드 파일을 만들어 이전 섹션을 참고하세요.

새로운 빈 프로젝트를 만들어 이전

새로운 빈 프로젝트를 만들어 새 디렉터리로 소스 파일을 복사하는 방법으로 프로젝트를 Android 스튜디오로 이전하려면 다음 단계를 따르세요.

  1. Android 스튜디오를 열고 File > New > New Project를 클릭합니다.
  2. 앱 프로젝트의 이름을 입력하고 생성할 위치를 지정한 다음 Next를 클릭합니다.
  3. 앱이 실행되는 폼 팩터를 선택하고 Next를 클릭합니다.
  4. Add No Activity를 클릭한 다음 Finish를 클릭합니다.
  5. Project 도구 창에서 화살표를 클릭하여 뷰 메뉴를 열고 Project 뷰를 선택하여 새로운 Android 스튜디오 프로젝트의 구조를 확인하고 탐색합니다. 뷰 변경 및 Android 스튜디오 프로젝트 구조에 관한 자세한 내용은 프로젝트 파일을 참고하세요.
  6. 새 프로젝트용으로 선택한 위치로 이동하고 코드, 단위 테스트, 계측 테스트, 리소스를 이전 프로젝트 디렉터리에서 새 프로젝트 구조의 올바른 위치로 이동합니다.
  7. Android 스튜디오에서 File > Project Structure를 클릭하여 Project Structure 대화상자를 엽니다. 왼쪽 창에서 앱 모듈이 선택되었는지 확인합니다.
  8. 프로젝트의 Properties 탭에서 필요한 내용을 수정합니다 (예: minSdk 또는 targetSdk 수정).
  9. Dependencies를 클릭하고 Gradle 종속 항목으로 프로젝트가 종속되어 있는 라이브러리를 추가합니다. 새로운 종속 항목을 추가하려면 Add 를 클릭하고 추가할 종속 항목 유형을 선택한 다음 화면의 안내를 따릅니다.
  10. OK를 클릭하여 변경사항을 저장합니다.
  11. Build > Make Project를 클릭하여 프로젝트 빌드를 테스트하고 필요한 경우 해결되지 않은 오류를 해결합니다.

맞춤 Gradle 빌드 파일을 만들어 이전

기존 소스 파일을 가리키도록 새로운 Gradle 빌드 파일을 만들어 프로젝트를 Android 스튜디오로 이전하려면 다음 단계를 따르세요.

  1. 시작하기 전에 프로젝트 파일을 별도의 위치에 백업합니다. 이전 과정에서 프로젝트의 콘텐츠가 수정되기 때문입니다.
  2. Groovy를 사용하는 경우 build.gradle이라는 프로젝트 디렉터리에, Kotlin 스크립트를 사용하는 경우 build.gradle.kts라는 프로젝트 디렉터리에 파일을 만듭니다. 이 파일에는 Gradle이 빌드를 실행하는 데 필요한 모든 정보가 들어 있습니다.

    기본적으로 Android 스튜디오는 프로젝트가 그림 1과 같이 구성되어 있을 것으로 예상합니다.

    그림 1. Android 앱 모듈의 기본 프로젝트 구조

    settings.gradle(Groovy의 경우) 또는 settings.gradle.kts(Kotlin 스크립트의 경우)의 pluginManagementdependencyResolutionManagement 블록에서 각각 플러그인과 종속 항목을 찾는 데 사용되는 저장소를 설정합니다.

    Groovy

      pluginManagement {
          repositories {
              google()
              mavenCentral()
              gradlePluginPortal()
          }
      }
      dependencyResolutionManagement {
          repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
          repositories {
              google()
              mavenCentral()
          }
      }
      rootProject.name = "Test App"
      include ':app'
      

    Kotlin

      pluginManagement {
          repositories {
              google()
              mavenCentral()
              gradlePluginPortal()
          }
      }
      dependencyResolutionManagement {
          repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS)
          repositories {
              google()
              mavenCentral()
          }
      }
      rootProject.name = "Test App"
      include(":app")
      

    경고: JCenter 저장소는 2021년 3월 31일에 읽기 전용으로 변경되었습니다. 자세한 내용은 JCenter 서비스 업데이트를 참고하세요.

    Android Gradle 플러그인은 몇 가지 기본 소스 세트를 프로젝트에 적용합니다. 이러한 소스 세트는 다양한 유형의 소스 파일을 저장하는 데 사용되는 디렉터리를 정의합니다. Gradle은 이러한 소스 세트를 사용하여 특정 파일 형식의 위치를 확인합니다. 기존 프로젝트가 기본값을 준수하지 않으면 파일을 적절한 위치로 이동하거나 기본 소스 세트를 변경하여 Gradle이 파일의 위치를 알도록 할 수 있습니다.

    Gradle 빌드 파일 설정 및 맞춤설정에 관한 자세한 내용은 빌드 구성을 참고하세요.

  3. 다음으로, 사용 중인 라이브러리 프로젝트를 확인합니다.

    Gradle을 사용하면 이러한 라이브러리를 더 이상 소스 코드 프로젝트로 추가할 필요가 없습니다. 대신 빌드 파일의 dependencies{} 블록에서 이를 참조할 수 있습니다. 그러면 빌드 시스템이 라이브러리 다운로드, 리소스에서 병합, 매니페스트 항목 병합을 포함하여 이러한 라이브러리를 대신 처리해줍니다. 다음 예에서는 여러 AndroidX 라이브러리의 선언 문을 빌드 파일의 dependencies{} 블록에 추가합니다.

    Groovy

    ...
    dependencies {
        implementation fileTree(dir: 'libs', include: ['*.jar'])
    
        // AndroidX libraries
        implementation 'androidx.core:core-ktx:1.12.0'
        implementation 'androidx.appcompat:appcompat:1.6.1'
        implementation 'androidx.cardview:cardview:1.0.0'
        implementation 'com.google.android.material:material:1.7.0'
        implementation 'androidx.gridlayout:gridlayout:1.0.0'
        implementation 'androidx.leanback:leanback:1.1.0-rc02'
        implementation 'androidx.mediarouter:mediarouter:1.7.0'
        implementation 'androidx.palette:palette-ktx:1.0.0'
        implementation 'androidx.recyclerview:recyclerview:1.3.2'
        implementation 'androidx.annotation:annotation:1.7.1'
    
        // Note: these libraries require that the Google repository has been declared
        // in the pluginManagement section of the top-level build.gradle file.
    }

    Kotlin

    ...
    dependencies {
        implementation(fileTree(mapOf("dir" to "libs", "include" to listOf("*.jar"))))
    
        // AndroidX libraries
        implementation("androidx.core:core-ktx:1.12.0")
        implementation("androidx.appcompat:appcompat:1.6.1")
        implementation("androidx.cardview:cardview:1.0.0")
        implementation("com.google.android.material:material:1.7.0")
        implementation("androidx.gridlayout:gridlayout:1.0.0")
        implementation("androidx.leanback:leanback:1.1.0-rc02")
        implementation("androidx.mediarouter:mediarouter:1.7.0")
        implementation("androidx.palette:palette-ktx:1.0.0")
        implementation("androidx.recyclerview:recyclerview:1.3.2")
        implementation("androidx.annotation:annotation:1.7.1")
    
        // Note: these libraries require that the Google repository has been declared
        // in the pluginManagement section of the top-level build.gradle.kts file.
    }
    라이브러리에 관한 올바른 선언 문을 확인하는 데 도움이 필요하면 Google Maven 저장소 또는 Maven Central을 검색하세요.
  4. IntelliJ에서 build.gradle 파일을 저장하고 프로젝트를 닫습니다. 프로젝트 디렉터리로 이동하여 프로젝트의 .idea 디렉터리 및 모든 IML 파일을 삭제합니다.
  5. Android 스튜디오를 시작하고 File > New > Import Project를 클릭합니다.
  6. 프로젝트 디렉터리를 찾고 직접 만든 build.gradle 또는 build.gradle.kts 파일을 선택한 후 OK를 클릭하여 프로젝트를 가져옵니다.
  7. Build > Make Project를 클릭하고 프로젝트를 빌드하여 빌드 파일을 테스트하고 오류가 있을 경우 해결합니다.

다음 단계

프로젝트를 Android 스튜디오로 이전했다면 앱 빌드 및 실행을 참고하여 Gradle로 빌드하고 Android 스튜디오에서 앱을 실행하는 방법을 자세히 알아보세요.

프로젝트와 워크플로에 따라 버전 제어, 종속 항목 관리, Android 스튜디오 구성에 관해서도 알아보는 것이 좋습니다. Android 스튜디오 사용을 시작하려면 Android 스튜디오 소개를 읽어보세요.

버전 제어 구성

Android 스튜디오는 Git, Mercurial, Subversion을 비롯하여 다양한 버전 제어 시스템을 지원합니다. 다른 버전 제어 시스템은 플러그인을 통해 추가할 수 있습니다.

앱이 이미 소스 제어를 받고 있다면 Android 스튜디오에서 이를 사용 설정해야 할 수 있습니다. VCS 메뉴에서 Enable Version Control Integration을 클릭하고 적절한 버전 제어 시스템을 선택합니다.

앱이 소스 제어를 받고 있지 않다면 앱을 Android 스튜디오로 가져온 후 이를 구성할 수 있습니다. Android 스튜디오 VCS 메뉴 옵션을 사용하여 원하는 버전 제어 시스템에 VCS를 지원하고, 저장소를 만들고, 새 파일을 버전 제어로 가져오고, 기타 버전 제어 작업을 실행합니다.

  1. Android 스튜디오의 VCS 메뉴에서 Enable Version Control Integration을 클릭합니다.
  2. 메뉴에서 프로젝트 루트에 연결할 버전 제어 시스템을 선택한 다음 OK를 클릭합니다. 이제 선택한 시스템에 따라 VCS 메뉴에 여러 가지 버전 제어 옵션이 표시됩니다.

참고: File > Settings > Version Control 메뉴 옵션을 사용하여 버전 제어를 설정 및 수정할 수도 있습니다.

버전 제어 작업에 관한 자세한 내용은 IntelliJ의 버전 제어 참조를 참고하세요.

앱 서명

이전에 디버그 인증서를 사용한 경우 가져오기 프로세스 중에 감지될 수 있습니다. 이 경우 Android 스튜디오는 해당 인증서를 계속 참조합니다. 그러지 않은 경우 디버그 구성은 알려진 비밀번호 및 $HOME/.android/debug.keystore에 알려진 비밀번호가 있는 기본 키와 함께 Android 스튜디오에서 생성된 디버그 키 저장소를 사용합니다. Android 스튜디오에서 프로젝트를 실행하거나 디버그할 때 이 디버그 구성을 자동으로 사용하도록 디버그 빌드 유형이 설정됩니다.

마찬가지로 가져오기 프로세스에서는 기존 출시 인증서를 감지할 수도 있습니다. 이전에 정의된 출시 인증서가 없는 경우 출시 서명 구성을 build.gradle 또는 build.gradle.kts 파일에 추가하거나 Build > Generate Signed APK 메뉴 옵션을 사용하여 Generate Signed APK Wizard를 엽니다. 앱 서명에 관한 자세한 내용은 앱 서명을 참고하세요.

Android 스튜디오의 최대 힙 크기 조정

기본적으로 Android Studio의 최대 힙 크기는 1280MB입니다. 대규모 프로젝트를 진행 중이거나 시스템에 RAM 용량이 많은 경우에는 최대 힙 크기를 늘려 성능을 개선할 수 있습니다.

소프트웨어 업데이트

Android 스튜디오는 Gradle 플러그인, 빌드 도구, SDK 도구와 별도로 업데이트됩니다. Android 스튜디오와 함께 사용할 버전을 지정할 수 있습니다.

기본적으로 Android 스튜디오는 새 안정화 버전이 출시될 때마다 자동 업데이트를 제공하지만, 업데이트를 더 자주 실행하거나 미리보기 또는 베타 버전을 받도록 선택할 수 있습니다.

Android 스튜디오 업데이트와 미리보기 및 베타 버전 사용에 관한 자세한 내용은 업데이트를 참고하세요.