APK (Android Application Package) 是 Android 系統的**應用程序安裝文件格式**,功能對應 Windows 的 .exe 安裝包 或 macOS 的 .dmg/.app。
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),確保完整性與來源可信。/data/app/包名/ → 優化 dex (生成 .odex/.vdex) → 建立數據目錄 /data/data/包名/ → 發送廣播通知相關組件。理解 APK 結構,有助於逆向分析、修改應用行為 (如去廣告、破解驗證)、編寫自動化測試腳本、或構建自己的應用分發平台。