需求:

在产品开发中,经常需要发布各个版本,每个版本的服务器地址有不同的服务器地址。比如

开发服务器使用 192.168.1.232服务器,

测试服务器使用 192.168.1.245服务器,

正式上线后服务器地址是http://xxxx.com。

在配合git开发中还要分支管理,常用的有:

dev

test

master

我们起初的开发过程是:

在项目开始时,开发人员写代码,签入代码到dev分支。开发人员使用 开发服务器的服务器地址

在启动测试时,开发组负责人合并代码到 test 测试分支。测试组负责人要修改代码中 服务器地址的源文件,更改为 测试服务器的地址,打包分发到测试组成员开始测试。

测试完毕后,测试组负责人合并代码到 master 分支,修改服务器地址为 上线服务器地址,并测试,再到正式发布。

在上面的这些步骤中我们看到,需要多次修改服务器地址,对相关的技术能力有一定要求,认为操作还容易操作,比如写了一个不存在的服务地址。

改进:

引入 Jenkins 服务自动打包,Jenkins是个非常优秀的自动构建工具,可以为我们的打包提供很棒的体验。使得 测试人员 在需要时,自己就能进行打包而不需要其他更多操作。当然,这需要我们配置好构建脚本。在使用Android studio之后,就需要了解 gradle脚本了。

技术关键词: buildConfigField, BuildConfig

思路:

在gradle脚本中,使用 buildConfigField 声明一个字段,编译成功后,会为这个字段生成静态常量,我们可以在代码中使用这个常量。而在配合 gradle 的 buildTypes 配置不同的编译类型(比如测试,开发,上线三种类型),每个类型指定不同的 字段的值。而在成功build后,gradle会为 美工不同的类型环境生成不同的apk包,比如一次性就生成了 测试,开发,上线三个apk包。

实现方式:

1. 修改 build.gradle , 配置buildTypes 下的  buildConfigField字段

buildTypes {

release {

minifyEnabled false

buildConfigField("String", "API_HOST", "\"http://www.jinlinbao.com\"")

signingConfig signingConfigs.zyfkey

}

debug245 {

debuggable true

minifyEnabled false

buildConfigField("String", "API_HOST", "\"http://192.168.1.245\"")

signingConfig signingConfigs.zyfkey

}

}

注意上面带下划线字体的部分。

这个方法需要三个参数,分别是  字段变量类型,变量名,和值。比如这里的

"String", "API_HOST", "\"http://192.168.1.245\"" // 一定注意 右斜杠后面跟着 转义字符分号

就会生成:

public static final String API_HOST = "http://192.168.1.245";

2. 修改 build.gradle , 配置 defaultConfig 下的  buildConfigField字段 ,这是为了 代码编译的方便,使得在各个环境下都有 API_HOST 这个字段。

buildConfigField("String", "API_HOST", "\"http://192.168.1.232\"")

3. 开始 build ,完成后,可以在代码中使用:

String str = BuildConfig.API_HOST;

下面是完整的 配置脚本:

apply plugin: 'com.android.application'

android {

signingConfigs {

zyfkey {

keyAlias '-'

keyPassword '-'

storeFile file('/Users/zhangyunfei/git/vocabulary/zhangyf.keystore')

storePassword '-'

}

}

compileSdkVersion 19

buildToolsVersion "22.0.1"

defaultConfig {

applicationId "vir56k.vecabulary"

minSdkVersion 14

targetSdkVersion 19

versionCode 1

versionName "1.0"

buildConfigField("String", "API_HOST", "\"http://192.168.1.232\"")

}

buildTypes {

release {

minifyEnabled false

proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

buildConfigField("String", "API_HOST", "\"http://www.jinlinbao.com\"")

signingConfig signingConfigs.zyfkey

}

debug245 {

debuggable true

minifyEnabled false

buildConfigField("String", "API_HOST", "\"http://192.168.1.245\"")

signingConfig signingConfigs.zyfkey

}

}

productFlavors {

}

}

dependencies {

compile fileTree(dir: 'libs', include: ['*.jar'])

}

下面是代码演示:

package vir56k.vecabulary;

import android.app.Activity;

import android.os.Bundle;

import android.widget.TextView;

public class MainActivity extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_main);

String str=BuildConfig.API_HOST;

TextView txt1 = (TextView) findViewById(R.id.txt1);

txt1.setText(str);

}

}

浅谈Kotlin(一):简介及Android Studio中配置

