Android 开发APP中参数配置与读取总结

以使用MQTT配置的参数   MQTT_BROKER_UR 、MQTT_USER_NAME、  MQTT_PASSWORD为例,说明配置设置和读取应用

项目中使用系统参数(如环境变量和gradle.properties文件中的属性)在Gradle构建脚本中,以下是一个详细的操作文档资料,涵盖了如何设置、访问这些参数,并将其应用到Android项目的BuildConfig类中。

系统参数使用的操作文档

1. 设置系统环境变量

系统环境变量可以直接影响你的构建过程。它们通常用于存储敏感信息或根据运行环境变化的配置。

  • Windows:
    • 打开“系统属性” -> “高级系统设置” -> “环境变量”,然后添加新的环境变量。
  • Linux/MacOS:
    • 编辑~/.bashrc~/.zshrc或其他shell配置文件,添加如下行:
       bash 

      深色版本

      export MQTT_BROKER_URL="tcp://your_broker_url:port"
2. 使用gradle.properties文件

gradle.properties文件允许你在项目内部定义一些可复用的属性,这些属性可以在整个项目中被引用。

  • 在项目根目录下创建或编辑gradle.properties文件,添加如下内容:
     properties 

    深色版本

    MQTT_BROKER_URL=tcp://your_broker_url:port
    MQTT_CLIENT_ID=yourClientId
    MQTT_USERNAME=yourUsername
    MQTT_PASSWORD=yourPassword
3. 配置build.gradle.kts以使用这些属性

在你的模块级别的build.gradle.kts文件中启用buildConfig并正确引用这些属性。

 

kotlin

深色版本

plugins {
    alias(libs.plugins.android.application)
}

android {
    buildFeatures {
        buildConfig = true // 启用BuildConfig生成
    }

    defaultConfig {
        applicationId = "cn.sin.smart.container" // 示例包名
        minSdk = 24
        targetSdk = 35
        versionCode = 1
        versionName = "1.0"

        val mqttBrokerUrl: String? = project.findProperty("MQTT_BROKER_URL") as? String
        val mqttClientId: String? = project.findProperty("MQTT_CLIENT_ID") as? String
        val mqttUsername: String? = project.findProperty("MQTT_USERNAME") as? String
        val mqttPassword: String? = project.findProperty("MQTT_PASSWORD") as? String

        buildConfigField("String", "MQTT_BROKER_URL", "\"${System.getenv("MQTT_BROKER_URL") ?: (mqttBrokerUrl ?: "")}\"")
        buildConfigField("String", "MQTT_CLIENT_ID", "\"${System.getenv("MQTT_CLIENT_ID") ?: (mqttClientId ?: "")}\"")
        buildConfigField("String", "MQTT_USERNAME", "\"${System.getenv("MQTT_USERNAME") ?: (mqttUsername ?: "")}\"")
        buildConfigField("String", "MQTT_PASSWORD", "\"${System.getenv("MQTT_PASSWORD") ?: (mqttPassword ?: "")}\"")
    }
}
4. 访问BuildConfig字段

一旦设置了上述所有内容并在Gradle同步后,你可以通过BuildConfig类访问这些值:

  • Kotlin

     kotlin 

    深色版本

    val brokerUrl = BuildConfig.MQTT_BROKER_URL
    println("MQTT Broker URL is $brokerUrl")
  • Java

     java 

    深色版本

    String brokerUrl = BuildConfig.MQTT_BROKER_URL;
    System.out.println("MQTT Broker URL is " + brokerUrl);
5. 调试与验证

为了确保属性被正确读取和设置,可以添加一个简单的任务来打印出所有的属性值,以便调试:

 

kotlin

深色版本

tasks.register("printProperties") {
    doLast {
        println("MQTT Broker URL from env: ${System.getenv("MQTT_BROKER_URL")}")
        println("MQTT Broker URL from properties: ${project.findProperty("MQTT_BROKER_URL")}")
        println("Final MQTT Broker URL in BuildConfig: ${BuildConfig.MQTT_BROKER_URL}")
    }
}

然后运行这个任务:./gradlew printProperties,检查输出是否符合预期。

通过遵循以上步骤,你应该能够成功地在你的Android项目中使用系统参数,并将它们安全地传递给应用程序代码。这种方法不仅提高了灵活性,也增强了安全性,因为它避免了硬编码敏感信息。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天机️灵韵

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值