萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 手機 >  >> 手機應用 >> Android 教學

APK 文件詳解:Android 應用安裝包格式與結構

APK 是什麼?

APK (Android Application Package) 是 Android 系統的**應用程序安裝文件格式**,功能對應 Windows 的 .exe 安裝包 或 macOS 的 .dmg/.app。

APK 內部結構 (解壓後可見)

  • AndroidManifest.xml:應用清單文件 (二進制 XML),聲明包名、版本、權限、組件 (Activity/Service/Receiver/Provider)、硬件需求等。
  • classes.dex:Dalvik/ART 字節碼,Java/Kotlin 代碼編譯產物,多 dex 情況下有 classes2.dex 等。
  • resources.arsc:編譯後的資源索引表 (字符串、顏色、尺寸、樣式等)。
  • res/:資源目錄 (drawable、layout、values、xml、raw、anim 等),部分資源編譯為二進制。
  • assets/:原始資產目錄 (字體、數據庫、HTML、JS 等),打包時不編譯,運行時通過 AssetManager 讀取。
  • lib/:原生庫 (SO 文件),按 ABI 分目錄 (armeabi-v7a, arm64-v8a, x86, x86_64 等)。
  • META-INF/:簽名信息 (MANIFEST.MF, CERT.SF, CERT.RSA),確保完整性與來源可信。

關鍵特性

  • 簽名機制:所有 APK 必須經開發者私鑰簽名,系統安裝時驗證公鑰,**同包名應用簽名必須一致才能覆蓋升級**。
  • 安裝流程:PackageManagerService 解析 Manifest → 校驗簽名 → 複製 APK 到 /data/app/包名/ → 優化 dex (生成 .odex/.vdex) → 建立數據目錄 /data/data/包名/ → 發送廣播通知相關組件。
  • 分發渠道:Google Play、第三方市場 (應用寶、豌豆莢等)、開發者官網、ADB 側載、瀏覽器直接下載安裝。
  • 安全提示:僅從可信來源獲取 APK,安裝前查看權限列表,必要時用病毒掃描工具 (VirusTotal、手機管家) 檢測。

理解 APK 結構,有助於逆向分析、修改應用行為 (如去廣告、破解驗證)、編寫自動化測試腳本、或構建自己的應用分發平台。

copyright © 萬盛學電腦網 all rights reserved