앱 크기는 기술 품질에서 중요한 요소로, 앱의 설치 및 제거 측정항목에 영향을 미칠 수 있습니다. 또한 Google Play에는 앱 및 동적 콘텐츠(예: 기능 모듈 및 애셋 팩)의 크기 제한도 있습니다. 이 도움말에서는 계속해서 앱 크기를 최대한 최적화된 상태로 유지할 수 있도록 Google Play의 크기 제한에 관해 자세히 설명하고 Play Console을 사용하여 앱과 관련된 크기를 파악하는 방법을 설명합니다.
앱 크기 파악하기
앱의 다운로드 크기 및 설치 크기는 각각 설치 성공과 제거에 영향을 미칠 수 있으므로 이를 줄이는 방법을 정기적으로 모니터링하고 파악하는 것이 중요합니다. 두 크기의 차이점은 다음과 같습니다.
- 앱 다운로드 크기: 사용자가 Google Play에서 다운로드하는 앱의 크기입니다. 앱의 다운로드 크기가 클수록 다운로드 시간이 길어집니다.
- 기기에 설치된 앱 크기: 앱 설치에 필요한 공간을 의미합니다. 앱이 다운로드될 때는 크기가 압축되므로 다운로드 크기보다 설치 크기가 더 클 수 있습니다. 앱의 설치 크기가 더 큰 경우 설치를 완료하려면 사용자 기기에 더 많은 공간이 필요합니다. 앱이 실행된 후 앱이 디스크에서 차지하는 크기는 앱 사용량에 따라 달라집니다.
Google Play 최대 크기 제한
App Bundle, 기능 모듈, 애셋 팩에는 아래의 크기 제한이 적용됩니다. 모든 Google Play 크기 제한은 App Bundle을 업로드할 때 Play Console에서 계산한 압축 다운로드 크기를 기준으로 합니다. 동일하지는 않지만 유사한 계산을 사용하면 bundletool 명령줄 도구를 사용하여 Play Console에 업로드하기 전에 크기를 대략 추정할 수 있습니다.
중요: Google Play에서는 설치 측정항목을 개선할 수 있도록 앱 크기를 최대한 작게 유지하고 최적화할 것을 권장합니다. 대부분의 개발자는 이러한 크기 제한을 초과하지 않아야 합니다.
앱 구성요소 |
앱 다운로드 크기 제한 |
---|---|
기본 모듈 |
200MB |
개별 기능 모듈 |
200MB |
개별 애셋 팩 |
1.5GB |
모든 모듈 및 설치 시간 애셋 팩의 누적 합계 |
4GB |
주문형 또는 빠른 추적으로 전송된 애셋 팩의 누적 합계 |
4GB* |
* Google Play 게임즈 파트너 프로그램에 참여하는 개발자는 최대 6GB의 추가 애셋 팩을 전송할 수 있습니다. 즉, 주문형 및 빠른 추적으로 전송된 애셋 팩의 누적 합계는 4GB가 아닌 10GB입니다.
위에 나열된 크기 제한 외에도 다음 사항을 참고하세요.
- 1GB보다 큰 앱은 Android Lollipop(API 수준 21) 이상의 최소 SDK 버전을 타겟팅해야 합니다.
- Android Oreo(API 수준 26) 이상의 최소 SDK 버전을 타겟팅하는 앱의 경우 권장되는 기능 모듈의 최대 개수는 100개입니다. 더 낮은 최소 SDK 버전을 타겟팅하는 경우 기능 모듈의 최대 개수는 50개입니다.
- 개별 App Bundle의 최대 애셋 팩 수는 100개입니다.
- 앱 크기가 200MB를 넘으면 모바일 데이터 연결을 사용하는 사용자가 Google Play에서 앱을 설치할 때 Android 기기에 앱의 크기가 크다는 것을 알리는 비차단 대화상자가 표시됩니다.
- 여전히 App Bundle 대신 APK를 사용하여 게시되는 앱에는 기존 APK 크기 제한(최대 APK 크기 100MB)이 적용되며 위의 크기 제한은 적용되지 않습니다.
앱의 다운로드 크기 및 설치 크기 보기
프로덕션 트랙에 앱을 출시한 후, 앱의 다운로드 크기 및 설치 크기를 확인하는 방법은 다음과 같습니다.
- Play Console을 열고 앱 크기 페이지(품질 > Android vitals >앱 크기)로 이동합니다.
- 화면 오른쪽 상단에서 앱 다운로드 크기 또는 기기에 설치된 앱 크기 기준으로 페이지 데이터를 필터링할 수 있습니다.
앱 크기 페이지에서 확인 가능한 데이터는 다음과 같습니다.
- 앱 다운로드 크기/기기에 설치된 앱 크기: 참조 기기의 앱 크기 및 모든 기기 설정의 앱 크기 범위입니다.
- 동종 앱 대비 앱 다운로드 크기/기기에 설치된 앱 크기: 동종 앱과 비교한 앱 크기입니다.
- 8~12개의 앱으로 구성된 맞춤 동종 앱 그룹을 만들려면 동종 앱 그룹 수정을 클릭합니다.
- 시간 경과에 따른 앱 다운로드 크기/기기에 설치된 앱 크기: 시간의 경과에 따른 동종 앱 대비 앱 크기의 변화 추이입니다.
- 차트의 오른쪽 상단에서 확인하려는 기간을 선택하고 체크박스를 선택하면 모든 기기 설정의 앱 크기 범위가 표시됩니다.
- 여유 공간이 2GB 미만인 활성 기기: 앱의 활성 사용자 중 기기에 남아 있는 저장공간이 2GB 미만인 사용자 비율입니다.
- 여유 공간이 2GB 미만인 기기에서 발생한 제거: 전체 활성 기기에서 발생한 제거 대비 여유 저장공간이 2GB 미만인 활성 기기에서 발생한 제거 비율입니다.
참고:
- 참고: 모든 크기는 최신 프로덕션 버전 및
XXXHDPI ARMv8
기기 설정 또는 앱에서 지원되는 가장 가까운 기기 설정을 바탕으로 계산된 대푯값입니다. - 여유 공간이 2GB 미만인 활성 기기 및 여유 공간이 2GB 미만인 기기에서 발생한 제거 측정항목은 30일간의 이동 평균을 기준으로 계산되며 앱에 해당된다고 판단될 경우에만 표시됩니다.
크기 분석 보기
Android App Bundle을 사용하여 앱을 게시하면 번들 버전 코드별로 정리된 차트를 볼 수 있습니다. 이때 이전에 출시한 버전 5개의 총 다운로드 크기 또는 설치 크기 대비 현재 앱 계정의 다양한 구성요소가 차지하는 공간에 관한 분석 결과도 표시됩니다.
분석 결과를 통해 가장 많은 공간을 차지하는 앱 요소와 공간 최적화를 위해 더 개선해야 할 영역을 확인할 수 있습니다. 분석 결과의 기반은 참조 기기 설정을 대상으로 App Bundle에서 생성된 APK입니다.
분석에는 다음 데이터가 표시됩니다.
- 앱 다운로드 크기 분석:
- 코드/DEX: Android에서 DEX 형식으로 실행되도록 컴파일된 앱의 모든 자바 또는 Kotlin 코드입니다.
- 리소스: 리소스 테이블과 코드가 아닌 앱 구성요소(문자열 또는 이미지와 같이 res/ 디렉터리에 있는 구성요소)가 포함됩니다.
- 애셋: 소리 파일이나 동영상과 같이 앱에서 사용하는 assets/ 디렉터리의 기타 파일입니다.
- 네이티브 라이브러리: 앱의 libs/ 디렉터리에 있는 네이티브 코드입니다. 일반적으로 자바 또는 Kotlin이 아닌 모든 코드입니다.
- 기타: 앱 내 기타 파일입니다.
- 기기별 앱 크기에 다음 데이터가 추가로 표시됩니다.
- 추출된 네이티브 라이브러리: 네이티브 라이브러리를 APK로 압축한 경우 이를 로컬 저장소로 추출해야 앱을 실행할 수 있습니다.
- 최적화된 DEX: Android 런타임이 성능 향상을 위해 네이티브 코드로 변환한 DEX 코드입니다.