目前,我的应用程序包含三个功能,这些功能已在商店中发布。
我想为每个功能创建一个单独的应用程序,但我不想复制和粘贴,因为我将不得不维护多个代码库。
我已阅读有关Product Flavors的内容,可用于从同一代码库创建不同的应用程序。如何创建四个独立的应用程序,同时只维护一个代码库?
具体来说:我在哪里放置包含所有功能的主应用程序的源?
有人可以建议我如何组织我的代码吗?
答案 0 :(得分:1)
您可以在gradle文件中创建产品风格,如上所述,您共享的链接还需要在创建这些风格时创建不同的包名称,例如。
在gradle中
productFlavors {
demo{
applicationId "com.mycompany.myproject.demo"
versionCode getCustomBuildVersion()
versionName VERSION_NAME
}
full{
applicationId "com.mycompany.myproject.full"
versionCode getCustomBuildVersion()
versionName VERSION_NAME
}
}
通过这种方式,您可以从相同的代码库生成不同的应用程序。您可以使用和设置标志来启用或禁用某些功能。请查看此链接以获取进一步的帮助:Android using Gradle Build flavors in the code like an if case
在你想要改变的活动中,在onCreate()中执行类似的操作:
if (BuildConfig.FLAVOR.equals("demo")){
switchToDemoHomePage()
}
else if(BuildConfig.FLAVOR.equals("full")){
switchToFullHomePage()
}
通过这种方式,您可以根据应用的风格显示/隐藏/更改任何功能/选项/流程
答案 1 :(得分:1)
您可能希望在MAIN中定义产品风格和代码库中的编译器开关,并使用BuildConfig.feature1进行访问 喜欢
productFlavors {
flavor1{
buildConfigField "Boolean", "feature1", true;
buildConfigField "Boolean", "feature2", false;
}
flavor2{
buildConfigField "Boolean", "feature1", false;
buildConfigField "Boolean", "feature2", true;
}
main{
buildConfigField "Boolean", "feature1", true;
buildConfigField "Boolean", "feature2", true;
}
}