Android套件(英語:Android PackageAPK),是Android作業系統使用的一種應用程式套件檔案格式,用於分發和安裝流動應用中介軟體。一個Android應用程式的代碼想要在Android裝置上執行,必須先進行編譯,然後被打套件成為一個被Android系統所能辨識的檔案才可以被執行,而這種能被Android系統辨識並執行的檔案格式便是「APK」。 一個APK檔案內套件含被編譯的代碼檔案(.dex 檔案),檔案資源(resources), assets,證書(certificates),和清單檔案(manifest file)。[1][2][3][4]

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

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檔有可能被竄改甚至加入惡意軟件,用戶需留意資訊保安風險。

在其他作業系統上的使用

黑莓公司 通過 Android Runtime 支援執行 Android 4.1 Jelly Bean 及更高版本的應用程式,並通過 2014 年 1 月的 10.2.1 韌體更新支援至已停止服務的 Blackberry 10 系統。[6] 2014 年 6 月 18 日,黑莓宣佈與 亞馬遜 建立合作關係,並在 10.3 更新中整合 亞馬遜應用商店

在 2015 年的 Build 大會上,微軟宣佈為 Windows 10 Mobile 提供一個名為「阿斯托里亞 (Astoria)」的 Android 執行環境,使 Android 應用能夠在模擬環境中執行,並且只需進行少量更改即可,同時可以使用微軟平台 API,例如 Bing MapsXbox Live,作為相當於 Google流動服務 的替代方案。Google 移動服務及某些核心 API 不會被支援,且在後台任務中有「深度整合」的應用程式在此環境中可能無法良好執行。[7]

2016年2月25日,在已經於2015年11月延遲發佈後,[8][9] 微軟宣佈將擱置 「Astoria」 專案,理由是該工具套件與原生 Windows Bridge 工具套件存在冗餘,因為 iOS 已經是流動應用開發的主要目標。公司還鼓勵使用 Xamarin(前一天剛被微軟收購)的產品,通過 C# 程式語言 進行多平台應用程式開發。[10][11] 「Astoria」 專案中的部分技術後來成為 Windows 10 PC 版本上的 適用於Linux的Windows子系統 (WSL) 平台的基礎之一。[12]

2019年8月9日,鴻蒙作業系統 (HarmonyOS) 通過Android開源專案 (AOSP) 基於Linux內核的基礎實現了APK相容性,HarmonyOS 1.0 首先用於電視裝置[13][14]。2021年6月2日,HarmonyOS 2.0 版本進一步擴充到智能電話和平板電腦,直到HarmonyOS NEXT系統推出 Galaxy Edition 版本,並計劃在2024年第二季度發佈的 HarmonyOS 5 Beta 商業版本中繼續迭代更新。[15][16]

在2021年6月的Windows 11發佈會上,微軟展示了新的Windows Subsystem for Android (WSA),這將支援Android開源專案 (AOSP),允許用戶在Windows桌面上執行安卓應用。微軟確認,用戶可以將從第三方源下載的APK檔案安裝到Windows中。[17] 2024年3月5日,微軟宣佈將於2025年3月5日停止Windows 11的Android應用子系統支援,這是其逐步取消Windows NT內核對Android APK應用相容性的一部分,屆時套件括來自亞馬遜應用商店的安卓應用也將不再支援。[18]

2021年12月,谷歌宣佈計劃在2022年將Android遊戲引入Windows平台。[19][20]

擴充閱讀

參考文獻

  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). 
  6. ^ Kozlowski, Michael. BlackBerry 10.2.1 Update Allows you to Install APK Files on your Phone - Good e-Reader. 2014-01-29 [2024-11-13] (加拿大英語). 
  7. ^ Staff, Ars. Microsoft brings Android, iOS apps to Windows 10. Ars Technica. 2015-04-29 [2024-11-13] (美國英語). 
  8. ^ Warren, Tom. Microsoft might not bring Android apps to Windows after all. The Verge. 2015-11-16 [2024-11-13] (英語). 
  9. ^ Microsoft presses pause on tool for porting Android apps to Windows 10. CNET. [2024-11-13] (英語). 
  10. ^ Staff, Ars. Microsoft confirms: Android-on-Windows Astoria tech is gone. Ars Technica. 2016-02-25 [2024-11-13] (美國英語). 
  11. ^ Blog, Windows Developer; Gallo, Kevin. An Update on the Developer Opportunity and Windows 10. Windows Developer Blog. 2016-02-25 [2024-11-13] (美國英語). 
  12. ^ Staff, Ars. Why Microsoft needed to make Windows run Linux software. Ars Technica. 2016-04-05 [2024-11-13] (美國英語). 
  13. ^ Warren. Huawei's HarmonyOS has ADB mode, could it be based on Android?. KLGadgetGuy. 2019-08-12 [2024-11-13] (美國英語). 
  14. ^ Matsui, Emiko. Huawei to launch HarmonyOS NEXT beta at HDC 2024 event in June. Huawei Central. 2024-04-11 [2024-11-13] (美國英語). 
  15. ^ Cheng, Christina. Google apps still supported on new HarmonyOS upgraded from EMUI. RPRNA. 2021-06-12 [2024-11-13] (美國英語). 
  16. ^ Matsui, Emiko. HarmonyOS NEXT Galaxy will officially meet users in Spring: Huawei. Huawei Central. 2024-02-07 [2024-11-13] (美國英語). 
  17. ^ Parmar, Mayank. Microsoft confirms Android apps will run on all Windows 11 PCs. Windows Latest. 2021-06-27 [2024-11-13] (美國英語). 
  18. ^ Warren, Tom. Microsoft to end its Android apps on Windows 11 subsystem in 2025. The Verge. 2024-03-05 [2024-11-13] (英語). 
  19. ^ Google Play 游戏 - 在 Windows PC 平台上畅玩手游. play.google.com. [2024-11-13] (中文). 
  20. ^ Warren, Tom. Google is bringing Android games to Windows in 2022. The Verge. 2021-12-10 [2024-11-13] (英語). 

外部連結