Android 스튜디오 미리보기의 새로운 기능

이 페이지에는 Android 스튜디오 미리보기 버전에 도입된 새로운 기능이 나열되어 있습니다. 미리보기 빌드를 사용하면 Android 스튜디오의 최신 기능과 개선사항을 미리 체험해 볼 수 있습니다. 이 미리보기 버전을 다운로드할 수 있습니다. Android 스튜디오의 미리보기 버전을 사용하는 동안 문제가 발생하면 알려주시기 바랍니다. 버그 신고는 Android 스튜디오 개선에 도움이 됩니다.

카나리아 버전에는 활발히 개발 중인 최신 기능이 포함되어 있으며 가볍게 테스트됩니다. 개발에 카나리아 빌드를 사용할 수 있지만 기능이 추가되거나 변경될 수 있습니다. 출시 후보 (RC)는 Android 스튜디오의 다음 버전으로, 안정적인 출시가 거의 준비되었습니다. 다음 버전의 기능 세트가 안정화되었습니다. Android 스튜디오 버전 이름 지정에 관해 알아보려면 Android 스튜디오 출시 이름을 참고하세요.

각 미리보기 출시의 주목할 만한 수정사항 목록을 비롯한 Android 스튜디오 미리보기 출시의 최신 소식은 Android 스튜디오 블로그의 버전 업데이트를 참고하세요.

현재 버전의 Android 스튜디오

다음 표에는 현재 Android 스튜디오 버전과 각 채널이 나와 있습니다.

버전 채널
Android 스튜디오 Narwhal 3 기능 출시 | 2025.1.3 안정화 버전
Android Gradle 플러그인 8.13.0 안정화 버전
Android 스튜디오 Narwhal 4 기능 출시 | 2025.1.4 카나리아

Android Gradle 플러그인 미리보기와의 호환성

Android 스튜디오의 각 미리보기 버전은 해당 버전의 Android Gradle 플러그인 (AGP)과 함께 게시됩니다. 스튜디오의 미리보기 버전은 호환되는 안정화 버전의 AGP와 함께 작동해야 합니다. 하지만 AGP 미리보기 버전을 사용하는 경우 해당 스튜디오 미리보기 버전을 사용해야 합니다 (예: AGP 7.2.0-alpha07이 적용된 Android 스튜디오 Chipmunk Canary 7). 서로 다른 버전을 사용하려고 하면 (예: Android 스튜디오 Chipmunk 베타 1과 AGP 7.2.0-alpha07) 동기화가 실패하여 해당 버전의 AGP로 업데이트하라는 메시지가 표시됩니다.

Android Gradle 플러그인 API 지원 중단 및 삭제에 관한 자세한 내용은 Android Gradle 플러그인 API 업데이트를 참고하세요.

스튜디오 실험실

스튜디오 Labs를 사용하면 안정적인 버전의 Android 스튜디오에서 최신 AI 실험 기능을 사용해 볼 수 있으므로 개발 워크플로에 Google의 AI 지원 기능을 더 빠르게 통합할 수 있습니다. 자세한 내용은 Studio Labs를 참고하세요.

다음은 현재 스튜디오 Labs에서 사용할 수 있는 기능입니다.

기능 설명 문서
Compose 미리보기 생성 Gemini는 파일의 특정 컴포저블 또는 모든 컴포저블에 대해 미리보기 매개변수의 모의 데이터를 포함한 Compose 미리보기를 자동으로 생성할 수 있습니다. Compose 미리보기 생성
UI 변환 자연어를 사용하여 Compose 미리보기 패널에서 직접 앱 UI를 업데이트합니다. UI 변환

Android 스튜디오 Narwhal 4 기능 출시 | 2025.1.4

다음은 Android 스튜디오 Narwhal 4 기능 출시 | 2025.1.4의 새로운 기능입니다.

이 버전의 Android 스튜디오에서 수정된 사항을 확인하려면 해결된 문제를 참고하세요.

Android 스튜디오 여정