浅谈Kotlin(一):简介及Android Studio中配置 浅谈Kotlin(二):基本类型.基本语法.代码风格 浅谈Kotlin(三):类 浅谈Kotlin(四):控制流 前言: 今日新闻:谷 ...

Android Studio中使用Gradle打包

首先要注意一点,Android Studio中把proguard.txt已经命名为proguard-rules.pro,由此可见,採用Gradle打包,混淆规则文件的名称是不重要的.能够自己随便命名. ...

如何在Android Studio中使用Gradle发布项目至Jcenter仓库

简述 目前非常流行将开源库上传至Jcenter仓库中,使用起来非常方便且易于维护,特别是在Android Studio环境中,只需几步配置就可以轻松实现上传和发布. Library的转换和引用 博主的 ...

Android Studio中配置及使用OpenCV示例

Android Studio配置及使用OpenCV 前言:最近在做项目移植,项目较大,在Eclipse中配置的Jni及OpenCV环境没任何问题,但是迁移到Studio中就问题一大堆,网上也找了一些资 ...

Android Studio中由于gradle插件版本和gradle版本对应关系导致的编译失败的问题

今天在Android Studio中导入新项目,import之后编译报错,报错信息基本都是和版本相关,查询gradle版本相关知识,了解到gradle插件版本和gradle版本有相应的匹配关系,对应如 ...

在android studio中配置运行时签名

做项目的时候,有时需要用到第三方接口,而基本第三方接口都是要求我们要先进行签名.结果每次调试都得手动进行签名一次,实在麻烦.所以android studio提供了一种在运行的时候自动进行签名的方法,在 ...

[Android Studio系列(五)] Android Studio手动配置Gradle的方法

1 问题 (1) android sutdio第一次打开一个工程巨慢怎么办? (2) 手动配置Gradle Home为什么总是无效? (3) 明明已经下载了Gradle,配置了gradle home, ...

android studio中为gradle指定cmake版本

Android Studio相当于是Intellij基础上写了一个AS插件,这个插件使用gradle作为构建系统,因此构建出现问题先考虑gradle的文档. gradle可以使用native buil ...

随机推荐

phoneGap

1.安装参考http://blog.csdn.net/mage694/article/details/16846331 2.API  参考http://phonegap.com/developer/

ADB工具和手机抓包方法介绍

