Google for Mobile I/O RECAP 2018 (05)
05. Developer. 새로운 모듈 Android App Bundle로 앱 개발하기
발표자 :
Phil Adams (Senior UX Researcher) Tom Dobek (Software Engineer, Google)
세션설명 : Android App Bundle은 크기가 작은 앱으로도 우수한 사용 환경을 간편하게 제공할 수 있도록 도와주는 새로운 앱 모델입니다. 앱 크기를 대폭 줄이고 Dynamic Delivery를 통해 유저들이 앱을 더 빠르게 다운로드할 수 있도록 하는 방법을 소개합니다.
참고 : https://developer.android.com/guide/app-bundle/
https://medium.com/mindorks/android-app-bundle-aab-98de6dad8ba8
https://medium.com/mindorks/android-app-bundle-part-2-bundletool-6705b50bea4c
App Bundle이 가능하게 하는 2가지 기능
- Dynamic delivery system
- Modular App development
.aab 내부
AndroidManifest.xml가 apk에서는 바이너리 형식이지만 aab에서는 프로토콜 버퍼 형식.
aab는 내부에 dex 폴더가 따로 있음.
aab의 resources.pb는 apk의 resources.arac에 해당하는 파일로 역시 프로토콜 버퍼 형식.
resources table, assets table은 앱의 File Targeting을 설명함.
예) assets/<name>#<key>_#<value>/...
Dynamic Delivery 의 기본 구성요소는 Split APK 매커니즘. (Android 5.0 Lollipop 이상)
Split APK는 일반 APK와 유사하지만 Android 플랫폼은 설치된 여러 개의 분리된 APK를 하나의 앱으로 취급할 수 있음.
App Bundle을 위한 Split 기능은 아래와 같이 사용 가능함.
Split APK의 종류
Base APK
모든 APK가 액세스할 수 있는 코드와 리소스 포함하여 앱의 기본기능 제공. 앱 다운로드시 설치되는 첫 번째 APK
Configuration APKs
각 APK에는 특정 화면 밀도, CPU 아키텍처, 언어에 대한 기본 라이브러리 및 리소스를 포함. 기기가 Base APK 또는 Dynamic feature APK 다운로드시 필요한 라이브러리와 리소스만 다운로드 됨.
Dynamic feature APKs
각 APK에는 앱 설치시 필요하지 않지만 나중에 다운로드하여 설치할 수 있는 코드와 리소스가 포함되어 있음.
Average Savings
App Bundle을 통해서 평균 20% 이상의 앱 용량을 절감함.
Publishing App Bundle
App Bundle을 만든 후 signing 하여 Google Play에 업로드.
App Bundle은 기기에 APK를 배포할 수 없는 대신 하나의 빌드 아티팩트에 모든 앱의 컴파일된 코드와 리소스를 포함하는 새로운 업로드 형태임.
signing된 App Bundle을 업로드하면 Google Play는 앱의 APK를 만들고 서명한 후 Dynamic Delivery를 통해 사용자에게 제공하는 데 필요한 모든 것을 제공함.
Publishing API에서도 App Bundle 지원함.
Internal Test Track을 사용하여 테스트.
bundletool
참고 : https://github.com/google/bundletool
App Bundle 을 로컬에서 테스트할 때 사용.
- Android App Bundle 빌드
- APK archive 생성
- APK 추출
- APK 설치
- 장치 사양 추출
SplitInstallManager
참고 : https://developer.android.com/guide/app-bundle/playcore
Q&A
Q : 사용자가 설치 후 언어 변경시 앱을 재설치해야 하나?
A : Split App만 설치하면 됨.
Q : assets 타켓팅시 불필요한 파일 포함되는데 개선 여부는?
A : 타켓팅을 상세히 해서 하면 됨.
Q : 앱 수정시 앱 번들 모두 업데이트해야 하나?
A : 그렇다.
Q : 베이스 외 모듈 배포 가능하나?
A : On Demand 버전은 따로 배포가 안됨.
Q : 앱번들을 위한 최소 버전은?
A : Pre L도 지원함으로 따로 최소 버전은 없음.
Q : 모듈화에 대해 자세한 설명이나 사례는?
A : 게임에서 레벨에 따라 별도 다운로드 제공.
Q : 앱 번들 기기 지원 관련 이슈는?
A : 현재는 없음.
'IT > 행사' 카테고리의 다른 글
[행사] Google for Mobile I/O RECAP 2018 참석기 - 07 (0) | 2018.06.29 |
---|---|
[행사] Google for Mobile I/O RECAP 2018 참석기 - 06 (0) | 2018.06.29 |
[행사] Google for Mobile I/O RECAP 2018 참석기 - 04 (0) | 2018.06.29 |
[행사] Google for Mobile I/O RECAP 2018 참석기 - 03 (0) | 2018.06.29 |
[행사] Google for Mobile I/O RECAP 2018 참석기 - 02 (0) | 2018.06.29 |