美文网首页
在Android上配置正式和测试服务器

在Android上配置正式和测试服务器

作者: laujiangtao | 来源:发表于2017-08-18 12:17 被阅读0次

在开发过程中,打包上传应用商店的apk需要连接正式服务器,而在平时打包的时候,一般连接测试服务器,每一次手动设置挺麻烦的,所以

通常设置是这样的

//正式
//public static final String IP = "";
//public static final String API = "";

//测试
public static final String IP = "";
public static final String API = "";

使用哪一个就把哪一个放开,现在我们可以使用gradle配置两个服务器

首先要在项目目录下的gradle中添加打包的版本

app目录下build.gradle文件.png

在buildTypes标签下添加

    buildTypes {
        local {
            //配置本地服务器
            buildConfigField "String", "HOST", LOCAL_HOST
            buildConfigField "String", "API", LOCAL_API
            //显示log
            buildConfigField "boolean", "LOG_DEBUG", "true"
            signingConfig signingConfigs.hxtx
        }
        debug {
            //配置测试服务器
            buildConfigField "String", "HOST", DEBUG_HOST
            buildConfigField "String", "API", DEBUG_API
            //显示log
            buildConfigField "boolean", "LOG_DEBUG", "true"
            signingConfig signingConfigs.hxtx
        }
        release {
            //配置正式服务器
            buildConfigField "String", "HOST", RELEASE_HOST
            buildConfigField "String", "API", RELEASE_API
            // 不显示Log
            buildConfigField "boolean", "LOG_DEBUG", "false"
            minifyEnabled true
            shrinkResources true //移除无用资源
            debuggable false
            zipAlignEnabled true //zipalign优化
            signingConfig signingConfigs.hxtx
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'

            // 自定义输出配置
            applicationVariants.all { variant ->
                variant.outputs.each { output ->
                    def outputFile = output.outputFile
                    if (outputFile != null && outputFile.name.endsWith('.apk')) {
                        // 输出apk名称为SAAS_v1.0_2016-12-01_uerbt.apk
                        def fileName = "APK_${variant.flavorName}_${variant.versionName}_${releaseTime()}.apk"
                        output.outputFile = new File(outputFile.parent, fileName)
                    }
                }
                //过滤掉unaligned的包
                variant.assemble.doLast {
                    variant.outputs.each { output ->
                        println "-----------------------------------------"
                        println "aligned " + output.outputFile
                        println "unaligned " + output.packageApplication.outputFile
                        File unaligned = output.packageApplication.outputFile
                        File aligned = output.outputFile
                        if (!unaligned.getName().equalsIgnoreCase(aligned.getName())) {
                            println "deleting " + unaligned.getName()
                            unaligned.delete()
                        }
                    }
                }
            }
        }
    }

然后在release 或者debug 里面添加

buildConfigField "String", "HOST", DEBUG_HOST

其中DEBUG_HOST字段需要在gradle.properties中配置

gradle.properties文件.png
# Project-wide Gradle settings.

# IDE (e.g. Android Studio) users:
# Gradle settings configured through the IDE *will override*
# any settings specified in this file.

# For more details on how to configure your build environment visit
# http://www.gradle.org/docs/current/userguide/build_environment.html

# Specifies the JVM arguments used for the daemon process.
# The setting is particularly useful for tweaking memory settings.
org.gradle.jvmargs=-Xmx1536m

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
# org.gradle.parallel=true
android.enableAapt2=false

RELEASE_HOST=""
RELEASE_API=""

DEBUG_HOST=""
DEBUG_API=""

LOCAL_HOST=""
LOCAL_API=""

使用的时候直接使用

BuildConfig.HOST

就可以取到 buildConfigField "String", "HOST", DEBUG_HOST 对应的值

RELEASE_HOST | DEBUG_HOST | DEBUG_HOST

使用

BuildConfig.API

就可以取到对应的api的值

RELEASE_API | DEBUG_API | LOCAL_API

打包时只要选择对应的版本就好了

打包.png

相关文章

  • 在Android上配置正式和测试服务器

    在开发过程中,打包上传应用商店的apk需要连接正式服务器,而在平时打包的时候,一般连接测试服务器,每一次手动设置挺...

  • android builde.gradle 动态配置域名

    在android app开发中,我们有测试服务器和正式服务器,打包时要智能化区分域名,而gradle可以帮助我们快...

  • Gradle构建Android差异包

    【背景说明】 在Android项目开发过程中,需要和服务器进行通信,后台提供的接口区分了测试服务器和正式服务器,作...

  • AS中buildConfigField使用

    配置buildConfigField 在开发中经常分测试环境和正式环境,每次发布版本总是要修改服务器地址或者端口号...

  • Linux hosts.deny文件限制ssh访问效果

      使用两台linux服务器进行测试,192.168.1.28和192.168.1.38,在38上配置hosts....

  • Linux服务器配置tomcat

    配置tomcat服务器要分成两部分:配置jdk 、配置tomcat 一、安装JDK 1、事先用命令测试服务器上是否...

  • 2018-05-22(做个纪念)

    在Mac OSX上配置Appium+Android自动化测试环境(我iOS环境也整好了,先发一个Android的试...

  • go初探-代理服务器

    缘由 上线的应用作渗透测试和安全测试,提了一个静态资源访问风险。静态资源存储在oss服务器上,配置为公共读,一般情...

  • 游戏上线或测试的准备

    测试提前准备:1,最新包(测试服log加好,正式服log关掉 ,版本号加好)2,服务器配置:桌子数,是否倒计时 ,...

  • Google真坑爹!Android Studio中gradle配

    在开发的时候遇到服务器配置的问题,想在测试环境和开发环境中配置两套不同的服务器参数,于是想到在gradle中使用b...

网友评论

      本文标题:在Android上配置正式和测试服务器

      本文链接:https://www.haomeiwen.com/subject/idtarxtx.html