关于Android app正式版本和测试版本的切换
前段时间发版app出现了问题,app上的服务器链接竟然是测试服务器的链接,这让我很尴尬。
因为每次正式和测试服务器的切换都是手动替换的,所以才会出现这种问题,然后我就在想能不能根据release和debug来进行切换正式和测试的服务器链接。最后研究出结果,在这里记录。
正式和测试的代码是在build.gradle中实现的。
def Base_Url = "\"http://正式服务器/\"" //斜杠必须得加,为了让java代码识别这是String类型
def CBase_Url = "\"http://测试服务器/\""
def Base_UM = "baidu"
android {
//中间省略若干代码buildTypes {release {//混淆minifyEnabled trueproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//密钥直接run生效signingConfig signingConfigs.release//正式,其中“BASE_URL”为Java中引用的字段buildConfigField "String", "BASE_URL", Base_Url//友盟来源设置,如果你接了友盟manifestPlaceholders = [umeng_app_key: Base_UM]}debug {//混淆minifyEnabled falseproguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'//密钥直接run生效signingConfig signingConfigs.release//测试buildConfigField "String", "BASE_URL", CBase_UrlmanifestPlaceholders = [umeng_app_key: "ceshi"]}}//自动生成指定名称的release发布版的 apk文件android.applicationVariants.all { variant ->def appNameif(variant.buildType.name.equals('release')){//在正式模式下,再根据服务器链接来判断是否为正式服务器if(Base_Url.contains("api")){if(Base_UM.equals("guanwang")){appName = "NameV"+defaultConfig.versionName}else{appName = "Name-"+Base_UM+"V"+defaultConfig.versionName}}else if(Base_Url.contains("sixsix")){appName = "测试_V"+defaultConfig.versionName}else {appName = "未知_V"+defaultConfig.versionName}} else {appName = "测试"}
// if(variant.buildType.name.equals('release')){
// } else {
// }variant.outputs.all { output ->outputFileName = "${appName}.apk"}}
}
在java中引用BASE_URL:
String BASE_URL = BuildConfig.BASE_URL;
在AndroidManifest.xml中引用友盟来源
<meta-data android:value="${umeng_app_key}" android:name="UMENG_CHANNEL"/>
最后的那个自动生成apk,是为了更加方便。因为要生成不同来源的apk进行上传,为了不用每次生成改名字,直接这么生成名字。
关于Android app正式版本和测试版本的切换相关推荐
- Android APP通过浏览器下载最新版本
Android APP通过浏览器下载最新版本 首先判断app本地的版本和服务器上的版本是否是一样的.如果有新版本,那么就进行更新. 需要服务器端提供两个接口 获取服务器端apk版本号 apk地址 1. ...
- android fragment界面滑动切换效果,Android App中使用ViewPager+Fragment实现滑动切换效果...
在android应用中,多屏滑动是一种很常见的风格,没有采用viewpager的代码实现会很长,如果采用ViewPager,代码就会短很多,但是使用ViewPager也有弊端:需要导入android- ...
- Android APP性能及专项测试(个人整理)
Android性能测试分为两类: 1.一类为rom版本(系统)的性能测试 2.一类为应用app的性能测试 Android的app性能测试包括的测试项比如: 1.资源消耗 2.内存泄露 3.电量功耗 4 ...
- Android APP性能及专项测试(学习笔记)
1. 性能测试 Android性能测试分为两类: 1.一类为rom版本(系统)的性能测试 2.一类为应用app的性能测试 Android的app性能测试包括的测试项比如: 1.资源消耗 2.内存泄露 ...
- Android app 性能测试以及专项测试
1. 性能测试 Android性能测试分为两类: 1.一类为rom版本(系统)的性能测试 2.一类为应用app的性能测试 Android的app性能测试包括的测试项比如: 1.资源消耗 2.内存泄露 ...
- Android APP性能及专项测试
Android篇 1. 性能测试 Android性能测试分为两类: 1.一类为rom版本(系统)的性能测试 2.一类为应用app的性能测试 Android的app性能测试包括的测试项比如: 1.资源消 ...
- 【转】Android APP性能及专项测试(个人整理)
转载地址:https://www.zybuluo.com/defias/note/592309 Android篇 1. 性能测试 Android性能测试分为两类: 1.一类为rom版本(系统)的性能 ...
- app功耗测试软件,Android app专项测试之耗电量测试
前言 耗电量指标 待机时间成关注目标 提升用户体验 通过不同的测试场景,找出app高耗电的场景并解决 01需要的环境准备 1.python2.7(必须是2.7,3.X版本是不支持的) 2.golang ...
- Android app专项测试之耗电量测试
00 前言 耗电量指标 待机时间成关注目标 提升用户体验 通过不同的测试场景,找出app高耗电的场景并解决 01 需要的环境准备 1.python2.7(必须是2.7,3.X版本是不支持的) 2.go ...
最新文章
- 研究你为啥看着淘宝想剁手,阿里达摩院论文登上NeurIPS 2019
- AgileGAN130毫秒生成动漫肖像!LeCun点赞:超越梵高
- 改善代码设计 —— 总结篇(Summary)
- voip 音频采集时间_数字音频基础------从PCM说起
- 左神算法:判断二叉树是否为平衡二叉树(树形dp套路,Java版)
- 计算机网络【1】物理层
- NuGet是什么?理解与使用(下)
- OAuth和OpenID的区别(转)
- 您可能在2017年期待JavaScript会议
- Ubuntu 平滑升级到PHP7
- CGI form标签学习
- 数据中心的供配电系统
- 【论文学习之SNE-RoadSeg】跑通SNE-RoadSeg代码
- 十个步骤带你了解TAPD——TAPD教程
- 如何推动数字经济新时代产业转型升级
- kodi android 卡顿,解决KODI v17/16在电视上不能打开4K播放卡顿的问题
- 【CV】FPN:用于目标检测的特征金字塔网络
- DAY12 计蒜客 有趣的数字 爬楼梯 七巧板
- 计算机辅助制造题库选择题,《机械设计基础习题库
- 中国联通公司与中国移动的差别,就在这!