소개


안드로이드 어플리케이션은 클래스 파일, 레이아웃, 문자열 데이터, 해상도 별 이미지 등 수많은 데이터 조합으로 이루어져 있었다. 하지만 안드로이드가 발전하면서 새롭게 등장하는 앱들의 평균 사이즈 또한 증가하면서 사용자들이 용량이 큰 앱은 설치하지 않거나 설치 후에도 용량 확보를 위해 금방 삭제하는 현상이 증가하고 있다고 발표했다.



용량이 큰 앱은 다운로드와 설치 시간이 길고 업데이트 설치 비율이 낮아진다.


기존 안드로이드 앱 설치 방식은 모든 데이터를 시스템에 복사한다. 해상도 별 이미지, 제공하는 모든 국가별 문자열 데이터 등 모두 같이 설치한다. 해상도를 변경하거나 시스템 언어를 변경하지 않은 이상 현재 사용하는 설정 이외의 모든 데이터를 쓸모가 없어진다. 즉 사용자는 쓰지도 않는 이미지나 문자열 데이터를 앱 때문에 가지고 있는 것이다. 


안드로이드 개발팀은 이러한 단점을 보완하고자 새로운 앱 모델을 선보였는데 바로 앱 번들이다. 앱 번들은 구글 플레이 서비스에서 시스템이 사용하는 설정 데이터(해상도나 언어)만을 조합하여 앱을 설치하는 형태로 진행된다. 필요한 데이터로만 구성된 앱을 설치하기 때문에 앱 크기를 줄일 수 있고 다운로드, 설치, 업데이트 시간을 단축할 수 있게 된다.



좌측은 기존의 방식으로 모든 데이터를 가져와 설치한다.

우측의 경우 앱 번들에서 시스템 해상도, 언어, 아키텍처의 데이터만 가져와 설치한다.


이로 인해 같은 앱이더라도 기존 방식에 비해 최대 35%까지 앱 크기를 줄일 수 있게 된다. 그런데 만약 앱을 사용하다가 중간에 시스템 언어를 바꾸거나 해상도를 변경할 경우 새로 설치해야 하나? 답은 아니다. 언어나 해상도나 변경될 경우 구글 플레이 서비스가 인식하여 알아서 필요한 파일을 다운로드한다. 때문에 시스템 설정이 변경되어도 재설치 없이 그대로 사용할 수 있게 된다.


앱 번들은 Split APK 방식으로 설치하기 때문에 구글 플레이 서비스에서 앱 번들에서 필요한 데이터만 조합한 뒤 재-서명 과정을 거치게 되는데 이를 위해 개발자 키가 개발자 콘솔에 등록되어야 한다. 다만 보안 문제는 걱정할 것이 없는 이유가 구글에서 개발자 키를 자신들이 사용하는 구글 키와 동일한 저장소에 보관한다고 하였기 때문이다.


구조 및 사용법


앱 번들은 안드로이드 스튜디오 3.2 이상부터 사용 가능하다. 앱 번들을 사용하기 위해 기존 개발 구조가 크게 바뀌거나 추가할 필요는 없다. 간단하게 APK로 서명하던 것을 Bundle 형태로 서명하면 된다. Bundle로 빌드 시 기존 APK 파일 형태가 아닌 AAB(Android App Bundle)로 배포되며 APK와 다른 구조를 가지게 된다.



출처

https://developers-kr.googleblog.com/2018/05/google-io-2018-whats-new-in-android.html

https://developer.android.com/guide/app-bundle/

https://www.youtube.com/watch?v=QdoEcfibGs&list=PLWz5rJ2EKKc8WFYCR9esqGGY0vOZm2l6e&index=15

by JamesY 2018. 11. 12. 23:36