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 源码

相关文章
相关标签/搜索