APK

本頁使用了標題或全文手工轉換
維基百科,自由的百科全書
APK
副檔名
.apk.xapk.apks.apkm
網路媒體型式
application/vnd.android.package-archive
格式類型套件管理器 存檔檔案
作為容器軟體套件
延伸自JARZIP
維基百科應用程式的APK安裝介面
絕大多數Android裝置,比如Nexus 4,允許使用者安裝APK格式的檔案來使用應用程式。

Android套件(英語:Android PackageAPK),是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檔有可能被竄改甚至加入惡意軟體,使用者需留意資訊安全風險。

擴充閱讀

參考文獻

  1. ^ Inside the Android Application Framework (video). Google Sites. Google. 2008 [2012-01-08]. (原始內容存檔於2011-12-24). 
  2. ^ Hatem Ben Yacoub. Tips: How to install apk files on Android Emulator. Open Handset Magazine. 19 January 2008 [2012年1月8日]. (原始內容存檔於2012年5月26日). 
  3. ^ The Structure of Android Package (APK) Files. OPhone SDN. OPhone Software Developer Network. 17 November 2010 [2012年1月8日]. (原始內容存檔於2011年8月15日). 
  4. ^ chibucks. Learn to Fish: General Structure of an APK. SDX-Developers Forum. Simple Machines Forum. 28 May 2010 [2012年1月8日]. (原始內容存檔於2012年7月17日). 
  5. ^ Developer description of MIME type for .apk. [2012-01-08]. (原始內容存檔於2009-07-18). 

外部連結