以友盟的多渠道打包为例,如果我们须要打包出例如以下渠道:UMENG, WANDOUJIA, YINGYONGBAO。

第一种方法。是须要创建文件的。

我们在写完我们的代码之后,在app/src以下。分别创建和main同级目录的目录umeng, wandoujia, yingyongbao,这三个目录里面都各仅仅有一个AndroidManifest.xml文件,文件仅仅须要例如以下:

[plain] view
plain
copy

  1. <manifest xmlns:android="http://schemas.android.com/apk/res/android"
  2. package="your.package.name">
  3. <application>
  4. <meta-data android:name="UMENG_CHANNEL" android:value="UMENG"/>
  5. </application>
  6. </manifest>

注意,上面的value的值要和你的渠道名所相应。比方wandoujia里面要相应为你豌豆荚上的渠道名(如WANDOUJAI)。

然后在你的build.gradle的android{}节点里面,加入productFlavors节点,代码例如以下:

[plain] view
plain
copy

  1. android {
  2. // 这里是你的其它配置
  3. productFlavors{
  4. umeng{  }
  5. wandoujai {  }
  6. yingyongbao{  }
  7. }
  8. // 你的其它配置
  9. }

注意这里的flavors的名字要和你的目录的名字相应。这样配置之后,构建的就是多渠道的APK了。

另外一种方法,不用创建那些文件,它使用的是Gradle Android插件里的还有一个功能,manifestPlaceholders。

在这样的方法中。你仅仅须要在AndroidManifest.xml中。对友盟的渠道进行这样配置:

[plain] view
plain
copy

  1. <meta-data
  2. android:name="UMENG_CHANNEL"
  3. android:value="${CHANNEL_NAME}" />

然后相同使用productFlavors。只是这时它的配置是这种:

[plain] view
plain
copy

  1. android {
  2. // 你的其它配置代码
  3. productFlavors {
  4. yingyongbao {
  5. manifestPlaceholders = [ CHANNEL_NAME:"YINGYONGBAO"]
  6. }
  7. umeng {
  8. manifestPlaceholders = [ CHANNEL_NAME:"UMENG" ]
  9. }
  10. wandoujia {
  11. manifestPlaceholders = [ CHANNEL_NAME:"WANDOUJIA" ]
  12. }
  13. }
  14. // 你的其它配置代码
  15. }

在上面其中。我们也能够指定一个默认的渠道名。假设须要的话。指定默认的值是在defaultConfig节点其中加入例如以下内容:

[plain] view
plain
copy

  1. manifestPlaceholders = [ CHANNEL_NAME:"Unspecified"]

这里的Unspecified换成你实际上的默认的渠道名。

使用manifestPlaceholders的这样的配置,相同适用于manifest的其它配置。比方你须要在不同渠道公布的apk里面。指定不同的启动Activity。比方在豌豆荚里面公布的。启动的Activity显示的是豌豆荚首发的界面,应用宝里面启动的是应用宝首发的界面(哈哈,有点坏)。你就能够对你的activity的值使用${activity_name}的方式,然后在productFlavors里面配置这个${activity_name}的值。

使用gradle多渠道打包的更多相关文章

  1. [转]Android Studio系列教程六--Gradle多渠道打包

    转自:http://www.stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ Android Studio系列教程六--Grad ...

  2. Android Studio系列教程六--Gradle多渠道打包

    Android Studio系列教程六--Gradle多渠道打包 2015 年 01 月 15 日 DevTools 本文为个人原创,欢迎转载,但请务必在明显位置注明出处!http://stormzh ...

  3. gradle多渠道打包及友盟统计-eclipse版本

    在进行渠道打包的之前,先看看准备篇,知道打包为了什么. 参见1.0android批量打包认知. eclipse中使用gradle多渠道打包全部流程 一.生成gradle文件,配置本地的gradle环境 ...

  4. 【转】Android Studio系列教程六--Gradle多渠道打包

    原文链接:http://stormzhang.com/devtools/2015/01/15/android-studio-tutorial6/ 由于国内Android市场众多渠道,为了统计每个渠道的 ...

  5. Gradle多渠道打包

    国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包 以友盟多渠道打包为例 在AndroidManifest.xml里面 <meta-data a ...

  6. Android Studio + gradle多渠道打包

    通过工具栏的Build->Build Apk 好像只能打包第一个Module(eclipse里面是Project的概念),怎么多渠道打包呢?目前好像只能一个一个的打 首先在清单文件里设置个变量: ...

  7. Gradle多渠道打包[umeng]

    前言 国内Android应用市场品种太多,血统不纯,每次上线App都打包打到手软,上传上到吐血!好在我们有了Android studio和gradle,一条命令打包各种渠道版本App! 正文 Umen ...

  8. Android Studio 使用Gradle多渠道打包

    第一步:配置AndroidManifest.xml 以友盟渠道为例,渠道信息一般都是写在 AndroidManifest.xml文件中,大约如下: <meta-data android:name ...

  9. android studio学习----gradle多渠道打包

    由于国内Android市场众多渠道,为了统计每个渠道的下载及其它数据统计,就需要我们针对每个渠道单独打包,如果让你打几十个市场的包岂不烦死了,不过有了Gradle,这再也不是事了. 友盟多渠道打包 废 ...

随机推荐

  1. 【Thinking in Java】读书笔记

    转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6480258.html 第三章:操作符 1:基本数据类型的比较用 ==.!=,引用类型的==.!=是针对地址的比 ...

  2. linux find command information more

    查找文件find ./ -type f 查找目录find ./ -type d 查找名字为test的文件或目录find ./ -name test 查找名字符合正则表达式的文件,注意前面的‘.*’(查 ...

  3. spring & java 面试

    https://blog.csdn.net/u014079773/article/details/52453002 1.Spring中AOP的应用场景.Aop原理.好处? 答:AOP--Aspect ...

  4. 基于python2【重要】怎么自行搭建简单的web服务器

    基本流程:1.需要的支持     1)python本身有SimpleHTTPServer     2)ForkStaticServer.py支持,该文件放在python7目录下     3)将希望共享 ...

  5. 一网打尽2013最常用的NoSQL数据库

      摘要:与关系数据库相比,每个NoSQL都有自己不同的适用场景,这里带大家盘点文档数据库.图数据库.键值数据存储.列存储数据库与内存数据网络等领域的常用的NoSQL. 在几年内,NoSQL数据库一直 ...

  6. isset、empty、var==null、is_null、var===null详细理解

    //isset: 判断变量是否被初始化 //它并不会判断变量是否为空,并且可能用来判断数组中元素是否被定义 //听说在数组用isset与array_key_exists高出4倍 $a = " ...

  7. Dubbo框架探讨(转)

    1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需 ...

  8. Netstat命令详解(windows下)

      Netstat 用于显示与IP .TCP .UDP 和ICMP 协议相关的统计数据,一般用于检验本机各端口的网络连接情况. 如果你的计算机有时候接收到的数据报导致出错数据或故障,你不必感到奇怪,T ...

  9. Linux 中的网络数据包捕获

    Linux 中的网络数据包捕获 Ashish Chaurasia, 工程师 简介: 本教程介绍了捕获和操纵数据包的不同机制.安全应用程序,如 VPN.防火墙和嗅探器,以及网络应用程序,如路由程序,都依 ...

  10. CentOS下nodejs最简单的安装方法

    1. 下载编译好的文件 我的系统是centos7,进入要存放下载资源的目录,个人建议存放在/usr/local/src/目录下.然后执行安装命令: wget http://nodejs.org/dis ...