안드로이드 패키지(Android Package), APK 파일 구조, 릴리즈 빌드
APK (Android Package)는 안드로이드 운영체제에서 애플리케이션(모바일 앱, 모바일 게임, 기타)을 배포하고 설치하는데 사용되는 패키지 파일 형식입니다.
https://en.wikipedia.org/wiki/Apk_(file_format)
APK 파일의 구조
APK 파일은 하나의 압축 파일(ZIP 아카이브)로 안드로이드 운영 체제에서 실행되는 앱에 필요한 파일 및 디렉토리를 포함합니다.
AndroidManifest.xml - 앱의 구조, 권한, 액티비티, 서비스 등 앱의 기본적인 설정 정보가 있는 파일
classes.dex - 안드로이드 런타임에서 실행되는 dex 파일 형식(Dalvik)으로 컴파일된 클래스
res/ - resources.arsc로 컴파일되지 않은 리소스가 포함된 디렉토리
assets/ - AssetManager로 검색할 수 있는 애플리케이션 자산을 포함하는 디렉토리(게임 리소스, 웹 뷰에 필요한 HTML 파일 등)
META-INF - APK 파일의 서명 정보와 메타데이터
lib/ - 아키텍처에 따라 달라지는 컴파일된 코드를 포함하는 디렉토리(특정 아키텍처 네이티브 라이브러리)
resources.arsc - 미리 컴파일된 리소스를 포함하는 파일(바이너리 XML)
apk의 파일 확장자를 변경하고(zip) 압축해제하여 파일을 구성하는 파일 및 디렉토리를 확인합니다.
릴리즈 빌드 패키지
릴리즈 빌드 패키지(Release Build Package)는 안드로이드 앱을 구글플레이에 출시 및 배포하기 위한 최종 빌드 파일로 배포를 위해 최적화된 APK 파일을 포함합니다. 구글 플레이에서 요구하는 구체적인 요구 사항을 충족해야합니다(디버깅 사용중지, 서명, 난독화, 최적화, 기타)
https://developer.android.com/studio/publish
앱 서명(Signing)
릴리즈 APK는 디지털 방식으로 서명되어야합니다. 서명을 통해 앱의 안전성을 보장할 수 있습니다. 서명된 APK는 구글 플레이스토어(또는 기타 마켓)에서 검증 후 설치할 수 있습니다.
키스토어(Keystore) - 앱을 서명하려면 개인 키가 포함된 keystore 파일이 필요합니다. 개발자는 이 키를 사용해 APK를 서명합니다.
프로가드(ProGuard)
ProGuard(코드 난독화 및 최적화 도구)를 사용하여 앱의 코드를 압축 및 난독화합니다. 앱의 크기를 줄이고 보안을 강화할 수 있습니다
Gradle 빌드 파일 설정(build.gradle 파일은 안드로이드 프로젝트의 빌드 설정을 정의하는 파일)
안드로이드 앱 번들(Android App Bundle, .aab)
2021년 8월 이후 모든 신규 앱과 2021년 11월 이후 기존 앱의 모든 업데이트는 Google Play에서 안드로이드 어플리케이션을 게시 및 배포하기위해 Android 앱 번들 파일형식이 필요합니다.
https://en.wikipedia.org/wiki/Android_App_Bundle
'유니티게임개발 > 안드로이드(빌드, 구글플레이콘솔)' 카테고리의 다른 글
구글플레이콘솔에서 Google Play 결제 라이브러리 버전 업데이트 안내 (0) | 2024.07.25 |
---|---|
유니티 게임 안드로이드 빌드에서 gradle 파일의 코드 난독화 활성화 부분(minifyEnabled) (0) | 2024.07.16 |
유니티 빌드에서 앱 번들(aab)파일의 base 모듈 크기 줄이기(구글 플레이 콘솔 파일 업로드 오류) (0) | 2024.06.24 |
구글 플레이 콘솔(google play console)에서 안드로이드 앱 업로드 오류(디버그 모드로 서명한 앱) (0) | 2024.06.24 |
구글 플레이 콘솔(google play console) 앱 업로드 및 출시 과정(A-Z) (0) | 2024.06.24 |