관리 메뉴

나만을 위한 블로그

[Manifest-Android] 30. APK vs AAB 본문

스터디

[Manifest-Android] 30. APK vs AAB

참깨빵위에참깨빵_ 2025. 7. 16. 19:19
728x90
반응형

안드 앱은 2개 기본 포맷인 apk, aab를 써서 배포 / 설치할 수 있다. 두 포맷 모두 안드 앱을 패키징하지만 목적, 구조, 설치 중 리소스 처리 방식에 차이가 있다.

 

APK(Android Package)

 

apk 파일은 안드 앱을 배포, 설치하는 전통적 포맷이다. 앱이 기기에서 작동하는 데 필요한 모든 리소스, 코드, 메타데이터를 포함하는 완전하고 즉시 설치 가능한 패키지다.

apk 파일은 과할 정도로 완전하다. 모든 기기 구성(화면 밀도, CPU 아키텍처, 언어)에 대한 모든 리소스를 포함한다. 때문에 기기와 상관없는 리소스를 포함하게 되서 파일 크기가 커질 수 있다.

apk는 기기에 직접 설치되고 공식 앱스토어 외부에서 공유하거나 사이드 로딩할 수 있다. 그러나 다양한 기기 구성을 관리하는 건 개발자 책임이며 apk에는 특정 기기에 불필요한 리소스가 종종 포함된다.

 

AAB(Android App Bundle)

 

구글에서 도입한 aab 형식은 apk 같은 설치 가능한 형식이 아닌 게시 포맷이다. 개발자는 aab를 구글 플레이에 업로드하면 구글 플레이는 개별 기기에 맞게 최적화된 apk로 처리한다.

aab 파일은 모듈식으로 다른 구성에 대한 리소스, 코드를 별개 번들로 분리한다. 구글 플레이는 모듈식 구조를 써서 다운로드 시점에 기기별 apk를 만든다. 특정 화면 크기, CPU 아키텍처, 언어에 필요한 리소스 / 코드만 전달해서 유저 기기의 앱 크기를 줄인다.

aab 파일은 구글 플레이 서버에서 처리되서 직접 설치할 수 없다. 따라서 개발자는 bundletool 유틸리티 같은 추가 도구 없이 aab 파일을 유저에 직접 배포해 설치하도록 사이드 로딩을 유도할 수 없다.

 

APK vs AAB 주요 차이점

 

  1. 목적, 구조
    • apk : 모든 구성에 대한 모든 리소스, 코드를 포함한 완전한 패키지
    • aab : 기기별 apk를 만드는 모듈식 게시 형식
  2. 파일 크기
    • apk : 모든 기기에 대한 리소스를 포함해 크기가 더 큼
    • aab : 더 작고 최적화된 apk를 만들 수 있게 해서 유저에 전달되는 앱 크기를 줄임
  3. 배포
    • apk : 기기에 직접 공유하고 사이드로딩할 수 있다
    • aab : 구글 플레이에 업로드되고 구글 플레이가 최종 유저를 위해 최적화된 apk 제공
  4. 관리
    • apk : 개발자가 리소스, 구성을 수동 관리해야 함
    • aab : 구성 관리를 구글 플레이에 위임해서 프로세스 자동화
  5. 도구, 호환성
    • apk : 모든 안드 기기, 앱 스토어에서 지원
    • aab : 설치 가능한 apk를 만들기 위해 구글 플레이 또는 bundletool 필요, 기본적으로 구글 이외 앱스토어와 호환되지 않음
반응형
Comments