Android抓包方法 工具包内容如下:(下载地址:http://download.csdn.net/download/yezhaohui2011/8368061) adb ——谷歌提供的安卓远程调试 ...

Codevs_1230_元素查找_(set/Hash)

描述 http://codevs.cn/problem/1230/ ... 1230 元素查找 时间限制: 1 s 空间限制: 128000 KB 题目等级 : 钻石 Diamond       题目 ...

java经典题目练习-第八题简单实现方式...

*[程序8]*题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字.* 例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制. 思考: 对于以上 ...

jQuery Validate W3C内容

导入 js 库

《UNIX环境高级编程》笔记--文件共享

1.文件共享 内核使用3种数据结构来表示打开的文件,他们的关系如下: 每个进程都有一张进程表项,记录进程打开的文件: fd标志:close_on_exec,若一个文件描述符在close_on_exec ...

Android必知必会-带列表的地图POI周边搜索

如果移动端访问不佳,请尝试–> Github版 2016-08-22 更新 注意:在 Activity 代码中的onPoiSearched(PoiResult result, int rCode ...

mac 下终端 操作svn命令 以及出现证书错误的处理方法

首先,转载地址:http://hi.baidu.com/zhu410289616/item/eaaf160f60eb0dc62f4c6b0e 还有一个地址:http://www.cnblogs.com ...

echarts 折线图自定义颜色与修改legend颜色

option4 = { title : { text: '', subtext: '' }, color:['#2db7f5','#ff6600','#808bc6'],      //关键加上这句话 ...

Python 简单分页思路

一: li = [] for i in range(1000): li.append(i) while True: p = input('input page: ') p = int(p) start ...

怎么配置android远程服务器地址,在 Android studio 中 配置Gradle 进行 “动态编译期间,指定 远程服务器地址 ,生成多个安装包”...相关推荐

  1. 在AndroidStudio中配置Gradle进行 “动态编译期间,根据远程服务器地址 ,生成多类安装包”

    原文地址:http://www.cnblogs.com/vir56k/p/4763810.html 需求: 在产品开发中,经常需要发布各个版本,每个版本的服务器地址有不同的服务器地址.比如 开发 服务 ...

  2. 【Android Protobuf 序列化】Protobuf 使用 ( protobuf-gradle-plugin 插件简介 | Android Studio 中配置插件 | AS 中编译源文件 )

    文章目录 一.protobuf-gradle-plugin 插件简介 二.Android Studio 中配置 protobuf-gradle-plugin 插件 三.Android Studio 中 ...

  3. 【Android NDK 开发】NDK 交叉编译 ( Ubuntu 中交叉编译动态库 | Android Studio 中配置使用第三方动态库 )

    文章目录 I . 动态库 与 静态库 II . 编译动态库 III. Android Studio 使用第三方动态库 IV . Android Studio 关键代码 V . 博客资源 I . 动态库 ...

  4. Android Studio中配置Genymotion模拟器

    Android Studio Android Studio下载地址: https://developer.android.google.cn/studio/index.html 百度网盘:https: ...

  5. Android开发——Android Studio中配置及使用OpenCV示例

    from: http://www.mobile-open.com/2015/86176.html 本文主要讲述了Android Studio中配置及使用OpenCV示例,现在整理出来分享给Androi ...

  6. 【错误记录】Android Studio 中查看 Gradle 配置的方法源码 ( 配置 gradle-wrapper.properties 中版本为 gradle-x.x.x-all.zip )

    文章目录 一.报错信息 二.解决方案 Android Plugin DSL Reference 参考文档 : https://google.github.io/android-gradle-dsl/2 ...

  7. 【Android FFMPEG 开发】Android Studio 中配置 FFMPEG 库注意事项 ( 静态库 链接 libz.so 库 | 导入 FFMPEG 函数库顺序 )

    文章目录 I . 导入 z 库 ( FFMPEG 动态库 与 静态库区别 ) II . FFMPEG 库引入顺序 III . Android Studio 中 FFMPEG 静态库引入完整 CMake ...

  8. android studio管理依赖,Android Studio 中的 Gradle 依赖统一管理

    在我们的实际项目开发中,通常在一个 Project 项目中会存在多个 Module 的情况,在这些 Module 中会存在一些相同的版本依赖配置,针对进行版本升级的时候需要逐个修改,显得特别麻烦,所以 ...

  9. 联想服务器在UEFI HII界面中配置阵列的基本操作

    联想服务器在UEFI HII界面中配置阵列的基本操作 操作步骤: 重要提示:配置阵列时请谨慎操作,并仔细阅读各种提示,以防误操作导致数据损失. 内容导航 一.进入阵列卡配置界面并查看硬盘状态 二.创建 ...

最新文章

  1. 深入理解javascript作用域系列第四篇——块作用域
  2. 获取Matlab 30天在线试用版本
  3. c语言拟合线性直线误差最小,急~~~~~~!!!求解!用C语言编写最小二乘法求数据的拟合曲线~并做出图显示拟合效果!高分悬赏!...
  4. map传参上下文赋值的问题
  5. permission denied是什么鬼?
  6. 黄聪:php中utf-8模板获取GB2312编码页面传递URL中文编码转换方法
  7. Bootstrap3基础 glyphicon 设置图标的颜色与大小
  8. 太极图正确画法_什么是太极?其意义是什么?太极图是谁画的?
  9. 企业微信会话存档功能
  10. H3C交换机配置的备份与恢复[3CDaemon]
  11. Java - 类加载器
  12. Spring框架七大核心模块
  13. servlet003:监听器
  14. 多文件自平衡云传输(二)资源接收 断点续传篇 —————— 开开开山怪
  15. ubuntu下向163发送邮件
  16. linux服务器显卡监控脚本
  17. [lr] 基本色调调整和色调曲线
  18. 深度学习高手该怎样炼成?这位拿下阿里天池大赛冠军的中科院博士为你规划了一份专业成长路径
  19. ALV中的回车事件相应及添加F4帮助
  20. 暴走的Polkadot (DOT)(上)

热门文章

  1. 图像mnf正变换_PCA和MNF变换
  2. [系统安全] 三十五.Procmon工具基本用法及文件进程、注册表查看
  3. linux C++ 获取当前时间,以标准时间“年-月-日 时:分:秒”的形式输出
  4. 【Matlab瑕疵检测】阙值瓶盖瑕疵检测【含源码 730期】
  5. 运行Chromium浏览器缺少google api密钥无法登录谷歌账号的解决办法
  6. net use的用法
  7. Arduino(五)——呼吸灯
  8. LBS:利用IP地址,获取地理位置
  9. 最详细的北京摩托车上牌流程-自己跑流程
  10. 搭建spark源码运行环境报错及解决办法