打包时动态指定一些值

Posted 夜空

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了打包时动态指定一些值相关的知识,希望对你有一定的参考价值。

最近项目要上线了,所以经常需要打包.apk进行测试。

那么就有一个问题:有时候需要本地环境,有时候需要测试环境,还有生产环境,这些环境的一些baseUrl,证书文件(.der)都不同。在修改的时候要改好几个地方,不太方便,而且容易忘记。

能不能只改一个地方呢?那是必须可以的。

在build.gradle文件中:

defaultConfig {

buildConfigField("String", "BaseUrl", "\"https://192.168.1.1/api/v1\"")//银行测试环境
        buildConfigField("String", "DER", "\"xxx.der\"")//银行测试环境
}

buildCongigField的三个参数:变量类型,变量名,变量值。

buildCongigField可以定义一个变量,这个变量在任何环境下都可以使用。

buildCongigField的使用:

String s = BuildConfig.BaseUrl;

这样在程序中可以根据build.gradle文件的配置来修改一些变量的值,只需要修改一个地方,比较方便。

 

以上是关于打包时动态指定一些值的主要内容,如果未能解决你的问题,请参考以下文章

Android 逆向Android 进程代码注入原理 ( 注入本质 | 静态注入和动态注入 | 静态注入两种方式 | 修改动态库重打包 | 修改 /data/app/xx/libs 动态库 )

maven 打包时动态替换properties资源文件中的配置值

调用 replace() 时片段的生命周期是啥?

片段和活动之间没有传递值

[Go] 通过 17 个简短代码片段,切底弄懂 channel 基础

为动态创建的 Android 片段提供自定义属性值