发布网友 发布时间:2022-04-22 18:25
共1个回答
热心网友 时间:2023-09-10 00:19
APK文件的组成部分及apk打包流程是Android开发中的基础知识点,做一个简单的记录。
apk文件是Android应用包文件格式,其本质是一个压缩文件。将apk文件拖动到Android Studio中即可查看里面的内容,如下图:
从上图中可以看到apk包里的几个重要组成部分:
打包流程的经典流程图如下:
其中七个椭圆形内容对应了打包流程中的七个重要步骤,也对应着打包中的七个重要工具,具体如下:
对上面七个重要的打包流程进一步说明。
aapt打包资源文件,生成R.java文件,resources.arsc等文件。
aapt在打包资源文件之前会检测AndroidManifest.xml文件的合法性,对res目录下的资源目录进行扫描合法性,因此资源命名有问题时会在编译阶段就会直接报错。
需要注意的是xml文件会被编译为二进制的,因此我们并不能直接打开apk包中的xml文件。
AIDL是Android接口定义语言,是Android进程间通讯的一种实现方式。
此步骤中会对aidl文件进行处理,生成java文件。
通过javaCompiler对java文件进行编译,生成class文件。
dx工具将class文件转变为Android系统Dalvik虚拟机可执行的Dex文件。
将classes.dex,res文件夹等所有文件打包成apk文件。
生成APK包之后还需要进行签名处理,Release签名需要我们自己去进行配置。
常用的签名方式有两种:jarsigner和apksigner。
Zipalign是Android平台上APK文件对齐的整理工具,能够对APK中未压缩的数据进行4字节对齐。
需要注意的是根据采用签名方式的不同,对齐处理的先后顺序有所区别。
APK打包流程备忘。