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.
     *
     * <p>The field is generated as: {@code <type> <name> = <value>;}
     *
     * <p>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
说明打包成功了

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值