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

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

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

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

현재 버전의 Android 스튜디오

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

버전 채널
Android 스튜디오 Narwhal 기능 출시 | 2025.1.2 안정화 버전
Android Gradle 플러그인 8.12.0 안정화 버전
Android 스튜디오 Narwhal 3 기능 출시 | 2025.1.3 RC
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를 생성하고, UI 버그를 디버그하고, 앱의 아키텍처를 문서화하는 데 도움이 되도록 질문에 이미지를 첨부하세요. 이미지 첨부
파일 첨부 Gemini가 질문의 컨텍스트를 더 잘 이해하고 업데이트해야 하는 코드를 식별할 수 있도록 쿼리에 파일을 첨부하세요. 파일 첨부하기
UI 변환 자연어를 사용하여 Compose 미리보기 패널에서 직접 앱 UI를 업데이트합니다. UI 변환

Android 스튜디오 Narwhal 3 기능 출시 | 2025.1.3

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

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

크기 조절 가능한 Compose 미리보기

이제 Compose 미리보기에서 동적 크기 조정을 지원하므로 UI가 다양한 화면 크기에 어떻게 적응하는지 시각적으로 즉시 확인할 수 있습니다.

이 기능을 사용하려면 툴바에서 보기 옵션을 변경하여 Compose 미리보기에서 포커스 모드를 입력하세요.

Compose 미리보기 집중 모드
Compose 미리보기 포커스 모드

이제 가장자리를 드래그하여 미리보기 창의 크기를 조절할 수 있습니다.

가장자리를 드래그하여 미리보기 창의 크기를 조절합니다.

또는 미리보기 크기를 조절한 후에 표시되는 크기 조절 툴바를 사용할 수 있습니다.

크기 조절 툴바를 사용하여 미리보기 창의 크기를 조절합니다.

새 크기를 새 Preview 주석으로 저장하려면 마우스 오른쪽 버튼 클릭 메뉴를 사용하세요.

Compose 크기 조절 가능한 미리보기 새 크기 저장
Compose 크기 조절 가능한 미리보기 새 크기 저장

동적 크기 조절 기능을 사용하면 모든 화면 크기에서 멋지게 보이는 UI를 만들 수 있습니다.

해당 모듈 아래에 빌드 파일을 표시하는 Android 뷰 설정

Android 뷰에서 해당 모듈 아래에 빌드 파일을 표시하는 새로운 설정이 있습니다. 이 뷰는 모듈이 많은 프로젝트를 작업할 때 유용합니다. 뷰를 사용 설정하려면 Android 뷰 옆에 있는 옵션 메뉴를 엽니다. 그런 다음 Appearance > Display Build Files In Module을 선택합니다.

Android 뷰: 모듈의 빌드 파일
Android 뷰에서 해당 모듈 아래에 빌드 파일을 볼 수 있는 옵션입니다.

Android 스튜디오의 Google Play 정책 통계

이제 Android 스튜디오에 앱에 영향을 미칠 수 있는 Google Play 정책에 관한 풍부한 인사이트와 안내가 포함됩니다. 이 정보를 통해 처음부터 더 안전한 앱을 빌드하여 출시 프로세스를 방해하고 나중에 더 많은 시간과 리소스를 들여 수정해야 하는 문제를 예방할 수 있습니다.

Android 스튜디오 Narwhal 3 기능 출시부터 Google Play 정책 통계를 린트 검사로 확인할 수 있습니다. 이러한 린트 검사에서는 다음 정보를 제공합니다.

  • 정책 개요입니다.
  • 자주 발생하는 문제를 피하기 위한 권장사항과 주의사항
  • 공식 정책과 유용한 정보 및 리소스를 확인할 수 있는 Play 정책 페이지로 연결되는 링크

이 기능은 앱 제출 환경을 원활하게 할 수 있도록 유용한 사전 검토 가이드를 제공하기 위한 것입니다. 모든 정책을 다루지 않으며 최종 앱 검토 결정을 제공하지 않습니다. 자세한 내용은 정책 센터에서 전체 정책을 검토하세요. 또한 이 통합을 적극적으로 발전시키고 개선하고 있습니다. 의견이 있으면 신고해 주세요.

