Android App Bundle 정보

Android App Bundle은 앱의 모든 컴파일된 코드 및 리소스를 포함하며 APK 생성 및 서명을 Google Play에 맡기는 게시 형식입니다.

Google Play는 App Bundle을 사용하여 각 기기 설정에 맞게 최적화된 APK를 생성하고 제공합니다. 따라서 앱을 실행하기 위해서는 특정 기기에 필요한 코드와 리소스만 다운로드하면 됩니다. 개발자는 더 이상 다양한 기기에 대한 지원을 최적화하기 위해 여러 개의 APK를 빌드, 서명 및 관리할 필요가 없으며, 사용자는 더 작고 최적화된 앱을 다운로드하게 됩니다.

대부분의 앱 프로젝트에서는 최적화된 APK 제공을 지원하는 App Bundle을 쉽게 빌드할 수 있습니다. 예를 들어 기존 규칙에 따라 앱의 코드 및 리소스를 구성했다면 Android 스튜디오 또는 명령줄을 사용하여 서명된 Android App Bundle을 빌드하고 Google Play에 업로드하세요. 그러면 최적화된 APK 제공 기능이 자동으로 실행됩니다.

App Bundle 형식을 사용하여 앱을 게시할 때 선택적으로 Play Feature Delivery를 활용할 수 있으며, 이 경우 기능 모듈을 앱 프로젝트에 추가할 수 있습니다. 이러한 모듈에는 지정한 조건에 따라 앱에만 포함되거나 나중에 런타임 시 Play Core 라이브러리를 사용한 다운로드에 사용할 수 있는 기능과 리소스가 포함됩니다.

App Bundle로 앱을 게시하는 게임 개발자는 Play Asset Delivery를 사용할 수 있습니다. 이는 대량의 게임 애셋을 전송하기 위한 Google Play의 솔루션으로, 개발자에게 고성능의 유연한 전송 방법을 제공합니다.

다음 동영상에서 Android App Bundle을 사용하여 앱을 게시해야 하는 이유를 간략하게 알아볼 수 있습니다.

압축 다운로드 크기 제한

Android App Bundle을 사용하여 게시하면 사용자가 가능한 한 가장 작은 다운로드로 앱을 설치할 수 있으며 압축 다운로드 크기 제한이 200MB로 증가합니다. 즉, 사용자가 앱을 다운로드할 때 앱을 설치하는 데 필요한 압축 APK의 총 크기(예: 기본 APK + 구성 APK)는 200MB 이하여야 합니다. 주문형 기능 모듈(및 구성 APK)을 다운로드하는 등 후속 다운로드에서도 이 같은 압축 다운로드 크기 제한을 충족해야 합니다. 애셋 팩은 이 크기 제한에 영향을 미치지 않지만 다른 크기 제한이 있습니다.

App Bundle을 업로드할 때 Play Console에서 앱 또는 주문형 기능의 다운로드 크기가 200MB를 초과하는 것으로 확인되면 오류가 발생합니다.

Android App Bundle은 APK 확장(*.obb) 파일을 지원하지 않는다는 점에 유의하시기 바랍니다. 따라서 App Bundle을 게시할 때 이 오류가 발생하면 다음 리소스 중 하나를 사용하여 압축된 APK 다운로드 크기를 줄입니다.

  • 각 구성 APK 유형에 enableSplit = true를 설정하여 모든 구성 APK를 사용 설정해야 합니다. 이렇게 하면 사용자가 기기에서 앱을 실행하는 데 필요한 코드와 리소스만 다운로드하게 됩니다.
  • 사용하지 않는 코드와 리소스를 삭제하여 앱 크기를 줄입니다.
  • 앱 크기를 추가로 줄일 수 있는 권장사항을 따릅니다.
  • 일부 사용자만 사용하는 기능의 경우 나중에 요청 시 앱에서 다운로드할 수 있는 기능 모듈로 변환하는 것이 좋습니다. 이 작업에는 앱 리팩터링이 일부 필요할 수 있으므로 위에 설명된 다른 방법을 먼저 시도해 봅니다.

기타 고려사항

다음은 현재 Android App Bundle로 앱을 빌드하거나 제공할 때 발생하는 알려진 문제입니다. 아래에 설명되지 않은 문제가 발생하면 버그를 신고해 주세요.

  • 사이드로드된 앱, 즉 Google Play 스토어를 사용하여 설치되지 않고 하나 이상의 필수 분할 APK가 누락된 앱의 부분 설치는 모든 Google 인증 기기 및 Android 10(API 수준 29) 이상을 실행하는 기기에서 실패합니다. Google Play 스토어를 통해 앱을 다운로드할 때 Google은 앱의 모든 필수 구성요소가 설치되어 있는지 확인합니다.
  • 리소스 테이블을 동적으로 수정하는 도구를 사용한다면 App Bundle에서 생성된 APK가 예기치 않게 작동할 수 있습니다. 따라서 App Bundle을 빌드할 때 그러한 도구를 사용 중지하는 것이 좋습니다.
  • 현재 기능 모듈의 빌드 구성에서는 기본 모듈(또는 다른 모듈)의 속성과 충돌하는 속성을 구성할 수 있습니다. 예를 들어 기본 모듈에서 buildTypes.release.debuggable = true를 설정하고 기능 모듈에서 false로 설정할 수 있습니다. 이러한 충돌은 빌드 및 런타임 문제를 야기할 수 있습니다. 기본적으로 기능 모듈은 기본 모듈의 빌드 구성을 일부 상속한다는 점에 유의하시기 바랍니다. 따라서 기능 모듈 빌드 구성에서 유지해야 할 구성과 생략해야 할 구성을 파악해야 합니다.

추가 리소스

Android App Bundle에 관한 자세한 내용은 다음 리소스를 참고하세요.

블로그 게시물

동영상