Apk (파일 포맷)
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
APK (파일 포맷)는 안드로이드 운영체제에서 사용되는 애플리케이션 패키지 파일 형식이다. APK 파일은 ZIP 아카이브 형식으로, 실행에 필요한 다양한 파일과 디렉토리를 포함하며, 애플리케이션의 이름, 버전, 접근 권한 등의 정보를 담은 매니페스트 파일, 코드, 리소스 등을 포함한다. 과거에는 블랙베리, 윈도우 등 다른 운영체제에서도 지원되었으나, 현재는 주로 안드로이드 운영체제에서 사용된다. 구글 플레이에서는 APK 파일 크기에 제한이 있으며, 이를 초과하는 경우 APK 확장 파일이나 Android App Bundle (AAB) 형식을 사용한다.
더 읽어볼만한 페이지
- 윈도우 11 - 윈도우 참가자 프로그램
윈도우 참가자 프로그램은 마이크로소프트에서 윈도우 운영체제 개선을 위해 사용자 피드백을 수집하고 새로운 기능을 시험하는 프로그램으로, 마이크로소프트 계정을 가진 누구나 참여하여 미리 보기 빌드를 사용해보고 피드백을 제공할 수 있으며, 참가자들은 다양한 채널을 통해 업데이트를 받는다. - 윈도우 11 - 마이크로소프트 스토어
마이크로소프트 스토어는 윈도우 운영체제에서 앱, 게임, 영화, TV 프로그램 등의 디지털 콘텐츠를 다운로드하고 설치할 수 있는 디지털 유통 플랫폼으로, 윈도우 8 개발 초기부터 시작되어 윈도우 10에서 다른 배포 플랫폼들을 통합하고 2017년에 명칭이 변경되었으며, 개발자를 위한 다양한 정책과 도구를 제공하고 윈도우 11에서는 앱 제출 정책을 개선하여 더 개방적인 스토어 환경을 제공한다. - 안드로이드 (운영체제) - 구글 어시스턴트
구글 어시스턴트는 2016년 구글에서 개발한 인공지능 음성 비서 서비스로, 양방향 대화 지원, 다양한 기기 및 플랫폼 확장성, 인터넷 검색, 일정 관리, 홈 오토메이션 제어 등의 기능을 제공하지만 개인정보 보호 문제에 대한 비판도 존재한다. - 안드로이드 (운영체제) - 웨어 OS
웨어 OS는 구글이 개발한 스마트워치용 운영 체제로, 구글 서비스 통합, 음성 제어, 피트니스 추적 등의 기능을 제공하며 안드로이드 및 iOS 기기와 연동되고, 핏비트 인수 후 디자인 개선 및 피트니스 기능 통합, 삼성 갤럭시 워치 시리즈 탑재 등을 통해 지속적으로 발전하고 있다. - 파일 포맷 - 바로 가기
바로 가기는 운영체제에서 파일, 폴더, 프로그램, 웹 페이지에 대한 참조를 제공하는 기능 및 파일로, 사용자들이 원본에 빠르게 접근하도록 GUI 환경의 사용성을 향상시킨다. - 파일 포맷 - EXE
EXE 파일 형식은 운영 체제에 따라 다양한 종류가 있는 실행 파일의 한 형태로, DOS MZ 실행 파일에서 PE, PE32+까지 발전해 왔으며, 코드, 데이터, 스택을 별도 관리하고 재배치 항목을 통해 실행 환경에 유연하게 대응하는 특징을 가진다.
| Apk (파일 포맷) - [IT 관련 정보]에 관한 문서 | |
|---|---|
| 파일 형식 정보 | |
| 이름 | APK (안드로이드 애플리케이션 패키지) |
| 확장자 | .apk, .apks, .aab, .xapk, .apkm, .akp |
| MIME 형식 | application/vnd.android.package-archive |
| 종류 | 패키지 파일 |
| 대상 플랫폼 | 안드로이드 블랙베리 10 파이어 OS Ubuntu Touch (WayDroid 컨테이너를 사용하는 리눅스 터미널 경유) 클래식 HarmonyOS 1.0-4.2 (KAL 리눅스 Ark 컴파일러 하) Windows 11: WSA용 데스크톱 애플리케이션 Fuchsia (Starnix 애드온 사용) 여러 다른 리눅스 배포판 (안드로이드 서브시스템 사용) |
| 기반 형식 | JAR |
| 추가 정보 | |
| 설명 | 안드로이드 소프트웨어 배포를 위한 파일 형식 |
2. 역사
블랙베리 유한회사(Blackberry Limited)는 2014년 1월 10.2.1 펌웨어 업데이트를 통해 블랙베리 10(Blackberry 10)에서 Android 런타임을 통해 Android 4.1 젤리 빈 이상 앱을 지원했지만, 이후 중단되었다.[8] 2014년 6월 18일, 블랙베리는 Amazon.com과의 공식 관계를 발표했으며, 그 결과 10.3 업데이트는 Amazon Appstore를 번들로 제공했다.
APK 파일은 ZIP 형식의 압축 파일이며, 우분투나 데비안 등에서 사용되는 DEB 파일이나, Windows 설치 프로그램에서 사용되는 MSI 파일과 유사하다. 안드로이드용 프로그램을 컴파일하여 모든 구성 요소를 하나의 패키지로 통합하면 APK 파일이 생성된다. 내부에는 가상 머신용 실행 파일, 디지털 인증서, 매니페스트 파일 등이 저장되어 있다. C 언어 등으로 작성된 네이티브 코드를 이용하는 응용 소프트웨어 (NDK를 사용하여 개발된 응용 프로그램)의 경우, 프로세서 (CPU) 아키텍처별 공유 라이브러리 (.so)도 포함된다. 다른 파일 형식과 마찬가지로, 확장자를 ".apk"로 해야 한다는 점을 제외하고는 이름을 자유롭게 지정할 수 있다.
2015년, 마이크로소프트는 Windows 10 Mobile용으로 "Astoria"라는 Android 런타임 환경을 발표하여, Android 앱이 최소한의 변경으로 에뮬레이션 환경에서 실행될 수 있도록 했다. Bing Maps 및 Xbox Live와 같은 Microsoft 플랫폼 API에 동등한 Google Mobile Services를 거의 즉시 대체할 수 있도록 접근을 허용했다. 그러나 Google Mobile Services 및 특정 핵심 API는 사용할 수 없었으며, "백그라운드 작업에 깊이 통합된" 앱은 이 환경을 제대로 지원하지 못했다.[9][10]
2016년 2월 25일, 마이크로소프트는 "Astoria" 프로젝트를 보류한다고 발표했다. 이는 iOS가 이미 모바일 앱 개발의 주요 대상이기 때문에 네이티브 Windows Bridge 툴킷과 중복되기 때문이라고 주장했다. 또한, C# 프로그래밍 언어를 사용하여 다중 플랫폼 앱 개발을 위해 Xamarin (전날 인수)의 제품 사용을 권장했다.[13][14] Astoria의 일부는 Windows 10 PC 버전의 Windows Subsystem for Linux (WSL) 플랫폼의 기반으로 사용되었다.[15]
2019년 8월 9일, HarmonyOS는 텔레비전용 HarmonyOS 1.0에서 Linux 커널을 기반으로 하는 AOSP를 통해 APK 호환성을 제공했다. 2021년 6월 2일에는 HarmonyOS 2.0 버전이 HarmonyOS NEXT 시스템의 Galaxy Edition 버전까지 스마트폰 및 태블릿으로 확장되어, 2024년 2분기, 6월부터 상용 버전으로 출시되는 다음 HarmonyOS 5 베타 버전을 시작했다.[16][17][18][19][20]
2021년 6월 Windows 11 발표 행사에서 Microsoft는 사용자가 Windows 데스크톱에서 Android 앱을 실행할 수 있도록 하는 Android 오픈 소스 프로젝트(AOSP)를 지원하는 새로운 Windows Subsystem for Android (WSA)를 선보였다. 마이크로소프트는 사용자가 Android 앱을 Windows에 사이드 로드할 수 있으며 타사 소스에서 다운로드한 APK 파일을 설치할 수 있음을 확인했다.[21] 2024년 3월 5일, 마이크로소프트는 2025년 3월 5일까지 Windows 11 서브시스템에서 Android 앱 지원을 종료한다고 발표했는데, 이는 Windows NT 커널에서 서브시스템을 폐지하고 Amazon App Store의 Android apk 앱 호환성을 중단하기 위한 노력의 일환이다.[22]
구글은 2021년 12월에 2022년에 Android 게임을 Windows로 가져올 계획을 발표했다.[23][24]
3. 파일 구성
APK 파일은 일반적으로 다음과 같은 주요 구성 요소를 포함한다.3. 1. META-INF 디렉터리
`META-INF` 디렉터리는 APK 파일의 핵심 구성 요소 중 하나로, 애플리케이션의 메타데이터를 담고 있다. 이 디렉터리 안에는 다음과 같은 파일들이 존재한다.
```text
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=
3. 2. lib 디렉터리
`lib`는 JNI를 통해 로드할 수 있는 네이티브 라이브러리와 같이 플랫폼에 종속된 컴파일된 코드를 포함하는 디렉터리이다. 이 디렉터리는 CPU 아키텍처별로 더 많은 하위 디렉터리로 나뉜다.[25]
3. 3. res 디렉터리
`resources.arsc` 파일로 컴파일되지 않은 리소스들을 포함하는 디렉터리이다.[25]3. 4. assets 디렉터리
`AssetManager`를 통해 검색 가능한 애플리케이션 에셋(asset)을 포함하는 디렉터리이다. `res` 폴더에 넣을 수 없는 파일(ZIP 파일, 텍스트 파일, 바이너리 파일 등)이 여기에 들어간다.3. 5. AndroidManifest.xml 파일
`AndroidManifest.xml`은 애플리케이션의 이름, 버전, 접근 권한, 참조된 라이브러리 파일 등의 정보를 담고 있는 추가적인 매니페스트 파일이다. 이 파일은 바이너리 XML 형식으로 저장되며, AXMLPrinter2, Apktool M 또는 Androguard와 같은 도구를 사용하여 사람이 읽을 수 있는 일반 텍스트 XML 형식으로 변환할 수 있다.[25]3. 6. classes.dex 파일
달빅 가상 머신 또는 Android 런타임에서 실행되는 DEX 파일 형식으로 컴파일된 클래스들을 포함한다.[25]3. 7. resources.arsc 파일
resources.arsc영어 파일은 바이너리 XML과 같이 미리 컴파일된 리소스를 포함하는 파일이다.[25]4. 다른 운영체제에서의 사용
블랙베리 유한회사는 2014년 1월 10.2.1 펌웨어 업데이트를 통해 중단된 블랙베리 10에서 Android 런타임을 통해 Android 4.1 젤리 빈 이상 앱을 지원했다.[8] 2014년 6월 18일, 블랙베리는 Amazon.com과의 공식 관계를 발표했으며, 그 결과 10.3 업데이트는 Amazon Appstore를 번들로 제공했다.
2015년, 마이크로소프트는 Windows 10 Mobile용으로 "Astoria"라는 Android 런타임 환경을 발표했다. 이를 통해 Android 앱이 에뮬레이션된 환경에서 실행될 수 있었다. 그러나 Google Mobile Services 및 특정 핵심 API는 사용할 수 없었고, 백그라운드 작업에 깊이 통합된 앱은 제대로 지원되지 않았다.[9][10] 2016년 2월 25일, 마이크로소프트는 "Astoria" 프로젝트를 보류한다고 발표했다.[13][14]
2019년 8월 9일, HarmonyOS는 텔레비전용 HarmonyOS 1.0에서 리눅스 커널을 기반으로 하는 AOSP를 통해 APK 호환성을 제공했다. 2021년 6월 2일에는 HarmonyOS 2.0 버전이 스마트폰 및 태블릿으로 확장되었다.[16][17][18][19][20]
2021년 6월 Windows 11 발표 행사에서 Microsoft는 Windows Subsystem for Android (WSA)를 선보였다. 이를 통해 사용자는 Windows 데스크톱에서 Android 앱을 실행할 수 있게 되었다. 마이크로소프트는 사용자가 타사 소스에서 다운로드한 APK 파일을 설치할 수 있음을 확인했다.[21] 그러나 2024년 3월 5일, 마이크로소프트는 2025년 3월 5일까지 WSA 지원을 종료할 것이라고 발표했다.[22]
5. 확장 파일 및 배포 방식
구글 플레이는 APK 파일 크기를 100MB로 제한하고 있다.[37] 100MB를 초과하는 데이터를 배포하기 위해 APK 확장 파일을 이용하거나, 기기 구성에 맞춰 별도 APK를 준비하는 Multiple APK, 또는 Android App Bundle(aab)을 사용할 수 있다. 2021년 하반기부터 App Bundle 사용이 필수가 되며, APK 확장 파일 지원은 종료될 예정이다. 대용량 에셋 배포에는 Play Asset Delivery(PAD) 사용이 권장된다.
5. 1. APK 확장 파일
구글 플레이에서는 사용자가 다운로드하는 각 APK 파일의 크기 제한이 100MB로 정해져 있다. 100MB를 초과하는 데이터를 배포하는 경우, '''APK 확장 파일'''을 이용하는 방법이 있다. APK 확장 파일은 임의의 형식을 사용할 수 있지만, 암호화에 대응하는 opaque binary blob (obb)라고 불리는 독자적인 형식으로 변환하는 도구인 ''jobb''도 준비되어 있다. 확장 파일은 main과 patch로 나뉘며, 파일명은 특정 명명 규칙을 따라야 한다. 각 확장 파일의 크기 제한은 2GB이다.5. 2. Multiple APK
일반적으로 APK에는 여러 화면 해상도 및 밀도, 여러 CPU 아키텍처와 같은, 기기 구성에 맞는 여러 파일을 모두 포함하여 1개의 패키지로 구성하지만, 이는 앱 패키지가 비대해지고 사용자가 다운로드해야 하는 파일 크기가 증가하는 요인이 된다. 구글 플레이에서는 개별 기기 구성(CPU 아키텍처, 화면 해상도 등)에 맞춰 별도의 APK 파일을 준비하여 사용자의 다운로드 크기를 줄이면서 1개의 제품으로 관리하기 위한 시스템으로, '''Multiple APK'''가 지원된다[37][38]。 다만 Multiple APK에서는 개별적으로 패키지 생성 및 서명이 필요하여 번거로우므로, 대안으로 후술할 Android App Bundle의 사용이 권장된다.5. 3. Android App Bundle (AAB)
Android App Bundle(aab)은 사용자가 다운로드해야 하는 APK 파일 크기를 줄이기 위해 고안된 새로운 업로드 형식이다.[39][40][41][42] Play Console에서 aab를 업로드하면, 구글 플레이가 사용자의 실행 환경에 맞춰 최적의 APK 파일을 생성한다(Dynamic Delivery). aab를 사용하여 공개된 앱의 경우, APK 파일 다운로드 크기 상한은 150MB이다. 또한, Android App Bundle은 APK 확장 파일(obb)을 지원하지 않는다.2021년 하반기에는 App Bundle의 사용이 필수가 되며, APK 확장 파일에 대한 지원이 종료될 예정이다.[43] 대용량 에셋의 배포에는 대체로 '''Play Asset Delivery'''(PAD)를 사용하는 것이 권장된다.
참조
[1]
웹사이트
Application Fundamentals
https://developer.an[...]
2018-12-03
[2]
웹사이트
Google is moving away from APKs on the Play Store
https://www.theverge[...]
2021-06-30
[3]
웹사이트
Application Studio
https://developer.an[...]
2020-02-22
[4]
웹사이트
Inside the Android Application Framework
http://sites.google.[...]
2008-10-22
[5]
웹사이트
Tips: How to install apk files on Android Emulator
https://web.archive.[...]
2018-04-20
[6]
웹사이트
The Structure of Android Package (APK) Files
https://web.archive.[...]
OPhone Software Developer Network
2010-11-17
[7]
웹사이트
Unknown Sources: Everything you need to know!
https://www.androidc[...]
2018-07-27
[8]
웹사이트
BlackBerry 10.2.1 Update Allows you to Install APK Files on your Phone
https://goodereader.[...]
2014-01-29
[9]
웹사이트
How will Android support work in Windows 10 for Phones?
https://web.archive.[...]
[10]
웹사이트
Microsoft brings Android, iOS apps to Windows 10
https://arstechnica.[...]
2015-04-29
[11]
웹사이트
Microsoft might not bring Android apps to Windows after all
https://www.theverge[...]
Vox Media
2015-11-16
[12]
웹사이트
Microsoft presses pause on tool for porting Android apps to Windows 10
http://www.cnet.com/[...]
CBS Interactive
2015-11-16
[13]
웹사이트
Microsoft confirms: Android-on-Windows Astoria tech is gone
https://arstechnica.[...]
Conde Nast
2016-02-25
[14]
웹사이트
An Update on the Developer Opportunity and Windows 10
https://blogs.window[...]
Microsoft
2016-02-25
[15]
웹사이트
Why Microsoft needed to make Windows run Linux software
https://arstechnica.[...]
Condé Nast
2016-04-06
[16]
웹사이트
Google apps still supported on new HarmonyOS upgraded from EMUI
https://www.rprna.co[...]
2021-06-12
[17]
웹사이트
HarmonyOS NEXT Galaxy will officially meet users in Spring: Huawei
https://www.huaweice[...]
HC Newsroom
[18]
웹사이트
Huawei to launch HarmonyOS NEXT beta at HDC 2024 event in June
https://www.huaweice[...]
2024-04-11
[19]
웹사이트
Huawei's HarmonyOS has ADB mode, could it be based on Android?
https://klgadgetguy.[...]
2024-02-29
[20]
웹사이트
Huawei's next version of HarmonyOS will drop support for Android apps
https://liliputing.c[...]
2023-11-13
[21]
웹사이트
Microsoft confirms Android apps will run on all Windows 11 PCs
https://www.windowsl[...]
Windows Latest
2021-06-27
[22]
웹사이트
Microsoft to end its Android apps on Windows 11 subsystem in 2025
https://www.theverge[...]
The Verge
[23]
웹사이트
Google Play Games - Play Android games on PC
https://play.google.[...]
[24]
웹사이트
Google is bringing Android games to Windows in 2022
https://www.theverge[...]
2021-12-09
[25]
웹사이트
ABI Management {{!}} Android Developers
https://developer.an[...]
[26]
웹사이트
Android ABIs {{!}} Android NDK
https://developer.an[...]
[27]
웹사이트
Changelog r17
https://github.com/a[...]
2018-09-05
[28]
문서
アプリの基礎
https://developer.an[...]
[29]
문서
Application Fundamentals
https://developer.an[...]
[30]
문서
Inside the Android Application Framework
https://sites.google[...]
[31]
문서
Tips: How to install apk files on Android Emulator
http://openhandsetma[...]
[32]
문서
The Structure of Android Package (APK) Files
http://en.ophonesdn.[...]
[33]
문서
Learn to Fish: General Structure of an APK
http://forum.sdx-dev[...]
[34]
웹사이트
ABI Management {{!}} Android Developers
https://developer.an[...]
[35]
문서
APK 拡張ファイル
https://developer.an[...]
[36]
웹사이트
"APK Expansion Files | Android Developers"
https://developer.an[...]
[37]
웹사이트
"複数 APK サポート | Android デベロッパー | Android Developers"
https://developer.an[...]
[38]
웹사이트
"Multiple APK support | Android Developers"
https://developer.an[...]
[39]
웹사이트
"Android App Bundle について | Android デベロッパー | Android Developers"
https://developer.an[...]
[40]
웹사이트
"About Android App Bundles | Android Developers"
https://developer.an[...]
[41]
웹사이트
"アプリのサイズを削減 | Android Developers"
https://developer.an[...]
[42]
웹사이트
"Reduce your app size | Android Developers"
https://developer.an[...]
[43]
블로그
"Google Developers Japan: 最近の Android App Bundle の改善と新規アプリのスケジュール"
https://developers-j[...]
[44]
웹인용
Inside the Android Application Framework
http://sites.google.[...]
Google
2014-07-15
[45]
웹인용
Tips: How to install apk files on Android Emulator
Open Handset Magazine
2008-10-14
[46]
웹인용
The Structure of Android Package (APK) Files
OPhone Software Developer Network
2011-06-11
[47]
웹인용
Learn to Fish: General Structure of an APK
Simple Machines Forum
2012-09-18
[48]
웹인용
Developer description of MIME type for .apk
Androidguys.com
2012-08-20
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com