我的应用程序需要成倍增加,因为我希望Google Play中的许多应用程序具有相同但以不同方式配置的应用程序。 例如,我想制作一个应用程序来查看每个国家的最新消息。 我想要一个英格兰的应用程序,一个用于法国,一个用于意大利......等等。 该应用程序是相同的,但配置在不同的模式(不同的应用程序名称,不同的徽标,不同的文本等..)
我知道我必须创建多个Android项目。我认为我必须重命名包.. ex ...
com.xxx.myappEn
com.xxx.myappFr
com.xxx.myappIt
我测试了这个解决方案,但是当我安装myAppFr时,它会覆盖以前安装的。
重构后,我发现在build.gradle(app)中还有 com.xxx.myapp
defaultConfig {
applicationId "com.xxx.myapp"
minSdkVersion 15
targetSdkVersion 23
versionCode 1
versionName "1.0"
}
此ID必须不同?
问题2: 我的应用需要从网上保存文件..我这样做:
new File(getFilesDir() + File.separator + DATA_FILE_NAME)
getFilesDir()取决于applicationId?我看到它始终是
com.xxx.myApp
而不是:
com.xxx.myAppEn
或其他人。
问题3:还有更快的解决方案吗?
答案 0 :(得分:2)
使用gradle产品口味。它们正是您所需要的。
你的问题:
这个ID需要不同吗?
是。 build.grade中的applicationId将覆盖包名称(即使在清单中)。如果您添加更多产品口味,这非常方便。
getFilesDir()取决于applicationId?
是。因为getFilesDir依赖于您的包,并且gradle使用applicationId
中的值来操纵包还有更快的解决方案吗?
是。使用在build.gradle中定义了多个产品风格的一个项目。
需要更多信息?谷歌指南一定会帮助您: http://developer.android.com/tools/building/configuring-gradle.html#workBuildVariants