一、APK 构建流程
1、通过AAPT2工具将各种xml文件汇总登记到R.java文件中;同时将AndroidManifest.xml生成对应的二进制文件;
2、通过AIDL工具将.aidl文件生成.java文件;
3、通过JavaCompile将.java文件生成.class文件;
4、通过dex工具将.class文件,包括项目依赖文件,生成.dex文件;
5、通过Apkbuilder工具,基于上述生成的.dex,二进制以及项目的资源文件,打包生成.apk;
6、通过ApkSigner工具,对 .apk文件进行签;
7、通过ZipAglian优化apk文件,让它运行的时候能够占用更少的内存。
二、基于Gradle打包多个版本的APP
1、gradle文件介绍。
setting.gradle文件,里面指定了依赖的仓库
project的builde.gradle,指定了gradle脚本的依赖
有了依赖和所在仓库的具体信息,就可以通过Gradle Wrapper来sync和下载gradle脚本到本地,供本地的所有项目依赖。
3、基于flavorDimensions和productFlavors配置多版本APK。
直接看步骤吧。
首先配置两个flavor.
然后在module的build.gradle文件下就自动生成下述代码。
在src文件夹下分别建立flavor1、flavor2文件夹,
在res文件中分别放同名资源,如
但是这个资源在main中需要移除,不然就会存在冲突,因为在构建的时候,是mian中的文件引用这些flavor文件,Build Variants中,可以看到多个渠道,选择了哪个渠道,对应的文件夹就被AndroidStudio挂载和高亮。
比如我选择flavor1Debug,拿到的appname就是Flavor1.