Incremental Install은 Streaming Install으로, Apk 파일을 다운로드하면서 앱 설치 및 실행시키는 기능입니다. Android developer에는 Play as you Download라는 이름으로 소개하고 있습니다.
Incremental Install(Play as you Download)
Incremental Install은 게임 등 Apk의 파일 사이즈가 큰 앱의 설치 시간을 개선하기 위해 도입되었습니다.
Android 11
에서는 adb 툴에서만 Incremental Install을 지원하여, 개발자만 사용하도록 하였습니다.Android 12
에서는 PlayStore가 Incremental Install을 지원할 예정입니다. 이제 PlayStore에서 게임을 받을 때 많은 시간을 절약할 수 있습니다.
Android 11에서 개발자에게 먼저 공개된 것은 베타 테스트의 목적이 강합니다. App을 스트리밍하기 때문에, 패키지는 불완전하게 설치된 상태에서 실행됩니다. 이런 이유로 여러가지 문제가 발생할 수 있기 때문에 개발자에게 먼저 공개하였습니다. 또한, 게임 앱 개발자는 테스트하기 위해 1~2GB 크기의 App을 디바이스에 자주 설치하게 되는데, Incremental을 이용하여 많은 시간을 단축시킬 수 있어 도움이 될 수 있습니다.
Android 12에서 PlayStore가 이 기능을 지원할 예정이며, 사용자가 게임 앱을 설치하는데 사용하는 시간을 절약하게 될 것입니다.
Demo
아래는 Android developers - Android 12 Beta3에 공개된 이미지입니다.
왼쪽이 현재 PlayStore에서 게임을 설치하는 모습이고, 오른쪽이 Incremental Install을 적용한 PlayStore가 게임을 설치하는 모습입니다. 게임을 실행시키기 위한 필수 파일들을 먼저 다운로드 받은 뒤에 앱을 실행시킵니다. 앱이 실행되었지만 Background에서 Apk를 스트리밍으로 다운로드받고 있는 상황입니다.
GIF 이미지가 멈춰있으면 F5를 누르거나, 사이트를 다시 로딩해주세요.
PlayStore에서 내 앱이 Incremental Install로 설치되도록 만들기
- Signature v4로 서명된 App만 Incremental Install이 지원됩니다.
- PlayStore에 App bundle 형태로 App을 업로드하면, PlayStore가 알아서
Signature v4
로 서명하고, Incremental Install로 설치 가능하도록 만들어 줍니다. 개발자가 이 기능을 지원하기 위해 따로 해야할 것은 없습니다. 현재 Android 12의 Beta3 진행 중이며, 대부분의 앱이 Incremental Install로 설치되지 않습니다. - Android 12의 Beta3에서 자신의 앱으로 베타 테스트에 참여하고 싶다면, Enabling your game 페이지를 참고하셔서 참여 요청을 할 수 있습니다.
참고
Related Posts
- Android 14 - 사진/동영상 파일, 일부 접근 권한 소개
- Android - adb push, pull로 파일 복사, 다운로드
- Android 14 - 암시적 인텐트 변경사항 및 문제 해결
- Jetpack Compose - Row와 Column
- Android 13, AOSP 오픈소스 다운로드 및 빌드
- Android 13 - 세분화된 미디어 파일 권한
- Android 13에서 Notification 권한 요청, 알림 띄우기
- Android 13에서 'Access blocked: ComponentInfo' 에러 해결
- 에러 해결: android gradle plugin requires java 11 to run. you are currently using java 1.8.
- 안드로이드 - 코루틴과 Retrofit으로 비동기 통신 예제
- 안드로이드 - 코루틴으로 URL 이미지 불러오기
- Android - 진동, Vibrator, VibrationEffect 예제
- Some problems were found with the configuration of task 에러 수정
- Query method parameters should either be a type that can be converted into a database column or a List
- 우분투에서 Android 12 오픈소스 다운로드 및 빌드
- Android - ViewModel을 생성하는 방법
- Android - Transformations.map(), switchMap() 차이점
- Android - Transformations.distinctUntilChanged() 소개
- Android - TabLayout 구현 방법 (+ ViewPager2)
- Android - 휴대폰 전화번호 가져오는 방법
- Android 12 - Splash Screens 알아보기
- Android 12 - Incremental Install (Play as you Download) 소개
- Android - adb 명령어로 bugreport 로그 파일 추출
- Android - adb 명령어로 App 데이터 삭제
- Android - adb 명령어로 앱 비활성화, 활성화
- Android - adb 명령어로 특정 패키지의 PID 찾기
- Android - adb 명령어로 퍼미션 Grant 또는 Revoke
- Android - adb 명령어로 apk 설치, 삭제
- Android - adb 명령어로 특정 패키지의 프로세스 종료
- Android - adb 명령어로 screen capture 저장
- Android - adb 명령어로 System 앱 삭제, 설치
- Android - adb 명령어로 settings value 확인, 변경
- Android 12 - IntentFilter의 exported 명시적 선언
- Android - adb 명령어로 공장초기화(Factory reset)
- Android - adb logcat 명령어로 로그 출력