使用Build Variants控制应用的多配置
使用Build Variants控制应用的多配置
在app项目的开发中经常会碰到测试环境、beta环境、正式环境等多环境的频繁切换,eclepse年代我们都是通过注释代码的方法来实现,这样的操作不仅非常麻烦,而且不容易区分环境,现在AS提供了BuildVariants(编译控制器)能够十分方便的解决这一难题,下面我们一起来学习一下吧:
了解app目录下的build.gradle
build.gradle可以理解为编译时的配置文件
创建一个as工程,默认生成的build.gradle文件:
可以看到文件主要分为两大块,“dependencies“主要是工程的一些依赖工具、库,这里不是我们今天关注的重点,“android“里面包括了整个工程进行编译时要遵循的所有规范,那么我们要在编译时要如何编写这个android对象,来达到对项目进行可配置的编译呢?下面可以进入本文的重点!
首先指定编译的类别
在build.gradle文件的”android”对象中添加一个buildTypes对象,里面可以装载各种编译类别,比如说debug、release,默认会有一个release类别,也就是我们的正式包,顺便介绍一下“minifyEnable“为布尔值,代表打包时是否需要混淆,而下面的”proguardFiles”代表混淆时引用的文件,你可以在build.gradle的同级目录中看到这个文件,进行你需要的混淆编辑。
再添加完debug和formal这两个类别之后,点击如图:
你会发现“app“后面多了debug和formal这两个可以选择的编译版本,很神奇有木有,这里就是控制版本的开关了,那么我们要如何去设置我们的开关呢?接着往下看:
我们来点实战演习,
需求1:切换不同的版本时,更换app的名字和icon:
为了测试,有时候同一个app再手机上会装很多个不同的版本,如果不做点特殊处理,那么查看起来一定会让你“蓝瘦香菇“。如上图,”manifestPlaceholders”后面可以指定一些默认参数,包括我们需要的图标和名称,我们只需和AndroidManifest.xml配合使用就能实现目的。我们现在定义了一个APP_NAME 和 APP_ICON两个值,分别指向不同的资源文件,然后我们去AndroidManifest.xml中引用他们:
到这里我们就修改成功了,有小伙伴又会疑问了,你这改好了跑不通啊!不要着急,因为除了debug类型之外,其他的类型都必须给他添加一个证书才能完成打包,我们接着来给formal和release版本添加证书。这里有两种方法:
第一种,直接在build.gradle中编写代码
现在android对象中添加自己的key
然后在manifastPlaceholders中引用
第一种,在AS的Project Structure中手动配置
先制定好签名
然后为编译版本绑定签名
这个时候选择你想要的编译版本然后run,就会发现icon和名称跟着版本而改变了有木有!nice!
需求2:切换不同的版本时,要切换接口的url:
这个才是重中之重啊!要知道以前我们都是通过注释代码的方法来干的!现在只需一个判断就解决了!直接上图:
我们只需判断一下编译版本,指定相对应的url就达到目的。
需求3:切换debug和release更换包名,同时安装在手机上
buildTypes {debug {//包名后缀applicationIdSuffix ".debug"}release {applicationIdSuffix ".release"}
}
这就是今天我想和大家分享的全部内容了,不到之处希望大牛们能够严肃批评指正,小弟不胜感激!
很早就想写博客了,希望以后能够坚持下来,加油!
使用Build Variants控制应用的多配置相关推荐
- Build Variants Android变体构建配置
官方文档 主Module中build.gradle defaultConfig defaultConfig {applicationId "XXX.XXX.com.XXX"minS ...
- Gradle For Android系列4:创建Build Variants
当你在开发一款应用时,通常会面临发布不同的版本需求.举两个常见的场景,场景一:你正在增加新功能,然后你需要发布版本提交给QA,测试通过后再发布线上版本,可能线下版本和测试版本的服务器接口域名不一样又或 ...
- android studio build variants,Android studio构建App的不同variants和types
一个App可能有免费版和付费版之分,还可能有Phone何Tablet之分,但是不论什么版本,它们之间都有很大的 相同点,只是很少的地方有差异,它们称为build variants,Android St ...
- android studio build variants,Android Build Variants 为项目设置变种版本的方法
前言 在项目开发过程中,时常会碰到这种情况: 1.同一个Project的同一个API,有几个不同的接口,比如内部测试用的Server,和当前版本暴露给用户使用的Server: 2.同一个Project ...
- Build Variants 认识
基础 构建变体(Build Variants)有两部分内容构成 : buildTypes(构建类型) + productFlavors(产品风味) 通过 android { } 配置变量进行部署: ...
- 一站式开发一个安卓APP-测试与发布篇(build variants的应用)
上一篇把APP的开发工作做完了. 我们的APP进程进入了测试发布阶段. 对于测试和发布我们有这样的需求: 1.测试的包和发布的包可以同时装在同一台手机上,方便开发人员调试 开发人员需要随时调试测试包, ...
- Android Gradle Plugin指南(五)——Build Variants(构建变种版本)
原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants 6. Build Vari ...
- Roslyn 使用 Directory.Build.props 管理多个项目配置
在一些大项目需要很多独立的仓库来做,每个仓库之间都会有很多相同的配置,本文告诉大家如何通过 Directory.Build.props 管理多个项目配置 在我的 MVVM 框架需要三个不同的库,一个是 ...
- Error:The module 'app' is an Android project without build variants, and cannot be built.
导入 项目 Error:The module 'app' is an Android project without build variants, and cannot be built. Plea ...
最新文章
- SSH框架之SSH前言
- python webbrowser安装_如何为python webbrows设置BROWSER环境变量
- matlab 最小二乘法拟合_Scripy实现最小二乘法与股票K线回归
- 关于云原生,这是最详细的技术知识
- LEAGUE TABLES【模拟】
- 【Level 09】U1 The way I see it L3 At your service
- 抖音回应火山小视频被判赔腾讯800万元:目前已提起上诉
- Vue中使用watch来监听数据变化
- 按键精灵引流脚本实操
- [SCU 4507] 奶牛情书 (AC自动机)
- shinelon笔记本进bios设置u盘启动_重装系统—BIOS设置 U盘启动
- 最新信息安全毕业设计题目选题推荐
- 北邮计算机学院复试笔试,北邮计算机学院考研复试经验
- 如何利用whatsapp群发助手开发国外客户
- Get “https://github.com/electron-userland/electron-builder-binaries/releases/download/appimage-12.0.
- 爬虫项目七:Python对唯品会商品数据、评论数据的爬取
- Linux查找之find/df/du命令
- html代码彼德西餐厅网页,彼德西餐厅设计解析 让你装修不再烦恼
- 软件性能测试负载测试,软件性能测试VS负载测试VS压力测试[2]
- Ajax安卓成功iOS失败,api.ajax图片上传,ios可以上传成功,安卓上传失败