废话少说,先看张图:
构建过程:
- aapt工具(Android Asset Packaging Tool安卓资源打包工具)将应用的所有资源文件,例如
AndroidManifest.xml
文件以及各种XML文件进行编译。生成编译后的资源文件,以及R.java文件。这样通过R.java文件就可以在java代码中引用那些编译后的资源文件了。
- aidl工具将所有.aidl文件转化为java接口文件。
- 所有java源代码,包括R.java和.aidl接口文件,由Java编译器编译为.class文件。
- dex工具将上面得到的.class文件以及项目中用的第三方库和.class文件转为.dex文件(可能不止一个,
Multidex!
,万恶的Unable to execute dex: method ID not in [0,0xffff]: 65536
)。 - 所有未编译的资源(例如图片)、已编译的资源、连同上面的.dex文件由apkbuilder打包为一个.apk文件。
- 在安装到一台设备之前,构建出的.apk文件应该被签名(debug或者release签名)。
- 最后签名发布应用,须用zipalign工具对齐.apk文件,对齐可以减少应用运行时的内存占用。