Android 스튜디오용 Journeys를 사용하면 자연어를 사용하여 각 테스트(여정이라고 함)의 단계와 어설션을 설명할 수 있으므로 엔드 투 엔드 테스트를 쉽게 작성하고 유지관리할 수 있습니다. Gemini의 시각 및 추론 기능을 활용하면 자연어로 작성된 단계가 Gemini가 앱에서 실행하는 작업으로 변환되므로 여정을 쉽게 작성하고 이해할 수 있습니다. 또한 더 복잡한 어설션을 작성하고 설명할 수 있으며, Gemini는 기기에서 확인한 내용을 기반으로 이를 평가하여 여정이 통과하는지 실패하는지 판단합니다.

또한 Gemini는 목표를 충족하기 위해 실행할 작업을 추론하므로 앱의 레이아웃이나 동작이 미묘하게 변경되어도 여정이 더 탄력적으로 대응할 수 있습니다. 따라서 다양한 버전의 앱과 다양한 기기 구성에 대해 실행할 때 불안정한 테스트가 줄어듭니다.

Android 스튜디오에서 바로 로컬 또는 원격 Android 기기에 대해 여정을 작성하고 실행합니다. IDE는 여정을 작성하기 위한 새로운 편집기 환경과 Gemini의 추론 및 여정 실행을 더 잘 파악할 수 있는 풍부한 결과를 제공합니다.

백업 및 동기화

이제 Google 또는 JetBrains 계정을 사용하여 Android 스튜디오 설정을 클라우드 스토리지에 백업할 수 있습니다. 이렇게 하면 키맵, 코드 편집기 설정, 시스템 설정 등의 설정을 동기화할 수 있습니다. 시작하려면 다음 중 하나를 수행하세요.

  • Android 스튜디오에서 프로젝트를 연 후 IDE 오른쪽 상단에 있는 아바타를 클릭하고 로그인을 클릭하여 Google 계정에 로그인합니다.

    1. 표시되는 대화상자의 메시지에 따라 Android 스튜디오가 Google 계정 스토리지에 액세스하도록 승인하는 체크박스를 선택합니다.
    2. 메시지에 따라 Android 스튜디오를 승인합니다.
  • 설정 > 백업 및 동기화로 이동합니다.

    1. Android 스튜디오 설치 간에 앱 데이터를 동기화하려면 Google을 선택하여 Google 계정 스토리지를 사용합니다. 또는 JetBrains 계정을 사용하여 IntelliJ 및 Android 스튜디오 설치 간에 앱 데이터를 동기화할 수 있습니다.
    2. 메시지에 따라 Android 스튜디오가 원하는 계정의 저장소에 액세스하도록 승인한 후 Android 스튜디오로 돌아갑니다.
    3. 설정 > 백업 및 동기화 페이지에서 계정에 동기화할 앱 데이터 카테고리를 검토할 수 있습니다.
    4. 백업 및 동기화를 사용 중지하려면 이 기능을 사용 설정하는 체크박스를 선택 해제합니다.

선택한 기기에 이미 동기화된 데이터가 있는 경우 Android 스튜디오에서는 원격 저장소에서 설정을 다운로드하거나 (기본 옵션) 로컬 설정을 업로드하여 원격 저장소에 동기화된 설정을 덮어쓸 수 있습니다.

비정상 종료에 대한 추천 해결 방법

Android 스튜디오 Meerkat 기능 출시에서는 App Quality Insights 도구 창에 보고된 비정상 종료에 대한 Gemini 통계를 출시했습니다. 이제 Android 스튜디오에서 Gemini를 사용하여 소스 코드와 함께 비정상 종료 데이터를 분석하여 잠재적인 수정사항을 제안할 수 있습니다. App Quality Insights 도구 창에서 비정상 종료를 선택한 후 통계 탭으로 이동하고 Gemini가 비정상 종료에 대한 통계를 생성한 후 수정 제안을 클릭합니다. 그러면 Gemini가 편집기 차이 탭에서 검토하고 수락할 수 있는 제안된 코드 변경사항을 생성합니다.

프로젝트 뷰로 새 프로젝트를 여는 새로운 설정

새 프로젝트가 기본적으로 프로젝트 뷰에서 열리도록 하는 새로운 설정이 있습니다. 이 설정을 사용 설정하려면 File (macOS의 경우 Android Studio) > Settings > Advanced Settings > Project View로 이동하여 Set Project view as the default를 선택합니다.

