Gradle 多环境、多渠道打包
2024-09-28 22:38:52
最近项目从eclipse迁移到AS上,主要是为了使用gradle这个插件进行apk打包。毕竟程序员还是要与时俱进的。首先介绍下项目主要需求:
1、使用百度统计,需要对个平台的信息进行统计
2.、api分开发版和发布版,需要自动区分api
对于api区分不同环境(开发环境/部署环境),这个需求还是很好解决的。api url定义到常量类UrlConstant中,然后根据不同环境配置不同的domain即可。下面介绍配置:
- 在工程src目录下新建debug(开发环境),release(部署环境)两个文件夹,
- 分别在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]
}
}
这样就轻松实现了多环境和多渠道打包的配置。
最新文章
- *使用while循环遍历数组创建索引和自增索引值
- [unity3d程序] 纹理扩散
- ExtJS4加载FormPanel数据的几种方式
- Tomcat8 配置NIO
- left join 、right join 、inner join和 full join的区别
- 回顾:Linq To SQL语法 - 实体类
- .net简单页面后台绑定下拉框,按钮,分页 前台aspx页面
- SugarSync网盘之XML解析
- 为Array 添加indexOf
- 2.3. 实体(Core Data 应用程序实践指南)
- ie启动不了的解决办法,win7,win8都可以
- netty4.x 传输文件
- C++/C# 开发高级案例资料一次送!关注加群领取哦!
- 面向对象(__str__和__repr__方法)
- Spring Websocket实现简易在线聊天功能
- mysqldump命令的安装
- POJ 2002 Squares 几何, 水题 难度: 0
- Python3中Urllib库基本使用
- Vue-axios快速上手(转)
- 深入学习c++--左值引用和右值引用
热门文章
- Java环境下 selenium webDriver + chrome浏览器搭建与调试
- SpringCloud(七)超时、重试
- 使用Idea当中的快捷键快速查看继承关系或其图表的两种方法
- centos7.4挂载硬盘
- 【转载】pyinstaller的使用和几个坑
- 在 ubuntu20 上替换原有的源,解决下载软件慢的问题
- 【Python】在Pycharm中安装爬虫库requests , BeautifulSoup , lxml 的解决方法
- 《Android的设计与实现:卷I》——第1章 1.2.2动态视角的体系结构
- C语言编程入门题目--No.8
- pycharm(破解教程)