프로젝트에 Play 정책 통계가 있는지 확인하려면 코드 > Play 정책 통계 검사…로 이동하세요. 통계는 '문제' 도구 창에 나열되며 해당 파일에 린트 경고로도 표시됩니다.

Android 스튜디오의 Google Play 정책 통계
Android 스튜디오 Narwhal 3 기능 출시의 Google Play 정책 통계

앱 백업 및 복원으로 테스트 및 개발

Android 백업 및 복원이 앱에서 제대로 작동하도록 하는 것은 사용자가 새 기기로 전환하거나 클라우드에서 복원한 후에도 앱에 계속 참여하도록 하는 데 매우 중요합니다. 하지만 앱에서 데이터 백업 및 복원이 작동하는지 테스트하기는 어려울 수 있습니다.

Android 스튜디오 Narwhal은 앱의 백업을 생성하고 다른 기기에 복원하는 방법을 제공합니다. 이는 기기 간 또는 클라우드 백업에서 앱 데이터를 복원할 때 앱이 예상대로 작동하는지 테스트하거나 앱을 개발하고 디버그하는 데 필요한 데이터로 테스트 기기를 더 빠르게 설정하려는 경우에 유용합니다.

백업 생성

백업 파일을 생성하려면 다음 단계를 따르세요.

  1. 연결된 기기에 앱의 디버그 버전 배포
  2. 다음 작업 중 하나를 사용하여 백업을 생성합니다.
    • 실행 중인 기기 창에서 툴바의 앱 데이터 백업 작업을 클릭합니다.
    • 기본 메뉴 바에서 Run > Backup App Data를 선택합니다.
    • 기기 탐색기 > 프로세스 탭에서 앱 프로세스를 마우스 오른쪽 버튼으로 클릭하고 앱 데이터 백업을 선택합니다.
  3. 대화상자가 나타나면 다음을 수행합니다.
    • 백업을 생성할 앱의 애플리케이션 ID를 확인합니다.
      • 기기 간, 클라우드 또는 클라우드 (암호화되지 않음) 백업을 생성할지 선택합니다.
    • 저장할 백업의 이름과 위치를 확인합니다. 기본적으로 백업은 현재 Android 스튜디오 프로젝트의 루트 디렉터리에 저장됩니다.
      앱의 백업을 생성합니다.
  4. Android 스튜디오에서 앱을 중지할 수 있는지 묻는 메시지가 표시되면 확인을 클릭합니다. 백업을 생성하려면 Android 스튜디오에서 앱 프로세스를 중지해야 합니다.

프로젝트 > Android 도구 창의 백업 파일 노드에서 생성한 백업을 볼 수 있습니다.

백업 유형

앱의 다양한 유형의 백업을 생성할 수 있습니다. 백업을 생성할 때 테스트하려는 시나리오와 관련된 백업 유형을 선택하세요.

  • 기기 간: 기기 간 전송 중에 생성된 백업과 유사한 앱 백업을 생성합니다. 기기 간 전송에서는 앱의 백업 데이터가 USB나 Wi-Fi 등을 통해 다른 기기로 직접 전송됩니다.
  • 클라우드: 사용자의 Google 계정 스토리지에 저장된 것과 유사한 앱의 백업을 생성합니다. 사용자가 새 기기를 설정할 때 클라우드 백업에서 복원하도록 선택할 수 있습니다.
  • 클라우드 (암호화되지 않음): 클라이언트 측 암호화가 사용 설정되지 않은 기기에서 사용자의 Google 계정 저장소에 저장된 것과 유사한 앱 백업을 생성합니다.

참고: 이 기능을 사용하여 클라우드, 클라우드 (암호화되지 않음) 또는 기기 간 백업을 테스트하는 경우 실제 백업 흐름과 달리 생성된 백업이 클라우드나 다른 기기로 전송되지 않습니다. 앱이 클라우드에 저장되거나 다른 기기로 전송되는 것처럼 앱의 백업을 생성합니다. 모든 백업 유형에 대해 생성된 백업은 프로젝트 > Android 도구 창의 백업 파일에 있을 수 있습니다.

앱 데이터 복원

