使用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控制应用的多配置相关推荐

  1. Build Variants Android变体构建配置

    官方文档 主Module中build.gradle defaultConfig defaultConfig {applicationId "XXX.XXX.com.XXX"minS ...

  2. Gradle For Android系列4:创建Build Variants

    当你在开发一款应用时,通常会面临发布不同的版本需求.举两个常见的场景,场景一:你正在增加新功能,然后你需要发布版本提交给QA,测试通过后再发布线上版本,可能线下版本和测试版本的服务器接口域名不一样又或 ...

  3. android studio build variants,Android studio构建App的不同variants和types

    一个App可能有免费版和付费版之分,还可能有Phone何Tablet之分,但是不论什么版本,它们之间都有很大的 相同点,只是很少的地方有差异,它们称为build variants,Android St ...

  4. android studio build variants,Android Build Variants 为项目设置变种版本的方法

    前言 在项目开发过程中,时常会碰到这种情况: 1.同一个Project的同一个API,有几个不同的接口,比如内部测试用的Server,和当前版本暴露给用户使用的Server: 2.同一个Project ...

  5. Build Variants 认识

    基础 构建变体(Build Variants)有两部分内容构成 : buildTypes(构建类型) +  productFlavors(产品风味) 通过 android { } 配置变量进行部署: ...

  6. 一站式开发一个安卓APP-测试与发布篇(build variants的应用)

    上一篇把APP的开发工作做完了. 我们的APP进程进入了测试发布阶段. 对于测试和发布我们有这样的需求: 1.测试的包和发布的包可以同时装在同一台手机上,方便开发人员调试 开发人员需要随时调试测试包, ...

  7. Android Gradle Plugin指南(五)——Build Variants(构建变种版本)

    原文地址:http://tools.android.com/tech-docs/new-build-system/user-guide#TOC-Build-Variants 6. Build Vari ...

  8. Roslyn 使用 Directory.Build.props 管理多个项目配置

    在一些大项目需要很多独立的仓库来做,每个仓库之间都会有很多相同的配置,本文告诉大家如何通过 Directory.Build.props 管理多个项目配置 在我的 MVVM 框架需要三个不同的库,一个是 ...

  9. 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 ...

最新文章

  1. SSH框架之SSH前言
  2. python webbrowser安装_如何为python webbrows设置BROWSER环境变量
  3. matlab 最小二乘法拟合_Scripy实现最小二乘法与股票K线回归
  4. 关于云原生,这是最详细的技术知识
  5. LEAGUE TABLES【模拟】
  6. 【Level 09】U1 The way I see it L3 At your service
  7. 抖音回应火山小视频被判赔腾讯800万元:目前已提起上诉
  8. Vue中使用watch来监听数据变化
  9. 按键精灵引流脚本实操
  10. [SCU 4507] 奶牛情书 (AC自动机)
  11. shinelon笔记本进bios设置u盘启动_重装系统—BIOS设置 U盘启动
  12. 最新信息安全毕业设计题目选题推荐
  13. 北邮计算机学院复试笔试,北邮计算机学院考研复试经验
  14. 如何利用whatsapp群发助手开发国外客户
  15. Get “https://github.com/electron-userland/electron-builder-binaries/releases/download/appimage-12.0.
  16. 爬虫项目七:Python对唯品会商品数据、评论数据的爬取
  17. Linux查找之find/df/du命令
  18. html代码彼德西餐厅网页,彼德西餐厅设计解析 让你装修不再烦恼
  19. 软件性能测试负载测试,软件性能测试VS负载测试VS压力测试[2]
  20. Ajax安卓成功iOS失败,api.ajax图片上传,ios可以上传成功,安卓上传失败

热门文章

  1. 甲醛传感器的检测种类
  2. js算法:动态规划-金矿模型与买书问题(附js源码)
  3. 2020-03-22阅读笔记-考虑遗忘机制的企业隐性知识传播SIR模型研究
  4. 世界杯的狂热,让区块链蹭个热点
  5. 物联网与LPWA是什么关系?LoRa设备开发参考指南(一)
  6. 电商营销新主张:维客视频短信业务上线啦!
  7. 便利贴--12{酷炫背景,小球随鼠标移动,可自由设置小球属性}
  8. 提取EPSON机器人示教点位pts文件中的点位信息
  9. Minitab 推出过程改善新的 Monte Carlo 仿真软件
  10. 使用Intel x86加速器