AndroidStudio 에서는 빌드 결과물로
APK(Android 애플리케이션 패키지)와 AAB(Android App Bundle) 두 가지 형태를 제공한다.

흔히 앱 설치 파일로 알고 있는 APK는 Gradle에서 설정한 API 버전에 해당하는 모든 설치 파일이 압축되어 있는 형태로,
Android 버전과 상관없이 동일한 파일로 앱을 설치한다.
반면, Android App Bundle은 다운로드 요청 시 사용자 단말 버전에 해당하는 API만 추출하여 빌드한 APK로 앱을 설치한다.
즉, Android App Bundle 형태로 빌드한 APK의 경우 필요한 API 버전만 포함하고 있어,
기존 방식의 APK 보다 현저히 작은 용량으로 앱을 제공한다.

실제로 Google Playstore에 앱을 등록할 때는 aab 형식을 권장하고,
테스트 과정에서 apk로만 테스트 할 경우 aab 설치 방식에서만 나타나는 이슈를 확인하지 못하는 경우도 있다.

그래서 알아본 aab 파일을 이용한 앱 빌드 및 설치 방법

 

 


Android App Bundle 빌드 방법

1. Android App Bundle 파일 생성

Android Studio 상단 메뉴 > Build  - Build Bundle(s) / APK(s) - Build Bundle(s) 클릭

 

2. aab 파일 디렉토리로 이동

일반적으로 C:\Users\사용자이름\AndroidStudioProjects\프로젝트이름\app\build\outputs\bundle\debug

Tip ! 빌드가 끝나면 하단에 알림창 or Event Log창에 알림이 뜨는데, locate 를 클릭하면 해당 디렉토리가 열린다.

 

 

Android App Bundle 앱 설치 방법

1. bundletool git hub 페이지에서 가장 최신 버전의 bundletool .jar 파일 다운로드

 

Releases · google/bundletool

Bundletool is a command-line tool to manipulate Android App Bundles - google/bundletool

github.com

aab 파일 위치로 bundletool.jar 다운로드


2. 명령 프롬프트(cmd) 실행 후 bundletool 버전 확인

cd aab 파일 디렉토리
java -jar bundletool파일명 version

예시)

/* 디렉토리로 이동 */
cd C:\Users\사용자이름\AndroidStudioProjects\프로젝트이름\app\build\outputs\bundle\debug
/* bundletool 버전 확인 */
java -jar bundletool파일명 version

예시)
Microsoft Windows [Version 10.0.18362.1139]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\Username> cd C:\Users\Username\AndroidStudioProjects\Myapplication\app\build\outputs\bundle\debug
C:\Users\Username\AndroidStudioProjects\Myapplication\app\build\outputs\bundle\debug> java -jar bundletool-all-1.3.0.jar version
1.3.0

 

3. bundletool을 이용하여 APK 파일 설치

 

① 앱 설치할 스마트폰 USB 디버깅 모드로 PC 연결 ※ adb devices 명령어로 연결상태 확인

 

② bundletool로 연결된 스마트폰 버전에 맞는 APKs 생성 ※--connected-device 옵션을 생략하면, 모든 API 버전을 포함하는 APKs 생성

java -jar "bundletool파일명.jar" build-apks --connected-device --bundle="aab파일명.abb" --output="생성할apks파일명.apks"

③ 생성한 APKs로 스마트폰에 앱 설치

java -jar "bundletool파일명.jar" install-apks --apks="생성된apks파일명.apks"

 

예시)

/* 디렉토리로 이동 */
cd C:\Users\사용자이름\AndroidStudioProjects\프로젝트이름\app\build\outputs\bundle\debug
/* APKs 생성 */
java -jar "bundletool파일명.jar" build-apks --connected-device --bundle="aab파일명.abb" --output="생성할apks파일명.apks"
/* APK 설치 */
java -jar "bundletool파일명.jar" install-apks --apks="생성된apks파일명.apks"

예시)

Microsoft Windows [Version 10.0.18362.1139]
(c) 2019 Microsoft Corporation. All rights reserved.

C:\Users\Username> cd C:\Users\Username\AndroidStudioProjects\Myapplication\app\build\outputs\bundle\debug
C:\Users\Username\AndroidStudioProjects\Myapplication\app\build\outputs\bundle\debug> 
java -jar "bundletool-all-1.3.0.jar" build-apks --connected-device --bundle="app-debug.abb" --output="generated.apks"
C:\Users\Username\AndroidStudioProjects\Myapplication\app\build\outputs\bundle\debug> 
java -jar "bundletool-all-1.3.0.jar" build-apks install-apks --apks="generated.apks"

※ 주의 사항 ※

App Bundle Build 시 debug 폴더 자체가 재생성되므로,
bundletool.jar 파일을 따로 저장해두고 빌드 시 debug 폴더로 다시 옮겨줘야 한다.

APKs 파일 생성 시 동일한 이름의 APKs 파일이 존재할 경우 에러가 발생한다.

 

참고 사이트 : Android 개발할 맛 나게 해주는 친절한 Android 개발자 문서

 

bundletool  |  Android 개발자  |  Android Developers

Android App Bundle을 빌드한 후에는 Google Play에서 어떻게 Android App Bundle을 사용하여 APK를 생성하는지, APK가 기기에 배포되었을 때 어떻게 작동하는지 테스트해야 합니다. App Bundle을 두 가지 방식으로

developer.android.com

 

+ Recent posts