最近项目从eclipse迁移到AS上,主要是为了使用gradle这个插件进行apk打包。毕竟程序员还是要与时俱进的。首先介绍下项目主要需求:

1、使用百度统计,需要对个平台的信息进行统计

2.、api分开发版和发布版,需要自动区分api

对于api区分不同环境(开发环境/部署环境),这个需求还是很好解决的。api url定义到常量类UrlConstant中,然后根据不同环境配置不同的domain即可。下面介绍配置:

  1. 在工程src目录下新建debug(开发环境),release(部署环境)两个文件夹,
  2. 分别在debug和release目录下建立com.cml.constant包(根据自己的项目建立),然后分别建立UrlConstant类,将对应的domain配置编写上去即可

经过简单的两个步骤,多环境问题解决了,编译时会自动根据环境加载不同文件下的类的。AS直接运行时使用的是debug环境的配置,打包发布后运行的是release的环境。

2、百度多渠道统计,主要是使用多渠道打包功能,主要是使用

productFlavors{
baidu{
manifestPlaceholders = [BaiduMobAd_CHANNEL: "baidu"]
}
yyb{
manifestPlaceholders = [BaiduMobAd_CHANNEL: "yyb"]
}//应用宝
}

网上很多,随便找找都有

经过上面配置后,基本要求实现了,但是项目中使用到百度统计和百度推送,不同环境的key是不一样的。总不可能在productFlavors为每个渠道都配置一次吧,那样繁琐而且不能区分环境。

下面就介绍下具体配置(实测可用),主要是使用manifestPlaceholders。在buildTypes不同环境中添加上对应的key即可。代码如下:

 buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
manifestPlaceholders = [BaiduMobAd_STAT_ID: release_stat_key, lbsapi_API_KEY: release_baidupush_key]
signingConfig signingConfigs.release
}
debug {
minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
manifestPlaceholders = [BaiduMobAd_STAT_ID: debug_stat_key, lbsapi_API_KEY: debug_baidupush_key]
}
}

这样就轻松实现了多环境和多渠道打包的配置。

Gradle 多环境、多渠道打包的更多相关文章

  1. Android Gradle实用技巧——多渠道打包

    友盟有很多不错的功能,例如渠道统计等. 想要做渠道统计,有一个要求就是要在manifest文件中添加各个渠道的配置.只有一两个渠道还好说,但是渠道多了的话,手动修改然后打包简直是噩梦. 幸好现在And ...

  2. Gradle 实现 Android 多渠道定制化打包

    Gradle 实现 Android 多渠道定制化打包 版权声明:本文为博主原创文章,未经博主允许不得转载. 最近在项目中遇到需要实现 Apk 多渠道.定制化打包, Google .百度查找了一些资料, ...

  3. Android自己主动化构建之Ant多渠道打包实践(下)

    前言 上一篇(Android自己主动化构建之Ant多渠道打包实践(上))已经介绍了Android的apk是怎样构建的,本篇博客继续Ant打包的实践过程. 集成友盟统计SDK 这里以友盟统计为例,对各个 ...

  4. Android Studio 多个编译环境配置 多渠道打包 APK输出配置

    看完这篇你学到什么: 熟悉gradle的构建配置 熟悉代码构建环境的目录结构,你知道的不仅仅是只有src/main 开发.生成环境等等环境可以任意切换打包 多渠道打包 APK输出文件配置 需求 一般我 ...

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

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

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

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

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

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

  8. Gradle多渠道打包

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

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

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

随机推荐

  1. 【题解】P2480 [SDOI2010]古代猪文 - 卢卡斯定理 - 中国剩余定理

    P2480 [SDOI2010]古代猪文 声明:本博客所有题解都参照了网络资料或其他博客,仅为博主想加深理解而写,如有疑问欢迎与博主讨论✧。٩(ˊᗜˋ)و✧*。 题目描述 猪王国的文明源远流长,博大精 ...

  2. shiro:入门程序(一)

    SpringMVC项目 1:pom引入相关依赖 <dependencies> <!--测试依赖--> <dependency> <groupId>jun ...

  3. react: typescript integrate withRouter

    define interface: export interface INav { nav: string } export interface IModuleItem { state?: strin ...

  4. tensorflow1.0 变量加法

    import tensorflow as tf state = tf.Variable(0,name='counter') print(state.name) one = tf.constant(1) ...

  5. 架构师修炼之微服务部署 - 深入理解Docker镜像

    镜像简介 它是一个创建Docker 容器的只读模板,通过DockerFile可以自定义镜像. 它也是一个特殊的文件系统,除了提供容器运行时所需的程序.库.资源.配置等文件外,还包含了一些为运行时准备的 ...

  6. Python之学会测试,让开发更加高效(一)

      前几天,听了公司某位大佬关于编程心得的体会,其中讲到了"测试驱动开发",感觉自己的测试技能薄弱,因此,写下这篇文章,希望对测试能有个入门.这段时间,笔者也体会到了测试的价值,一 ...

  7. IIS WebDAV安全配置

    本文为转载,原文地址:http://www.2cto.com/article/201307/228165.html IIS WebDAV安全配置 2013-07-16 12:13:00 作者:瞌睡龙收 ...

  8. 2019-2020-1 20199303《Linux内核原理与分析》第五周作业

    系统调用的三层机制 API:第一层是指Libc中定义的API,这些API封装了系统调用,使用int 0x80触发一个系统调用中断:当然,并非所有的API都使用了系统调用,如完成数学加减运算的API就没 ...

  9. java学习(第四篇)数组

    一.一维数组 1.声明,分配内存 int[] a=new int[10]; 数组元素的数据类型 [] 数组名=new 类型 [数组元素个数]: 2.初始化 int[] a=new int[] {1,2 ...

  10. Libra教程之:Transaction的生命周期

    文章目录 Transaction的生命周期 提交一个Transaction 交易入链的详细过程 接收Transaction 和其他Validators共享这个Transaction 区块Proposi ...