android gradle两种多渠道打包方式

gradle多渠道打包,目前已经了解到的有两种方式:

  • 一种是利用gradle的manifestPlaceholders属性来替换渠道值
  • 另一种是不同的渠道包打不同的资源

一、利用gradle的manifestPlaceholders属性来替换渠道值

1、渠道信息一般在 AndroidManifest.xml中:

<application
    <meta-data
        android:name="UMENG_CHANNEL"
        android:value="${CHANNEL_NAME_VALUE}" />
</application>

2、然后在你的build.gradle的android{}节点里面,添加productFlavors节点,代码如下:

android {
// 其他配置信息...
    productFlavors {
        wandoujia {}
        baidu {}
        c360 {}
        uc {}
        productFlavors.all { flavor ->
            flavor.manifestPlaceholders = [CHANNEL_NAME_VALUE: name]
        }
    }
// 其他配置信息...
}

3、生成全部渠道包

在android studio底栏中有个命令行工具Terminal,打开后自动切换到当前项目的目录下,项目下会有graldew.bat这个文件,输入以下命令:

gradlew assembleRelease

就可以一次性生成所有的渠道包了
这里写图片描述

注:运行gradlew assembleRelease命令前,确保gradle环境变量已配置:

4、gradle环境变量配置

1)、打开我的电脑->属性->高级->环境变量。

2)、新建用户变量GRADLE_HOME

 变量名:GRADLE_HOME

 变量值:C:\Users\xueliangxia\.gradle\wrapper\dists\gradle-2.9-all\1aw2ic01pldw5fkvoq6t1fsz4\gradle-2.9

3)、选择“新建用户”中变量名为“Path”的环境变量,双击该变量,并使用半角的分号和已有的路径进行分隔。

 变量名:Path

 变量值:C:\Users\xueliangxia\.gradle\wrapper\dists\gradle-2.9-all\1aw2ic01pldw5fkvoq6t1fsz4\gradle-2.9\bin

5、渠道包截图:
这里写图片描述

二、第二种实现方式,不同渠道打不同的资源

1、在app/src下面,分别创建和main同级目录的文件夹umeng, wandoujia, yingyongbao,这三个文件夹里面都各只有一个AndroidManifest.xml文件,文件只需要如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="xiaxl.le.com.myapplication">
    <application>
        <meta-data android:name="UMENG_CHANNEL" android:value="UMENG"/>
    </application>
</manifest>

Ps:上面的value的值要和你的渠道名所对应。比如wandoujia里面要对应为你豌豆荚上的渠道名(如WANDOUJAI)。“xiaxl.le.com.myapplication”为包名,记得替换

2、然后在你的build.gradle的android{}节点里面,添加productFlavors节点,代码如下:

android {
    // 这里是你的其他配置

    productFlavors{
        umeng{  }
        wandoujai {  }
        yingyongbao{  }
    }
    // 你的其他配置
}

3、运行gradlew assembleRelease生成全部渠道包

Ps:若多渠道打包遇到问题 or 遇到签名问题,可参考:
http://xiaxveliang.blog.163.com/blog/static/29708034201602744846450/

代码下载地址如下:
http://download.csdn.net/detail/aiwusheng/9419790

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