Android为每种环境配置提供了哪些解决方案?在Web世界中,我习惯于C#具有配置转换,并且在具有将适当的.properties文件复制到WAR中的构建的Java Web应用程序中。
Android的解决方案是什么?现在,我看到很多人只是硬编码静态变量,并在他们想要构建生产APK时将其更改。
编辑:看看类似的问题,人们建议使用SharedPreferences,但我不明白这一点,因为它似乎是一个Runtime对象,而不是一个文件。我不是在寻找在启动时存储这些值,而是让应用程序使用配置文件中的某组属性进行构建。答案 0 :(得分:7)
1。)我建议使用gradle来设置环境设置。
Android版有很棒的插件:http://tools.android.com/tech-docs/new-build-system/user-guide
2。)使用" productFlavors"用于环境设置。
看看这个:http://tulipemoutarde.be/2013/10/06/gradle-build-variants-for-your-android-project.html
示例配置将是:
android {
compileSdkVersion 19
buildToolsVersion "19.0.1"
sourceSets {
main {
manifest.srcFile 'src/main/AndroidManifest.xml'
java.srcDirs = ['src/main/java']
resources.srcDirs = ['src']
aidl.srcDirs = ['src']
renderscript.srcDirs = ['src']
res.srcDirs = ['src/main/res']
assets.srcDirs = ['src/main/assets']
}
}
buildTypes {
debug {
runProguard false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
release {
runProguard true
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.txt'
}
}
productFlavors {
production {
packageName "com.sample.app"
}
staging {
packageName "com.sample.app.staging"
}
develop {
packageName "com.sample.app.develop"
}
}
}