개발일지

[Android] AAB; Android App Bundle 본문

Android

[Android] AAB; Android App Bundle

강강강 2021. 6. 29. 19:27

→ Android App Bundle은 앱의 모든 컴파일된 코드 및 리소스를 포함하며 APK 생성 및 서명을 Google Play에 맡기는 게시 형식입니다.

  • 사용자가 앱을 다운 받을 시 앱의 다운로드 크기와 디스크 할당 크기 감소 
  • 사용자에게 필요한 기능 및 설정을 설치 중이 아닌 사용자가 요청할 때 제공 
  • 여러 개의 APK를 빌드하고 게시할 필요가 없어 효율적인 빌드 및 출시 관리
  • 사용자의 기기 대신 APK 에 저장되는 압축되지 않은 기본 라이브러리를 사용하여 (Android 6.0 이상) 다운로드 크기, 디스크 할당 크기, 설치 시간 감소 
    → 각 사용자의 디바이스에 맞는 리소스와 구성품으로 구성된 APK 를 만들어 배포함으로써 사용자에게 다운로드의 시간을 줄여줌
    [ AAB 파일 생성 방법 ]
  • 1. 안드로이드 스튜디오 3.2 버전 이상에서 
    [Build] - [Generate Signed Bundle / APK...] 클릭
  • Generate Signed Bundle / APK.. 클릭
    2. Android App Bundle 생성

3. key store path, key store password, key alias, key password 입력 

-Key store path : <proj_root>/keystore.jks
-Key alias : upload
-Key password : <proj_root>/build.gradle 에 keystore_password 확인

4. Build Type: release 

5. 지정해둔 폴더에 .aab 라고 확장자 명이 적힌 Android App Bundle 파일을 Google Play 에 배포

 

[ AAB TEST ]

: 기존의 .apk 확장자라면 단말기에 설치하고 테스트 할 수 있지만 .aab 는 아래와 같은 방법으로 테스트 해볼 수 있음 

 

방법1) bundletool 명령줄 도구를 사용하여 로컬에서 테스트

Android 스튜디오 및 Google Play에서 App Bundle을 빌드하고 이를 APK로 변환하는 데 사용하는 도구는 cmd에서 제공됩니다. 

즉, cmd에서 이러한 도구를 호출하여 Android App Bundle에서 앱을 로컬로 빌드하고 배포할 수 있습니다.

→ cmd에서 App Bundle을 빌드하려면 bundletool을 사용하면 됩니다.

 

1) bundletool 다운로드 

   : https://github.com/google/bundletool/releases

2) App Bundle 에서 APK 집합 생성 

   - cmd 에서 bundletool 다운로드한 경로로 이동 

cd C:\Users\hyegyeong\Downloads   


 - 
APKs 추출

java -jar "bundletool-all-0.10.0.jar" bundletool build-apks --bundle=/MyApp/my_app.aab(변환할 .aab파일) --output=/MyApp/my.app.apks(.apk 파일을 저장할 경로와 파일명)

 

 참고: https://developer.android.com/studio/command-line/bundletool

 

bundletool  |  Android 개발자  |  Android Developers

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

developer.android.com

 

방법2) Google console 에서 테스트 단말에 맞는 배포 전 apk 다운로드하여 설치 및 테스트

→  앱을 AAB로 업로드하면 Play Console 에서 앱을 지원하는 모든 기기 구성의 split APKs 및 multi APK 를 자동으로 생성합니다. 

      Play Console 에서 App Bundle 탐색기를 사용해 Google Play 에서 생성한 모든 APK artifacts 를 보고 생성된 APK 를 다운로드하여 로컬로 배포 및 테스트 할 수 있습니다. 

 

참고 : https://developer.android.com/studio/publish/upload-bundle

 

앱을 Play Console에 업로드  |  Android 개발자  |  Android Developers

출시 버전의 앱을 빌드하고 서명한 후 다음 단계는 앱을 검사, 테스트 및 게시하기 위해 앱을 Google Play에 업로드하는 것입니다. 시작하기 전에 다음을 충족하는지 확인하는 것이 좋습니다. 아직

developer.android.com

 

  •  split APKs : APK 를 여러 개로 분할하여 하나의 앱을 구성하는 것 

→ Google Play에서 각 구성요소에 따라 분할된 APK 로 만듭니다. 여러 개로 분할된 APK는 단말의 사양에 맞춰 필요한 APK 만 설치되어 분할된 APK를 Android Framework 에서는 하나의 앱으로 인식합니다. 

(단 Android 5.0 (Lollipop)이후인 경우에만 분할 apk를 지원함)

장점: 앱에서 지원하는 모든 기능 및 기기 설정에 관련된 코드와 리소스를 포함하는 APK를 요구에 따라 사용자 기기에 설치된 더 작은 별개의 패키지로 나눌 수 있다는 점 

 

  1. Base APK
    : 모든 APK 가 접근할 수 있는 코드와 리소스가 포함돼있는 APK입니다. 앱의 기본 기능을 제공하고 사용자가 앱 다운로드를 요청하면 가장 처음 다운로드 받는 APK 입니다.
  2. Configuration APKs 
    : 기기에 설치될 때 각 기기에 최적화된 화면 밀도나 CPU 아키텍쳐, 다국어 리소스와 네이티브 라이브러리가 포함된 APK 입니다. Configuration APK는 Google Play 에서 자동으로 생성해 줍니다.  
  3. Feature Module APKs 
    : 사용자가 기기에 처음 설치할 때 필요하지 않지만, 나중에 추가로 설치할 수 있는 코드와 리소스가 들어있는 APK 입니다. 

참고: https://developer.android.com/guide/app-bundle/app-bundle-format?hl=ko

 

Android App Bundle 형식  |  Android 개발자  |  Android Developers

Android App Bundle은 Google Play에 업로드하는 파일(파일 확장자는 .aab)입니다. App Bundle은 그림 1에 표시된 것처럼 앱의 코드와 리소스를 모듈로 구성하는 서명된 바이너리입니다. 각 모듈의 코드와 리

developer.android.com

  • Play App Signing (플레이 앱 서명)
    : Google 은 Play App Signing 을 통해 앱의 서명 키를 관리 및 보호하고 배포를 위해 APK 에 서명하는데 사용합니다. Play App Signing 은 app signing key와 upload key 두 가지를 사용합니다. 

    1)  app signing key
    : 사용자 기기에 설치된 APK 에 서명하는데 사용되는 키. 앱의 전체 기간 동안 절대 변경되지 않음
    2) upload key
    : Google Play App Signing 을 위해 업로드 하기 전에 App Bundle 또는 APK 에 서명하는데 사용하는 키 

    → 개발자는 upload key 로 서명해서 Google Play 에 업로드하면 구글이 사용자에게 앱을 배포할 때에는 업로드키가 아닌 서명키로 다시 서명하여 앱을 배포하게 됨 

[ Play App Signing ]

참고: https://developer.android.com/studio/publish/app-signing#app-signing-google-play

 

앱 서명  |  Android 개발자  |  Android Developers

앱 서명 및 보안과 관련된 중요한 개념을 알아보고, Android 스튜디오를 사용하여 Google Play에 출시하기 위해 앱에 서명하는 방법과 Play 앱 서명을 선택하는 방법을 알아보세요.

developer.android.com

 

'Android' 카테고리의 다른 글

[Android] Glide Library 글라이드 라이브러리  (0) 2021.07.06
[Android] recyclerview  (0) 2021.06.29
[Android] Broadcast Receiver  (0) 2021.06.29
[Android] ConditionVariable  (0) 2021.06.29
[Android] gradle  (0) 2021.06.29