Android 相同的代码库、不同的APK、不同的资源文件和不同的Web服务URL

Android 相同的代码库、不同的APK、不同的资源文件和不同的Web服务URL,android,android-gradle-plugin,apk,Android,Android Gradle Plugin,Apk,让我们设想以下情况: 我正在为汽车开发一个应用程序,比如说大众汽车。现在,斯柯达(属于同一个组)希望使用相同的应用程序,但使用不同的Resources文件,并且需要对代码进行一些检查,如。如果是大众,就叫这个webservice,如果是斯柯达,就叫另一个 我真的无法回答这个问题:“它是同一个应用程序吗?” 从代码的角度看是,但从play store的角度看不是 我怎样才能拥有相同的代码库,但有两个不同的包名 我认为我读到这篇文章的方向是好的,但是如果你有什么诀窍、建议或帮助可以分享,我会很高兴听

让我们设想以下情况: 我正在为汽车开发一个应用程序,比如说大众汽车。现在,斯柯达(属于同一个组)希望使用相同的应用程序,但使用不同的Resources文件,并且需要对代码进行一些检查,如。如果是大众,就叫这个webservice,如果是斯柯达,就叫另一个

我真的无法回答这个问题:“它是同一个应用程序吗?” 从代码的角度看是,但从play store的角度看不是

我怎样才能拥有相同的代码库,但有两个不同的包名

我认为我读到这篇文章的方向是好的,但是如果你有什么诀窍、建议或帮助可以分享,我会很高兴听到:) 我知道有人问过这个问题,但我正在寻找gradle&Android Studio的解决方案


Tx

谷歌play store使用的应用程序id在Build.gradle文件中定义: 像


只需在新flavor的自动生成文件夹下创建ressources文件夹。有关更多信息,请参见。

您好,您可以使用product flavor为每个新应用程序定义包名,如@stoke所说

productFlavors{
附件1{
applicationId“com.example.package.app1”
buildConfigField“字符串”、“API\u URL”、“字符串”https://www.myapi.com/apiv1/\""
}
附件2{
applicationId“com.example.package.app2”
buildConfigField“字符串”、“API\u URL”、“字符串”https://www.myapi.com/apiv2/\""
}
}

为了在构建中定义不同的端点或url,您可以定义要在代码中使用的构建变量

然后您可以在java代码中像BuildConfig.API\uURL一样访问它们

对于不同口味的不同资源,您需要定义两个与新口味名称匹配的目录


检查文件结构和资源。

我要补充的是,如果您有很多字符串或其他资源要按风格切换,您可以创建{flavor\u name}/res/。。。而不是在build.gradle中定义所有文件file@RobertNekic我说“对于不同口味的不同资源,您需要定义两个与新口味名称匹配的目录”url中更深入地解释了项目的结构,其中每个项目都有不同的图标和字符串flavor@RobertNekic我只是使用buildConfigFields来定义restApi Url和GoogleAPI键,但我觉得在构建中使用它们是正确的。
productFlavors {
        vw {
            applicationId = "com.example.my.pkg.vw"
        }
        skoda {
            applicationId = "com.example.my.pkg.skoda"
        }