Compose 미리보기 스크린샷 테스트 도구

Compose 미리보기 스크린샷 테스트 도구를 사용하여 Compose UI를 테스트하고 회귀를 방지하세요. 새 도구를 사용하면 앱의 UI 변경사항을 시각적으로 감지할 수 있는 HTML 보고서를 생성할 수 있습니다. Compose 미리보기 스크린샷 테스트에서 자세히 알아보세요.

삽입된 Layout Inspector 구성요소 트리 개선

이제 삽입된 Layout Inspector에서 구성요소 트리와 상호작용하는 것이 몇 가지 주요 개선사항 덕분에 더 직관적이고 효율적입니다. 이 업데이트는 워크플로를 간소화하고 Compose UI 구조에 관한 명확한 통계를 제공하도록 설계되었습니다.

  1. 가로 스크롤: 이제 구성요소 트리 내에서 가로로 스크롤할 수 있으므로 컨텍스트를 잃지 않고 넓거나 깊게 중첩된 레이아웃을 더 쉽게 탐색하고 검사할 수 있습니다.
  2. 선택 시 자동 스크롤: 이제 구성요소 트리에서 항목을 선택하면 선택한 항목이 깔끔하게 포커스되도록 가로 및 세로로 뷰가 자동으로 스크롤됩니다. 이렇게 하면 관심 있는 요소가 항상 중앙에 표시됩니다.
  3. 관계 시각화 개선: 노드 관계를 이해하기 위한 명시적인 시각적 신호를 제공하기 위해 구성요소 트리 내 지원 라인을 개선했습니다. 이제 점선으로 상위 노드와 하위 노드 간의 호출 스택 관계가 명확하게 표시되어 프로그래매틱 연결을 더 효과적으로 추적할 수 있습니다. 실선은 트리 내의 다른 모든 표준 상위-하위 관계를 계속 나타냅니다.

이러한 개선사항은 더 원활하고 효율적인 디버깅 환경을 제공하여 UI를 빠르게 이해하고 개선할 수 있도록 지원하는 데 목적이 있습니다.

이제 삽입된 Layout Inspector의 구성요소 트리에서 선택 시 가로 스크롤과 자동 스크롤을 지원합니다.
삽입된 Layout Inspector 구성요소 트리 개선

로컬 LLM 사용

Android 스튜디오 Narwhal 4 기능 드롭을 사용하면 IDE의 AI 기능을 지원하는 LLM을 선택할 수 있습니다.

Gemini 및 로컬 LLM 옵션이 있는 모델 선택기를 보여주는 Android 스튜디오 Gemini 채팅 창
Android 스튜디오의 모델 선택기

LLM은 로컬 머신에 있어야 합니다. 이는 인터넷 연결이 제한적이거나 AI 모델 사용에 관한 제한이 있거나 오픈소스 연구 모델을 실험하려는 경우에 유용합니다.

로컬 LLM은 Android 스튜디오에 내장된 LLM 지원의 대안을 제공합니다. 하지만 Android 스튜디오의 Gemini는 Android에 맞게 조정되어 Android 스튜디오의 모든 기능을 지원하므로 일반적으로 최고의 Android 개발 환경을 제공합니다. Gemini를 사용하면 무료 기본 모델 또는 유료 Gemini API 키로 액세스하는 모델 등 Android 개발 작업을 위한 다양한 모델 중에서 선택할 수 있습니다.

로컬 LLM을 지원하려면 로컬 컴퓨터에 LM Studio 또는 Ollama와 같은 LLM 제공업체를 선택한 호환 모델과 함께 설치해야 합니다.

Android SDK 업그레이드 어시스턴트에서 이제 Android 16 / API 36 지원

Android 15 / API 35에서 Android 16 / API 36으로의 이전이 Android SDK 업그레이드 어시스턴트에 추가되었습니다. 이전하는 데 도움이 필요하면 Tools > Android SDK Upgrade Assistant로 이동하세요.

Android Gradle 플러그인 9.0

Android Gradle 플러그인 9.0은 AGP의 새로운 주요 버전으로, API 및 동작 변경사항이 적용됩니다.

