APK編譯流程-APK是什麼

前文html

apk文件 是什麼

APK是Android操做系統使用的一種應用程序包文件格式.android

從文件的角度,APK是一個以zip格式的壓縮文件,所以咱們能夠直接使用 unzip 命令解壓縮 apk文件git

unzip sample.apk -o ./unzipoutput
複製代碼

如何查看 apk文件內容

  1. apktoolgithub

  2. androd studio -  apk analyzebash

Android Studio 自帶的 **apk analyze **工具支持如下功能
1.直接查看apk內 編譯後的二進制文件的原內容,好比 Androidmanifest 文件
2.查看各Dex文件的大小,class包路徑結構、支持支持加載progurad mapping 文件、
3.查看類的字節碼(dex)app

apk analyze 只具備查看的功能,若是須要反編譯並獲得apk內的文件,或者是進行二次打包,則須要使用 apktool 。ide

相關資源: 1.apk analyze 命令行使用說明工具

apk壓縮文件包含哪些內容

image.png

1.資源post

  • res目錄下的資源文件,包含layout-xml、圖片資源等
  • resouces.arsc
  • AndroidManifest.xml
  • META-INF目錄包含應用的一些元信息,好比簽名信息、apk文件摘要等

2.程序指令gradle

  • dex文件
  • 2.so庫

對apk進行zipalign優化

除了使用zip格式壓縮Android程序資源外,Android 還提供一個 zipalign 工具 對 壓縮文件進行進一步優化。

google對因此想要上架google play的apk都要求進行包內資源字節對齊;平時咱們使用gradle 編譯會默認使用ziplaign 進行字節對齊

apk字節對齊是什麼:

對壓縮包內 全部非壓縮文件進行 4字節對齊

進行字節對齊優化的目的是什麼
**
1.使安卓操做系統能夠更高效的操做 apk文件 (cpu訪問更高效)
2.節省內存的使用 (對部分經常使用資源進行mmap)

zipalign工具位於Android SDK 的 *build-tools${build-tools-version-dir}* 文件夾下 ,在build-tools 文件夾中 zipalign是一個.exe可執行文件,它的源碼能夠在 googlesource中查閱。

相關資源 1.what-is-zipalign-in-android-and-how-it-works-complete-guide 2.zipalign 源碼

相關文章
相關標籤/搜索