앱 데이터를 복원하려면 다음 단계를 따르세요.

  1. 연결된 기기에 앱을 배포합니다. 앱의 애플리케이션 ID는 기기에 복원하려는 백업 파일과 동일해야 합니다.
  2. 다음 작업 중 하나로 이동하여 클릭합니다.
    • Running Device 창에서 툴바의 Restore App Data 작업을 클릭하고 최근 기록에서 백업 파일을 선택하거나 Browse를 클릭합니다.
    • 기본 메뉴 바에서 Run > Restore App Data로 이동합니다.
    • 기기 탐색기 > 프로세스 탭에서 앱 프로세스를 마우스 오른쪽 버튼으로 클릭하고 앱 데이터 복원을 선택합니다.
    • Project > Android 도구 창에서 Backup Files 노드 아래의 백업을 마우스 오른쪽 버튼으로 클릭하고 Restore App Data를 선택합니다.
  3. 해당하는 경우 최근 기록에서 백업을 선택하거나 찾아보기를 클릭하여 로컬 저장소에서 복원할 백업 파일을 선택합니다.

또는 실행 구성의 일부로 백업 파일을 포함하여 앱을 배포할 때 백업 파일에서 앱 데이터를 복원할 수도 있습니다. 이렇게 하려면 다음을 실행하세요.

  1. 기본 메뉴 바에서 Run > Edit Configurations로 이동합니다.
  2. 앱 실행 구성을 선택하고 복원 옵션으로 이동합니다.
    실행 구성에서 옵션을 복원합니다.
  3. 백업에서 앱을 복원하려면 앱 상태 복원 옆의 체크박스를 선택합니다.
  4. 최근 기록에서 백업 파일을 선택하거나 로컬 저장소에서 백업 파일을 찾아 선택합니다.
  5. 새 앱 설치 시에만 앱 데이터를 복원하려면 새 APK 설치 시에만 복원 옆의 체크박스를 선택합니다. 이 옵션은 새 테스트 기기에 배포하고 디버깅 및 앱 개발에 도움이 되도록 데이터를 복원하려는 경우에 유용합니다.
  6. OK를 클릭하여 실행 구성을 저장합니다.
  7. 실행 구성을 사용하여 앱을 배포하여 연결된 기기에 앱 데이터를 복원하는 것을 테스트합니다.

Proguard 검사

이제 Android 스튜디오에는 잘못 작성된 ProGuard 규칙이나 R8 최적화를 방지하는 규칙을 방지하는 검사가 포함됩니다. -keep class **.*와 같은 지나치게 광범위한 유지 규칙과 dontshrink, -dontoptimize와 같은 소비자 Proguard 규칙 구성은 이제 Studio IDE에서 경고를 트리거합니다. 코드 축소를 허용하는 적절한 keep 규칙을 만들려면 규칙의 범위를 특정 패키지로 지정하고 유지하려는 항목을 명시적으로 지정하세요.

프로젝트 수준 컨텍스트의 AGENT.md 파일

이제 프로젝트에 AGENT.md 파일을 포함할 수 있습니다. 이러한 파일은 프로젝트별 안내, 코딩 스타일 규칙, 기타 지침을 Gemini에 컨텍스트로 제공하는 Markdown 파일입니다.

Gemini는 프로젝트에서 AGENT.md라는 이름의 파일에 있는 요청 사항을 자동으로 검색하고 적용합니다. AGENT.md 파일이 없으면 Gemini는 대신 GEMINI.md 파일을 대체로 찾습니다.

자동 동기화를 사용 중지하는 새로운 설정

이제 Android 스튜디오에서 기본 자동 동기화 모드 (예: 프로젝트를 열 때 동기화가 자동으로 실행됨)에서 알림이 있는 새로운 수동 동기화 모드로 전환하는 설정을 제공합니다. 기본 동작은 여전히 자동 동기화입니다. 수동 동기화로 전환하려면 File (macOS의 경우 Android 스튜디오) > Settings > Build, Execution, Deployment > Build Tools로 이동하여 Project Sync modeManual Sync with reminders로 설정합니다.

스튜디오 실험실에서 전환되는 기능

다음 스튜디오 실험실 실험 기능은 Narwhal 3 기능 출시부터 안정화되었습니다.

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의 일부로 실행되며 이전 구현은 삭제되었습니다.