Android(安卓)productFalvors 多渠道打包方案
16lz
2021-01-26
简介
主要借助gradle的productFlavors工具进行多渠道打包
实践
1. Android工程中App Module中的build.gradle文件添加pf[productFlavors]
android {//定义3个不同的产品[默认,红,蓝] productFlavors{ common{} red{} blue{} }}configurations {//定义3个产品不同的依赖 commonCompile redCompile blueCompile}
2. 问题一 : 不同的包名&&版本号&&版本名称
android { productFlavors{//为3个产品指定不同的配置 common{ applicationId "com.common" versionCode 1000 versionName "1.0.0" } red{ applicationId "com.red" versionCode 2000 versionName "2.0.0" } blue{ applicationId "com.blue" versionCode 3000 versionName "3.0.0" } }}
3. 问题二: 不同的资源替换
39EA501C-D5F2-4316-BD07-A3E37CF9AC5E.png4. 问题三: 重名java文件替换
FCD92703-AD10-4A12-BBD3-4A026E77AEE1.png5. 问题四: 被[app]依赖的[library]如何确定编译的产品?
- 修改[app]的build.gradle文件
configurations { commonCompile redCompile blueCompile}dependencies {//不同的产品依赖[library]中不同的文件&&资源 commonCompile project(path: ':picmodule', configuration: "common${rootProject.ext.BUILD_VARIANT}") redCompile project(path: ':picmodule', configuration: "red${rootProject.ext.BUILD_VARIANT}") blueCompile project(path: ':picmodule', configuration: "blue${rootProject.ext.BUILD_VARIANT}")}
- 修改工程最外侧build.gradle文件
ext{ BUILD_VARIANT = "Debug"//配置buildType}
-
[library]结构如下
555195F6-1033-4144-B30E-9B2B517705E1.png
6. 问题5: 如何多个产品依赖一个不分产品的[library]
- 修改[app]的build.gradle如下
dependencies { // 引用本的项目 commonCompile project(':picmodule') redCompile project(':picmodule') blueCompile project(':picmodule')}
- 删除[library]下red && blue 目录即可
更多相关文章
- android上如何写配置文件
- 菜单之二:使用xml文件定义菜单
- Android中sqllite存储海量数据解决办法
- Android点击事件的实现
- Android(安卓)字体大小怎么自适应不同分辨率?
- Android(安卓)开发相关命令集合
- android打包so文件到apk
- Android(安卓)Studio开发NDK用C++的坑
- Android之数据存储笔记