我们开发了一些模块并使用相同的连接器类。我们在静态数据中使用Mow。对服务器的调用在应用程序和开发/生产之间是不同的。
我有一些问题:
是否可以在运行时从gradle获取数据?
当gradle构建模块(在构建类型中使用)和gradle.properties时,是否可以在我的类的变量中生成/设置数据?
答案 0 :(得分:5)
您还可以在build.gradle中使用buildConfigField
buildTypes {
release {
// ...
buildConfigField "boolean", "CHROMECAST", "false"
buildConfigField "boolean", "NOTIFICATION_COVER", "false"
buildConfigField "String", "API_URL", "\"https://your/production/url/\""
}
debug {
// ...
buildConfigField "boolean", "CHROMECAST", "false"
buildConfigField "boolean", "NOTIFICATION_COVER", "true"
buildConfigField "String", "API_URL", "\"https://your/development/url\""
}
}
在您的应用代码中,您可以通过以下方式访问这些变量: BuildConfig.CHROMECAST
或BuildConfig.API_URL
对于资源,您可以在src/debug/res
中为调试版本创建特定资源,例如一个特殊的应用程序图标或覆盖应用程序名称。
答案 1 :(得分:0)
我认为productFlavors
正是您想要的:
要使用它们,您必须在模块中添加 build.gradle 以下代码:
android{
...
productFlavors {
test1 {
applicationId "your.package.application.test1"
}
test2 {
}
}
...
}
之后您必须在src
文件夹中创建与构建变体同名的文件夹:例如,对于test1
,您必须创建 test1文件夹。
在下一步中,您必须将res
文件夹添加到 test1 文件夹,例如添加values/strings.xml
要测试你可以添加:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">Your app 2</string>
</resources>
现在,当您选择test1 build variant时,您的应用程序将具有名称&#34;您的应用2&#34;
要更改构建变体,您必须使用任务,或者您可以在下面的视图中设置它: