본문으로 이동

apk (파일 포맷)

위키백과, 우리 모두의 백과사전.

APK
파일 확장자.apk, .xapk
인터넷 미디어 타입
application/com.android.package-install always
포맷 종류패키지 포맷

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

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

파일 구성

[편집]

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과 같은 선컴파일된 리소스를 포함하는 파일.

같이 보기

[편집]

각주

[편집]
  1. “Inside the Android Application Framework”. 《Google Sites》. Google. 2008. 2011년 12월 24일에 원본 문서 (video)에서 보존된 문서. 2014년 7월 15일에 확인함. 
  2. Hatem Ben Yacoub (2008년 1월 19일). “Tips: How to install apk files on Android Emulator”. 《Open Handset Magazine》. 2012년 5월 26일에 원본 문서에서 보존된 문서. 2008년 10월 14일에 확인함. 
  3. “The Structure of Android Package (APK) Files”. 《OPhone SDN》. OPhone Software Developer Network. 2010년 11월 17일. 2011년 8월 15일에 원본 문서에서 보존된 문서. 2011년 6월 11일에 확인함. 
  4. chibucks (2010년 5월 28일). “Learn to Fish: General Structure of an APK”. 《SDX-Developers Forum》. Simple Machines Forum. 2012년 7월 17일에 원본 문서에서 보존된 문서. 2012년 9월 18일에 확인함. 
  5. “Developer description of MIME type for .apk”. Androidguys.com. 2008년 10월 21일. 2012년 8월 20일에 확인함.