android开发推荐一种方便的配置参数表单

在我们开发APP时可能会配置信息很多乱七八糟的东西,并且这些都是死的

比如:
三方的appke或者我们的测试或者生产域名,都可以写在一个配置表单里面统一去管理会非常的方便

1.使用及原理

我们可以在主工程中的build.gradle文件中添加以下代码

buildTypes {
        debug {
            buildConfigField "String", "BASE_UTL", "\"https://xxxx.com\""
            resValue "string", "app_name", "base"
        }
        }

这里我们使用到了buildConfigField和 resValue

 buildConfigField关键字:
可以在编译时build\generated\source\buildConfig\变体\包名目录下面生成对应的变量直接在类中引用
如下:

在类中引用:
BuildConfig.BASE_UTL(注意导入对应的包名)
 
resValue 关键字:
可以在编译时build\generated\res\resValues\变体\values,目录下面生成对应的String资源
如下:

跟平常直接使用资源文件的String是一样的 

2.优化

了解了大概原理之后,我们稍微优化一下封装成一个表单

步骤:

  1. 在工程的根目录创建一个config.gradle文件
  2. 引用gradle脚本文件
  3. 在变体中对应并且类中引用

第一步:

  • 在工程的根目录创建一个config.gradle文件,格式可以直接按照这种处理
ext{
    //域名
    baseUrl  =  "https://xxxx.com"
    //包名
    applicationId = "com.shell.base"
    //App名称
    app_name = "base"
    //App版本信息
    version = [
        versionCode:1,
        versionName:"1.0.1"
    ]
}

第二步:

  • 在工程根目录的build.gradle中添加
apply from: './config.gradle'

第三步:

  • 在变体中对应并且类中引用
defaultConfig {
        applicationId rootProject.ext.applicationId
        versionCode rootProject.ext.version.versionCode
        versionName rootProject.ext.version.versionName
    } 

buildTypes {
        debug {
            buildConfigField "String", "BASE_UTL", "\"${rootProject.ext.baseUrl}\""
            resValue "string", "app_name", "${rootProject.ext.app_name}"
        }
        release{
            buildConfigField "String", "BASE_UTL", "\"${rootProject.ext.baseUrl}\""
            resValue "string", "app_name", "${rootProject.ext.app_name}"
        }
}

注意:最好两种变体都要一样,以免打包时出现某些环境编译生成失败

至此就完成了表单的简单封装,这种方式也可以用来管理依赖

猜你喜欢

转载自blog.csdn.net/lwh1212/article/details/130563973
今日推荐