最近项目从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. 关于php抑错方法

    在循环里,如果@不能用的话,就使用try catch,是可以的

  2. 设置 cipher suite

    https://man.openbsd.org/SSL_CTX_set_cipher_list.3#ECDHE SSL_CTX_set_cipher_list() sets the list of a ...

  3. [Windows] Diskpart Scripts and Examples

    https://docs.microsoft.com/en-us/windows-server/administration/windows-commands/diskpart-scripts-and ...

  4. 数据库SQL---数据库、基本表、视图、索引的定义、修改、删除

    1.SQL(结构化查询语言)的组成:数据定义语言DDL.数据操纵语言DML.数据控制语言DCL.其他. 2.SQL语言的功能: 1)数据查询:SELECT 2)数据定义:CREATE   DROP  ...

  5. iOS Block 页面传值

    为什么80%的码农都做不了架构师?>>>   直接上代码 1.定义block @interface TopTypeCollectionView : UIView @property ...

  6. 刚听完CSDN总裁蒋涛先生的学术报告

    主题: 二十年程序人生和我的人才观 第一次参加所谓的"学术报告", 但感觉更多的是蒋总在跟我们分享他个人的成长经验. 按蒋总的话说, 他已经从2000年开始不碰怎么技术了, 所以个 ...

  7. Hadoop学习笔记(二)——插件安装和使用(Hadoop Eclipse)

    1. Hadoop Eclipse @ 配置 需注意 在写Hadoop的根目录时,路径不能有空格 http://blog.sina.com.cn/s/blog_56d8111101014mlg.htm ...

  8. Makefile中的CFLAGS,LDFLAGS,LIBS

    CFLAGS:C编译器选项,而CXXFLAGS表示C++编译器的选项 1. CFLAGS参数 选项 说明 -c 用于把源码编译成.o对象文件,不进行链接过程 -o 用于连接生成可执行文件,在其后可以指 ...

  9. linux下编译boost的多线程程序

    linux下面用boost库进行多线程编程,一开始总是编译不成功,花了好多的时间. 下面是一段小示例代码: //start from the very beginning,and to create ...

  10. Xenia and Colorful Gems(二分--思维)

    给定三个数组a,b,c. 要求从每个数字取一个数,使得两两之差和最小. 求出这个数. \(我又懵逼了.我是会O(n^3)的暴力啊,怎么办.\) \(\color{Red}{从结果看,选出来的三个数必定 ...