Apk 构建过程
上面这张图是我们平时用Android studio开发安卓app点运行后会在app-build-outputs-apk目录下生成apk文件的构建过程,下面具体分析一下
-
aapt(Android assent packaging tool)
aapt工具会打包应用中的资源文件,如清单文件和layout中的布局文件,并将其编译成二进制文件,当然,但是assent文件夹下的资源会保持不变,图片和res/raw文件夹下的资源也不会被改变,但raw下的资源也会生成资源id,这步走完一会会生成R.java文件 -
aidl
aidl工具会将应用中所有的aidl接口转换成java接口 - 所有的Java代码包括R.java文件和aidl文件都会被编译成
.class文件
-
dex工具
会将上述步骤生成的.class文件和第三方库的.class文件及其他.class文件转换成Dalvik虚拟机支持的.dex文件并最终打包进apk文件 -
apkbuilder工具
会将编译过的资源和未编译过的资源如图片以及.dex文件打包成apk文件 - 生成APK文件后,需要对其
签名
才可安装到设备,平时测试时会使用debug keystore,当正式发布应用时必须使用release版的keystore对应用进行签名。