APK
外觀
副檔名 | .apk 、.xapk 、.apks 、.apkm |
---|---|
網路媒體型式 |
application/vnd.android.package-archive |
格式類型 | 包管理器 存檔文件 |
作為容器 | 軟件包 |
延伸自 | JAR 和 ZIP |
Android包(英語:Android Package,APK),是Android操作系統使用的一種應用程序包文件格式,用於分發和安裝移動應用及中間件。一個Android應用程序的代碼想要在Android設備上運行,必須先進行編譯,然後被打包成為一個被Android系統所能識別的文件才可以被運行,而這種能被Android系統識別並運行的檔案格式便是「APK」。 一個APK文件內包含被編譯的代碼文件(.dex 文件),文件資源(resources), assets,證書(certificates),和清單文件(manifest file)。[1][2][3][4]
APK文件基於ZIP文件格式,它與JAR文件的構造方式相似。它的互聯網媒體類型是:application/vnd.android.package-archive
[5]。
結構
[編輯]一個APK文件通常包含以下文件:
META-INF
文件夾:MANIFEST.MF
: 清單文件(Manifest file)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=
res
: APK所需要的資源文件夾。AndroidManifest.xml
: 一個傳統的Android清單文件,用於描述該應用程序的名字、版本號、所需權限、註冊的服務、鏈接的其他應用程序。該文件使用XML文件格式,可以編譯為二進制的XML,使用的工具為 AXMLPrinter2(頁面存檔備份,存於網際網路檔案館) 或apktool(頁面存檔備份,存於網際網路檔案館).classes.dex
: classes文件通過DEX編譯後的文件格式,用於在Dalvik虛擬機上運行的主要代碼部分。resources.arsc
:程式的語言檔案,可以透過這軟體用(AndroidResEdit等工具)來進行翻譯
也可以用ApkTool等工具來反編譯後再開始進行軟體修改,亦可編譯回來。
分發
[編輯]APK格式由谷歌公司(Google)發布,但谷歌在其官方應用商店Google Play並不提供apk文件下載,用戶只能通過安卓手機上的應用程序Play商店來在線安裝其他應用。但有第三方的網站提供應用的APK下載,用戶可以下載到手機,然後在本地安裝,不過第三方網站提供的apk檔有可能被竄改甚至加入惡意軟體,用戶需留意資訊安全風險。
擴展閱讀
[編輯]參考文獻
[編輯]- ^ Inside the Android Application Framework (video). Google Sites. Google. 2008 [2012-01-08]. (原始內容存檔於2011-12-24).
- ^ Hatem Ben Yacoub. Tips: How to install apk files on Android Emulator. Open Handset Magazine. 19 January 2008 [2012年1月8日]. (原始內容存檔於2012年5月26日).
- ^ The Structure of Android Package (APK) Files. OPhone SDN. OPhone Software Developer Network. 17 November 2010 [2012年1月8日]. (原始內容存檔於2011年8月15日).
- ^ chibucks. Learn to Fish: General Structure of an APK. SDX-Developers Forum. Simple Machines Forum. 28 May 2010 [2012年1月8日]. (原始內容存檔於2012年7月17日).
- ^ Developer description of MIME type for .apk. [2012-01-08]. (原始內容存檔於2009-07-18).