Android StudioGradle 一键快速打包

转载请注明出处:https://blog.csdn.net/darling_R/article/details/83446413

在开发中,肯定会有测试包和正式包,进而就会有测试环境和正式环境(测试地址和正式地址),如何快速的自动切换呢,请往下看
这里使用buildConfigField巧妙的替换,操作如下:

android{
...
    buildTypes {
        release {
            minifyEnabled false
            proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
            signingConfig signingConfigs.release
            buildConfigField("boolean","LOG_DEBUG","false")
            buildConfigField("String","Base_URL","\"http://www.releaseurl.com\"")
        }
        debug {
            signingConfig signingConfigs.debug
            buildConfigField("boolean","LOG_DEBUG","true")
            buildConfigField("String","Base_URL","\"http://www.testurl.com\"")
        }
    }
    ...
}

这样配置之后,会在app/build/generated/source/buildConfig 目录下的BuildConfig 文件里自动添加 buildConfigField参数的第二个参数为变量,在项目里面就可以直接应用 BuildConfig.LOG_DEBUG 或者BuildConfig.Base_URL等来使用,
这里介绍一下buildCOnfigField的参数,第一参数是表示其类型,第二个是变量的字段名,第三个是参数的值,源码如下:

    /**
     * Adds a new field to the generated BuildConfig class.
     *
     * 

The field is generated as: {@code = ;} * *

This means each of these must have valid Java content. If the type is a String, then the * value should include quotes. * * @param type the type of the field * @param name the name of the field * @param value the value of the field */ public void buildConfigField( @NonNull String type, @NonNull String name, @NonNull String value) { ClassField alreadyPresent = getBuildConfigFields().get(name); if (alreadyPresent != null) { String message = String.format( "BuildType(%s): buildConfigField '%s' value is being replaced: %s -> %s", getName(), name, alreadyPresent.getValue(), value); issueReporter.reportWarning(Type.GENERIC, message); } addBuildConfigField(new ClassFieldImpl(type, name, value)); }

很容易就能看明白。
最后,打包的时候,就会自动赋值,正式包 就是release里面配置的值,测试包 就是debug里面配置的值,都不用每次都去更改标志位的值了,是不是很简单

最后,最后,一键打包,如下图。
assembleRelease 就是正式包
assembleDebug 就是测试包 调试包

双击就可以运行,等一会控制台就会出现BUILD SUCCESSFUL
说明打包成功了
Android StudioGradle 一键快速打包_第1张图片

你可能感兴趣的:(Android)