身为一个Android工程师,你是否有考虑过一个Android项目工程如何经过编译压缩变成一个APK的呢?
你又是否编写过打包工具完成多渠道打包呢?
下面我们来解密如何完成一个APK的打包。
1、使用Android SDK提供的aapt.exe生成R.java类文件
2、使用Android SDK提供的aidl.exe把.aidl转成.java文件(如果没有aidl,则跳过这一步)
3、使用JDK提供的javac.exe编译.java类文件生成class文件
4、使用Android SDK提供的dx.bat命令行脚本生成classes.dex文件
5、使用Android SDK提供的aapt.exe生成资源包文件(包括res、assets、androidmanifest.xml等)
6、使用Android SDK提供的apkbuilder.bat生成未签名的apk安装文件
7、使用jdk的jarsigner.exe对未签名的包进行apk签名
完成一次APK打包一共有7步。从功能上来分,可以分成四步。
- 对R文件和Manifest进行编译,相当于产生一个目录,用于查阅代码和资源的位置。
- 对java代码的变成产生class文件然后压缩成dex文件,中间可能还有混淆的过程。
- 对资源文件的压缩。
- 最后签名。
然后我们再来看下分别对应的命令行
使用aapt命令编译