aab to apk

aab to apk



TL;DR

  1. download bundle tool jar (link 새창)

  2. run this code

    java -jar "bundletool-all-1.2.0.jar"(버전은 최신 버전으로 맞추자) build-apks --bundle="your.aab(변환할 .aab 파일)" --output="universal.apks(.apk 파일 경로와 파일명" --mode=universal
    





aab 가 무엇인가요?

안드로이드 앱 번들 (Android App Bundle)은 지속적으로 증가하는 APK 의 파일 크기를 해결하기 위해 나왔습니다.

안드로이드는 다양한 플랫폼들을 지원하는게 큰 장점이죠. 확장성이 너무 좋습니다. 하지만 이렇게 다양한 플랫폼을 지원하기 위해 각기 다른 CPU 와 화면 크기, 32bit, 64bit 에 맞는 이진 바이너리 파일들이 APK 에 하나로 뭉쳐져야 합니다.

increse apk size

2013년부터 계속 증가한 APK 사이즈, 현재는 5배가 증가한 상태

그렇기 때문에 APK는 시간이 지날 수록 점점 더 비대해졌습니다.

문제는 이렇게 비대해진 apk 파일이 앱 다운로드에 좋지 않은 영향을 미친다는 것이였죠.

conversion apk

APK 파일 크기에 따른 다운로드 전환율

사용자들은 APK 의 크기가 커지면 커질수록 다운로드를 꺼려했습니다.

그래서 구글에선 앱 번들을 통해 이러한 apk 의 크기를 줄이고자 합니다. 어떻게 그게 가능할까요?

dynamic delivery

위 사진 설명처럼, 기존 APK 가 모든 언어, 모든 화면, 모든 CPU 유형을 다 담은 하나의 바이너리 파일이라면,

aab 에서 다이나믹 딜리버리 된 앱은 현재 디바이스에 필요한 정보만 가져와 설치하기 때문에 설치 파일이 작아집니다.

그럼 이제 aab 를 apk 로 변환하는 방법을 알아보겠습니다.


How to?

Step 1. Download Bundle tool

가장 먼저 bundle tool 를 다운로드 받아야합니다.

구글에서 제공하고 있는 bundle tool 의 레포지토리에서 다운로드가 가능합니다.

https://github.com/google/bundletool/releases (새창)

링크를 들어가신 뒤, jar 압축 파일을 받아주세요.

download


Step 2. Run APK Extra Command

이제 aab 파일을 apk 파일로 변경할 시간입니다.

java -jar "bundletool-all-1.2.0.jar"(버전은 최신 버전으로 맞추자) build-apks --bundle="your.aab(변환할 .aab 파일)" --output="universal.apks(.apk 파일 경로와 파일명" --mode=universal

여기에서 -jar “bundletoo..” 은 다운로드 받을 때 버전에 따라 버전 명이 변경될 수 있습니다.

위 명령어를 입력해서 aab 파일을 변환 시키면 zip 파일이 반환됩니다.

zip 파일을 열어보면 universal.apk 가 들어 있습니다.


긴 글 읽어주셔서 감사합니다.