Android Gradle 플러그인 9.0.0-alpha02로 업데이트하려면 Android 스튜디오 Narwhal 4 Feature Drop | 2025.1.4에서 Android Gradle 플러그인 업그레이드 어시스턴트를 사용하세요.

AGP 업그레이드 어시스턴트는 적절한 경우 프로젝트를 업그레이드할 때 기존 동작을 유지하여 AGP 9.0의 새로운 기본값을 모두 채택할 준비가 되지 않았더라도 AGP 9.0을 사용하도록 프로젝트를 업그레이드할 수 있습니다.

호환성

Android Gradle 플러그인 9.0.0-alpha02에서 지원하는 최대 Android API 수준은 API 수준 36입니다.

Android Gradle 플러그인 9.0.0-alpha02에는 Gradle 9.0.0이 필요합니다.

동작 변경사항

Android Gradle 플러그인 9.0에는 다음과 같은 새로운 동작이 있습니다.

동작 권장사항
Android Gradle 플러그인 9.0은 기본적으로 NDK 버전 r28c을 사용합니다. 사용할 NDK 버전을 명시적으로 지정하는 것이 좋습니다.
Android Gradle 플러그인 9.0에서는 기본적으로 라이브러리 소비자가 동일하거나 더 높은 컴파일 SDK 버전을 사용해야 합니다. 라이브러리를 사용할 때는 동일하거나 더 높은 컴파일 SDK를 사용하세요. 이렇게 할 수 없거나 게시하는 라이브러리의 소비자가 전환할 시간을 더 주려면 AarMetadata.minCompileSdk을 명시적으로 설정하세요.

AGP 9.0에는 다음 Gradle 속성의 기본값에 대한 업데이트가 포함되어 있습니다. 이렇게 하면 업그레이드할 때 AGP 8.13 동작을 유지할 수 있습니다.

속성 함수 AGP 8.13에서 AGP 9.0으로 변경 권장사항
android.uniquePackageNames 각 라이브러리에 고유한 패키지 이름이 있어야 합니다. falsetrue 프로젝트 내 모든 라이브러리에 고유한 패키지 이름을 지정합니다. 그렇게 할 수 없는 경우 이전하는 동안 이 플래그를 사용 중지하면 됩니다.
android.dependency.useConstraints 구성 간 종속 항목 제약 조건의 사용을 제어합니다.
AGP 9.0의 기본값은 애플리케이션 기기 테스트 (AndroidTest)에서만 제약 조건을 사용하는 false입니다. true로 설정하면 8.13 동작으로 되돌아갑니다.
truefalse 필요하지 않은 경우 종속 항목 제약 조건을 모든 곳에서 사용하지 마세요. 이 플래그의 새로운 기본값을 수락하면 프로젝트 가져오기 프로세스에서 최적화가 사용 설정되어 Android 라이브러리 하위 프로젝트가 많은 빌드의 가져오기 시간이 줄어듭니다.
aandroid.enableAppCompileTimeRClass 최종이 아닌 R 클래스에 대해 애플리케이션에서 코드를 컴파일하여 애플리케이션 컴파일을 라이브러리 컴파일과 일치시킵니다.
이렇게 하면 증분성이 개선되고 향후 리소스 처리 흐름의 성능 최적화가 가능해집니다.
falsetrue 많은 프로젝트에서 소스 변경 없이 새로운 동작을 채택할 수 있습니다. R 클래스 필드가 switch 사례와 같이 상수가 필요한 곳에 사용되는 경우 연결된 if 문을 사용하도록 리팩터링합니다.
android.sdk.defaultTargetSdkToCompileSdkIfUnset 컴파일 SDK 버전을 앱 및 테스트의 타겟 SDK 버전의 기본값으로 사용합니다.
이 변경사항 이전에는 타겟 SDK 버전이 기본적으로 최소 SDK 버전으로 설정되었습니다.
falsetrue 앱과 테스트의 타겟 SDK 버전을 명시적으로 지정합니다.
android.onlyEnableUnitTestForTheTestedBuildType 테스트된 빌드 유형의 단위 테스트 구성요소만 만듭니다.
기본 프로젝트에서 이전 동작은 디버그 또는 출시를 위해 단위 테스트를 실행하는 것이었지만 이제 디버그를 위한 단일 단위 테스트가 실행됩니다.
falsetrue 디버그와 출시 모두에서 테스트를 실행할 필요가 없는 프로젝트의 경우 변경할 필요가 없습니다.
android.proguard.failOnMissingFiles AGP DSL에 지정된 보관 파일이 디스크에 없으면 오류와 함께 빌드가 실패합니다. 이 변경사항이 적용되기 전에는 파일 이름의 오타로 인해 파일이 자동으로 무시되었습니다. falsetrue 잘못된 ProGuard 파일 선언 삭제
android.r8.optimizedResourceShrinking R8이 클래스와 Android 리소스를 함께 고려하여 더 적은 Android 리소스를 유지하도록 허용합니다. falsetrue 프로젝트의 보관 규칙이 이미 완료된 경우 변경할 필요가 없습니다.
android.r8.strictFullModeForKeepRules 클래스가 유지될 때 기본 생성자를 암시적으로 유지하지 않아 R8이 더 적게 유지할 수 있습니다. 즉, -keep class A는 더 이상 -keep class A { <init>(); }
를 의미하지 않습니다.
falsetrue 프로젝트의 보관 규칙이 이미 완료된 경우 변경할 필요가 없습니다.

