안드로이드 패키지(Android Package), APK 파일 구조, 릴리즈 빌드

반응형

안드로이드 패키지(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

반응형

댓글

Designed by JB FACTORY