Android 打包编译流程

APK文件结构

使用Android Studio打开apk(当然也可以以zip文件方式打开),可以看到apk大致有如下文件组成(如下图)

有些文件和文件夹是一个 Android 应用都具备的(下面表格中列出的)。而其他的一些文件和文件夹则是一些第三方库,或者是其他一些代码生成的

接下来,大概介绍一下主要文件的作用:

classes.dex:Java Class,被DEX编译后可供Dalvik/ART虚拟机所理解的文件格式

lib:该目录存放着应用需要的 native 库文件(so文件),而该文件夹下有时会多一个层级,这是根据不同CPU 型号而划分的,如 ARM,ARM-v7a,x86等

res:存放编译后的资源文件,例如:anim、drawable、layout、dimens、colors、string等等

resources.arsc:资源配置文件(编译后的二进制文件),用来记录资源文件和资源ID之间的映射关系,用来根据资源ID寻找资源

META-INF:保存应用的签名信息,签名信息可以验证APK文件的完整性,包含xxx.RSA,xxx.SF和MANIFEST.MF

assets:assets 文件夹用于保存需要保持原始文件的资源文件夹

AndroidManifest.xml:Android的清单文件,就是我们代码中的AndroidManifest.xml文件, 描述应用程序的名称、版本、所需权限、注册的四大组件


APK构建流程

流程图

(图片来自Build Workflow

命令行构建

./gradlew <task>(on Unix-like platforms such as Linux and Mac OS X)gradlew.sh

gradlew <task>(on Windows using the gradlew.bat batch file)gradlew.bat


zipalign

https://developer.android.com/studio/command-line/zipalign.html

Data structure alignment(DSA)

数据结构对齐标准

https://en.wikipedia.org/wiki/Data_structure_alignment


配置构建:

https://developer.android.com/studio/build/index.html

从命令行构建您的应用:

https://developer.android.com/studio/build/building-cmdline.html

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容