aab가 왜 필요해?
Android 64bit 지원 정책으로 인해 64bit용 native library를 build하여 package에 추가해야 했기 때문에, 앱 패키지용량은 증가할수 밖에 없는 상황이 되어 버렸다. ---> aab가 해결!
aab가 왜 좋은데?
- 사용자가 앱을 다운 받을 때, 앱 다운로드 크기 & 디스크 할당 크기 save
- Android 6.0 이상: 다운로드 크기, 디스크 할당 크기, 설치 시간 save (how? apk대신 저장되는 압축X 기본 라이브러리 사용)
- 사용자에게 필요한 기능 및 설정을 사용자가 요청할 때 제공
- 효율적인 빌드 및 출시 관리: 여러 개의 apk를 빌드하고 게시할 필요 X
aab로 어떻게 테스트해?
1.google play beta test에 등록: beta test에 테스터의 계정을 추가하여 테스트 진행
2.개발환경과 연결된 device에 직접 설치: bundletool
2번 방법을 자세히 써 보겠다!
1) bundletool 다운로드
https://github.com/google/bundletool/releases
-기존 adb를 이용한 디바이스 install X
2) aab -> apks -> apks를 bundletool을(adb X) 이용해 디바이스에 installl
- APKs 란?
- APKs(dynamic feature modules)
google play를 통해 배포되는 방식과 가장 유사 | APKs 패키지 안에 각 디바이스에 맞는 많은 spilt apk들이 포함되있음
- APKs(universal moduel)
단일 apk | 하나의 apk를 통하여 모든 디바이스에 설치가 가능한 모드
- APKs 만들기
- APKs(dynamic feature modules)
java -jar "다운로드받은 bundletool.{version}.jar 경로" build-apks --bundle="만든 aab경로\myApp.aab" --output="만들 dynamic apks 경로\dynamic.apks"
- APKs(universal moduel)
java -jar "다운로드받은 bundletool.{version}.jar 경로" build-apks --mode=universal --bundle="만든 aab경로\myApp.aab" --output="만들 dynamic apks 경로\dynamic.apks"
3) APKs 설치
java -jar "bundletool-all-0.10.0.jar" install-apks --apks="2)에서 만든 dynamic.apks경로\dynamic.apks"
[구글플레이 설치]
aab -> 구글플레이 업로드 -> 구글플레이에서 사용자 다운로드클릭
-> 구글플레이에서 사용자 기기에 맞는 리소스만 조립하여 apk 생성
-> 구글에 올려놓은 키스토어로 사인
-> 사인된 조립된 apk 다운로드 -> 설치
참고
[TECH] ANDROID APP BUNDLE (AAB)의 장점과 TEST 방안
https://liapp.lockincomp.com/ko/blog/blog-Post/tech-google-android-app-bundle/
[Android] Bundletool 설치 방법
'Platform > Android' 카테고리의 다른 글
[Jetpack] 0. 개요 (2) | 2020.04.03 |
---|---|
ViewModel / LiveData / RecyclerView (0) | 2020.03.27 |
[AAC] ViewModel | LiveData (0) | 2020.03.18 |
[Class] (0) | 2020.03.17 |
[adb] adb 명령어 (0) | 2020.02.25 |