skydoves 님께서 제공해 주신 안드로이드 개발자 로드맵을 참고하여 작성하는 게시물입니다.
https://github.com/skydoves/android-developer-roadmap/blob/main/README_KR.md
android-developer-roadmap/README_KR.md at main · skydoves/android-developer-roadmap
🗺 The Android Developer Roadmap offers comprehensive learning paths to help you understand Android ecosystems. - skydoves/android-developer-roadmap
github.com
안드로이드 패키지에는 APK(Android Package), AAB(Android App Bundle) 두 가지 형식이 존재합니다.
APK
- APK는 안드로이드 앱 배포의 전통적인 형식으로, 앱을 설치하고 실행하기 위해 필요한 모든 파일, 리소스, 코드를 포함한 단일 패키지입니다. 앱 실행에 필요한 리소스, 바이너리, 에셋 등이 모두 포함되어 있습니다.
- 따라서 APK는 모든 기기별 리소스와 바이너리를 포함하기 때문에 불필요하게 파일 크기가 커질 수 있습니다.
- 테스트 시에 APK 파일을 다운로드 받아 직접 설치가 가능합니다.
AAB
- AAB는 Google이 도입한 새로운 형식으로, 더 효율적인 배포를 위한 패키지입니다. AAB는 APK와 달리, 전체 앱을 단일 파일로 묶지 않고 필요한 부분만 각 사용자 기기에 맞게 최적화하여 다운로드하게 만듭니다.
- AAB 파일은 기기 유형, 화면 크기, 지역 언어 등 특정 사용자 환경에 맞춘 APK를 Google Play가 자동으로 생성합니다.
- Google Play는 사용자의 기기에 맞는 최적화된 APK를 생성하고, 사용자는 필요한 파일만 다운로드합니다.
- AAB는 사용자의 기기에 맞는 APK를 동적으로 생성하므로, 불필요한 리소스를 포함하지 않아 파일 크기가 줄어듭니다.
- Google Play는 각 기기에 맞게 최적화된 APK만을 배포하기 때문에 앱 설치와 업데이트가 더 효율적입니다.
- AAB는 주로 Google Play 스토어를 통해 배포되며, 외부 배포나 사이드로딩에 적합하지 않아 Google Play에 대한 의존성이 높습니다.
APK는 테스트 및 배포 자율성이 높은 대신 용량이 크고, AAB는 테스트 및 배포 자율성이 Google Play에 더 의존적이지만 효율적인 용량 처리가 자동으로 가능한 것이 비교 특징이겠습니다.