美文网首页
Android productFalvors 多渠道打包方案

Android productFalvors 多渠道打包方案

作者: zhoujiepeek | 来源:发表于2018-02-27 15:53 被阅读0次

    简介

    主要借助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.png
    4. 问题三: 重名java文件替换
    FCD92703-AD10-4A12-BBD3-4A026E77AEE1.png
    5. 问题四: 被[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 productFalvors 多渠道打包方案

          本文链接:https://www.haomeiwen.com/subject/rucmxftx.html