Java Android的每环境配置

Java Android的每环境配置,java,android,configuration,build,Java,Android,Configuration,Build,Android为每个环境配置提供了什么解决方案?在网络世界中,我习惯于使用C#进行配置转换,在Java web应用程序中,我习惯于使用将适当的.properties文件复制到WAR中的构建 安卓的解决方案是什么?现在,我看到很多人只是硬编码静态变量,并在他们想要构建生产APK时更改它们 编辑:看看类似的问题,人们建议使用SharedReferences,但我不理解这一点,因为它似乎是一个运行时对象,而不是一个文件。我不希望在启动时存储这些值,而是从配置文件中生成具有特定属性集的应用程序 1。)我

Android为每个环境配置提供了什么解决方案?在网络世界中,我习惯于使用C#进行配置转换,在Java web应用程序中,我习惯于使用将适当的.properties文件复制到WAR中的构建

安卓的解决方案是什么?现在,我看到很多人只是硬编码静态变量,并在他们想要构建生产APK时更改它们

编辑:看看类似的问题,人们建议使用SharedReferences,但我不理解这一点,因为它似乎是一个运行时对象,而不是一个文件。我不希望在启动时存储这些值,而是从配置文件中生成具有特定属性集的应用程序

1。)我建议使用gradle设置环境设置

Android有一个很棒的插件:

2.)使用“productFlavors”进行环境设置

看看这个:

示例配置为:

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"
        }
    }

}