Apk (파일 포맷)

안드로이드 응용 프로그램 패키지(, APK)는 안드로이드의 소프트웨어와 미들웨어 배포에 사용되는 패키지 파일이며, '.apk'확장자를 가진다. APK 파일은 우분투 같은 데비안 기반 운영 체제에서 사용하는 뎁 패키지와 마이크로소프트 윈도우에서 사용하는 MSI 패키지와 같은 설치 파일과 비슷하다. APK 파일을 만들려면, 안드로이드용 프로그램을 먼저 컴파일한 후, 모든 파일들을 하나의 패키지 파일로 모은다. APK 파일은 해당하는 프로그램의 모든 코드를 포함하며, 자원, 정보, 인증서 및 매니페스트 파일 등을 포함한다.

안드로이드 응용 프로그램 패키지의 확장자는 .apk로 ZIP파일 기반인 JAR를 기반으로 하며, 압축 파일의 한 종류이다. MIME 유형은 application/vnd.android.package-archive이다.

 파일 구성 
APK 파일에서 일반적으로 포함하는 파일 또는 내용은 아래와 같다.

 META-INF : 디렉토리:
 MANIFEST.MF : 매니페스트 파일.
 CERT.RSA : 응용 프로그램에 대한 전자 서명 파일.
 CERT.SF : 메니페스트 파일을 포함한 리소스와 그에 대응하는 SHA-1 해시값. 예제 :
 Signature-Version: 1.0
 Created-By: 1.0 (Android)
 SHA1-Digest-Manifest: wxqnEAI0UA5nO5QJ8CGMwjkGGWE=
 ...
 Name: res/layout/exchange_component_back_bottom.xml
 SHA1-Digest: eACjMjESj7Zkf0cBFTZ0nqWrt7w=
 ...
 Name: res/drawable-hdpi/icon.png
 SHA1-Digest: DGEqylP8W0n0iV/ZzBx3MW0WGCA=
lib : 프로세스와 연계된 소프트웨어 레이어를 포함하는 디렉토리. 이 디렉토리는 세부적으로 더 나뉘게 된다:
armeabi : ARM 기반 프로세서 전용으로 컴파일 된 코드.
armeabi-v7a : ARMv7 와 그것을 기반으로 하는 프로세서 전용으로 컴파일 된 코드.
x86 : x86 기반 프로세서 전용으로 컴파일 된 코드.
mips : MIPS 기반 프로세서 전용으로 컴파일 된 코드.
 res : resources.arsc(아래 참고)에서 제외된 정보를 포함하는 디렉토리.
 assets : AssetManager를 통해 검색 할 수 있는, 응용 프로그램의 정보를 포함하는 디렉토리.
 AndroidManifest.xml: 추가적인 매니페스트 파일. 응용 프로그램의 이름, 버전, 액세스 권한,  라이브러리 파일을 정보를 포함한다. 이 파일은 이진 XML 파일로써 AXMLPrinter2, tool 또는 Androguard 과 같은 프로그램을 사용하면 일반적인 XML파일과 같이 볼 수 있다.
 classes.dex : 달빅 가상 머신에 의해 dex 파일 형식으로 컴파일 된 영역.
 resources.arsc : 이진 XML과 같은 선컴파일된 리소스를 포함하는 파일.

 같이 보기 
 안드로이드 소프트웨어 개발
 구글 플레이
 .ipa

 각주 

분류:안드로이드 (운영체제)
분류:파일 포맷
분류:윈도우 11