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

需求:

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

开发服务器使用 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 ...

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值