기본 생성자를 유지해야 하는 모든 경우에 프로젝트의 유지 규칙에서 -keep class A-keep class A { <init>(); }로 바꿉니다.
android.defaults.buildfeatures.shaders 모든 하위 프로젝트에서 셰이더 컴파일을 사용 설정합니다. truefalse 컴파일할 셰이더가 포함된 하위 프로젝트에서만 셰이더 컴파일을 사용 설정하려면 해당 프로젝트의 Gradle 빌드 파일에서 다음을 설정하세요.
android {
  buildFeatures {
    shaders = true
  }
}

삭제된 기능

Android Gradle 플러그인 9.0에서는 다음 기능이 삭제됩니다.

DSL 변경

Android Gradle 플러그인 9.0에는 다음과 같은 주요 DSL 변경사항이 있습니다.

DSL 삭제됨

Android Gradle 플러그인 9.0에서 다음이 삭제됩니다.

Gradle 속성 삭제

다음 Gradle 속성은 기본적으로 사용 설정된 기능을 전역적으로 사용 중지하는 방법으로 처음 추가되었습니다.

이러한 기능은 AGP 8.0 이하에서 기본적으로 사용 중지되었습니다. 더 효율적인 빌드를 위해 이러한 기능을 사용하는 하위 프로젝트에서만 사용 설정하세요.

속성 함수 교체
android.defaults.buildfeatures.aidl 모든 하위 프로젝트에서 AIDL 컴파일을 사용 설정합니다. 다음 속성을 해당 프로젝트의 Gradle 빌드 파일에 설정하여 AIDL 소스가 있는 하위 프로젝트에서만 AIDL 컴파일을 사용 설정합니다.
android {
  buildFeatures {
    aidl = true
  }
}
AIDL 소스가 포함된 각 하위 프로젝트의 Gradle 빌드 파일
android.defaults.buildfeatures.renderscript 모든 하위 프로젝트에서 RenderScript 컴파일 을 사용 설정합니다. 다음 속성을 해당 프로젝트의 Gradle 빌드 파일에 설정하여 renderscript 소스가 있는 하위 프로젝트에서만 renderscript 컴파일을 사용 설정합니다.
android {
  buildFeatures {
    renderScript = true
  }
}

삭제된 API

Android Gradle 플러그인 9.0에서 다음이 삭제됩니다.

  • 지원 중단되고 사용 중지된 BaseExtension.registerTransform API. AGP 4.2 이하에서 실행을 타겟팅하는 동안 최신 AGP 버전에 대해 컴파일할 수 있도록만 유지되었습니다.

강제 적용된 Gradle 속성

다음 Gradle 속성을 설정하면 AGP 9.0에서 오류가 발생합니다.

Android Gradle 플러그인 업그레이드 어시스턴트는 이러한 속성을 사용하는 프로젝트를 AGP 9.0으로 업그레이드하지 않습니다.

속성 함수
android.r8.integratedResourceShrinking 이제 리소스 축소는 항상 R8의 일부로 실행되며 이전 구현은 삭제되었습니다.