[android studio] 안드로이드 앱 배포, APK와 AAB

post-thumbnail

앱을 만들었다면 스토어에 등록해 사용자가 이용할 수 있도록 배포를 해야한다. 그런데 우리가 Android Studio를 통해 앱을 완성시켰을 때 프로젝트 안의 여러 파일들을 보낼 수는 없다. 이를 하나로 묶어 배포해야 한다.

배포 파일 형식

안드로이드 앱의 배포 파일은 2가지 형식이 있다. APK와 AAB이다. APK는 전통적인 배포 파일 형식으로 컴파일된 코드와 리소스를 묶어서 키로 서명한 것이다. AAB는 2018년 구글 I/O에서 발표한 새로운 형식의 앱 배포 파일이다.

APK(Android Application Package)

Google Play에서 사용자가 다운로드하는 APK는 100MB 이하여야 한다. 일반적으로는 앱을 구성하는 코드와 파일을 저장하기에 충분하지만 고화질 그래픽이나 미디어 파일 등을 포함할 경우 용량 문제가 생긴다. 이런 앱을 실행할 때 개발자가 직접 추가 리소스를 호스팅하고 다운로드해야 했다.

AAB(Android App Bundle)

AAB는 APK의 용량 문제를 해결하기 위해 등장한 Google Play를 비롯한 기타 앱 스토어와 Android Studio, Gradle, Unity 등의 빌드 도구에서 지원하는 Android용 배포 형식이다.

APK와 AAB의 차이

  • AAB 형식은 앱 스토어에 올리면 사용자 기기에 맞게 최적화된 APK를 대신 만들어 준다.
    • 설치 파일은 똑같이 APK지만, 개발자가 직접 APK 파일을 만들지 않고 Google Play에서 최적화된 파일을 만들어 주는 것이다.
  • 설치하는 기기에 필요한 파일만 포함하기 때문에 앱의 크기가 줄어드는 효과가 있다.
    • ex) 다국어를 지원하는 앱은 언어별로 리소스를 포함하지만 한국어로 지정된 기기에서 설치한다면 나머지 언어 리소스는 필요없게 된다.

앱 서명

Android 배포 파일을 만들려면 Key를 만들어 앱에 서명해야 한다. 앱 서명 방법은 2가지가 있다.

1. 서명 키를 개발자가 직접 만들어 관리
2. Google Play에서 관리

1. 개발자가 서명 키를 관리

출시용으로 앱을 빌드할 때 개발자가 만든 키로 앱을 서명하고 이를 Google Play에 등록하여 사용자에게 전달한다. (개발자가 만든 서명 키 1개로 앱을 관리)

문제점 : 개발자가 서명 키를 관리할 경우

만약 개발자기 키를 분실하거나 도용당하는 경우 대처할 방법이 없다.

경축! 아무것도 안하여 에스천사게임즈가 새로운 모습으로 재오픈 하였습니다.
어린이용이며, 설치가 필요없는 브라우저 게임입니다.
https://s1004games.com

  • 업데이트 하려면 이전 버전과 똑같은 키로 서명해야 되는데 앞서 말한 문제가 발생한다면 업데이트가 불가능하다. 새로운 키를 만들어 서명하면 완전히 새로운 앱으로 등록된다.

2. Google Play에서 관리

위의 문제점을 해결하고자 구글에서 Play 앱 서명 서비스를 만들었다.
키를 2개로 구분한다.

  • 업로드 키 : 기존의 서명 키로 개발자가 키를 만들어 앱을 서명하지만 Google Play에 앱을 등록할 때만 사용한다.
  • 앱 서명 키 : Google Play가 만드는 키로 업로드된 앱을 다시 자체적으로 만든 키로 서명해서 사용자에 전달한다. 이 키는 Google에거 관리하며 개발자가 직접 제어할 수 없다.

[출처] https://velog.io/@wlgy33/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%B1-%EB%B0%B0%ED%8F%AC-APK%EC%99%80-AAB

 

 

 

 

 

 

 

본 웹사이트는 광고를 포함하고 있습니다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.
번호 제목 글쓴이 날짜 조회 수
153 [Android Studio] Google Play Console - 앱 API 수준 업데이트하기 (앱 업데이트 출시, 앱 API 수준 이상 타겟팅 방법, API 31 To 33) file 졸리운_곰 2024.08.28 203
» [android studio] 안드로이드 앱 배포, APK와 AAB file 졸리운_곰 2024.05.03 208
151 [Android SDK] [안드로이드] 접속된 네트워크 인터페이스의 IP 주소 가져오기 졸리운_곰 2024.05.02 191
150 [Android SDK] [안드로이드] 핸드폰 번호, 기기 고유 id 등 단말기 정보 가져오기 file 졸리운_곰 2024.05.02 451
149 [Android SDK] Android) 안드로이드 Jsoup로 웹크롤링 하기 (예제포함) - "데일리 브리핑 앱 개발기" file 졸리운_곰 2024.05.01 139
148 [Android SDK] [Android] Activity 생명주기와 이동 file 졸리운_곰 2024.05.01 182
147 [Android SDK] [Android] EditText 읽기 전용으로 만들기 졸리운_곰 2024.05.01 120
146 [Android SDK] 안드로이드: 간단한 데이터를 저장하고 싶을 때(SharedPreferences 사용예제) 졸리운_곰 2024.05.01 145
145 [Android SDK] [Android] Jsoup 으로 파싱하기 file 졸리운_곰 2024.05.01 146
144 [Android SDK] [Android] 안드로이드 - 액티비티(Activity)로부터 결과 데이터 받아오기 file 졸리운_곰 2024.05.01 166
143 [Android SDK] [안드로이드/Android] 기기 네트워크 연결 상태 확인 file 졸리운_곰 2024.05.01 138
142 [Android SDK] 안드로이드 - 메시징 - Toast 졸리운_곰 2024.05.01 201
141 [Android SDK] [Android] 안드로이드 Alert 창 띄우기 file 졸리운_곰 2024.05.01 170
140 [Android SDK] 버튼을 클릭하면, 동작하는 코드를 작성하는 방법 졸리운_곰 2024.05.01 120
139 [Android SDK] [ Android ] a webview method was called on thread 'javabridge' 에러가 발생했을 때 졸리운_곰 2024.05.01 202
138 [Android SDK] [안드로이드] Thread, TimerTask, Handler 반복 호출 만들기 JAVA 졸리운_곰 2024.05.01 157
137 [Android SDK] [Android] postDelayed()를 이용해서 주기적 메소드 실행 졸리운_곰 2024.05.01 144
136 [Android SDK] Making Android WebView autorefresh periodically 졸리운_곰 2024.05.01 168
135 [Android SDK] [안드로이드] 시스템 멈추기 - Sleep() 사용법 file 졸리운_곰 2024.05.01 140
134 [Android SDK] 안드로이드 스레드 예제. 스레드로 고민해보기. (Android Thread UseCase) file 졸리운_곰 2024.05.01 143
대표 김성준 주소 : 경기 용인 분당수지 U타워 등록번호 : 142-07-27414
통신판매업 신고 : 제2012-용인수지-0185호 출판업 신고 : 수지구청 제 123호 개인정보보호최고책임자 : 김성준 sjkim70@stechstar.com
대표전화 : 010-4589-2193 [fax] 02-6280-1294 COPYRIGHT(C) stechstar.com ALL RIGHTS RESERVED