【发布时间】:2013-09-25 13:49:52
【问题描述】:
看了这篇文章,想到了同样的问题-One code base, two applications on Android
我创建了一个应用程序testApp,其中包含topics、splash screens、logos、charts、rules、statuses 和/或events 等项目。
现在,我想要来自相同代码库的不同应用程序(testApp_USA、testApp_Canada、testApp_Australia)并将它们放在 Google Play 商店中,这样如果用户下载应用程序,例如 testApp_USA,则只应显示该地区的特定项目,例如美国的闪屏、美国徽标等。
所以我想根据国家配置多个应用程序,然后根据用户下载的应用程序将项目设置为默认值。
目前,我有一个适用于所有地区的应用程序,并且我施加了多个条件来根据地区区分或更改项目。
例如:
(在很多 Java 文件中,我使用过)
if(rule.contains("USA"))
{
//Show splash screen of USA
}
(同样,在很多 Java 文件中,我都使用过)
if(rule.contains("Australia"))
{
//Show splash screen of Australia
}
这只是众多重复代码中的一项。综合考虑,会更多。
应该有更好的方法在 android 中创建多个具有不同名称和设置的应用程序。
我知道,iOS 允许我轻松更改应用程序名称和配置文件以允许创建多个应用程序。但是我不知道或者这在Android代码上不容易做到。
我的问题:
是否可以在 android 中使用相同的源代码创建具有不同项目设置的不同应用程序并将它们发布到 Google Play 商店?如果YES,如何设置这样的配置?
更新:
阅读这篇文章 - multiple-android-application-package-apk-files-from-single-source-code
然后我想出了同样的想法-
1) 获取一些字符串变量,其中包含您要创建的应用程序类型的值。
public static final String app_Name = "testApp_CANADA" ;
2) 有多个 AndroidManifest.xml 文件,用于您需要为其创建 .apk 的多个应用程序。
3) 为每个清单创建相应的启动器活动。
那么如何在一个应用中拥有多个AndroidManifest.xml 文件呢?
更新:
我的第一个 AndroidManifest.xml 像往常一样位于 主项目 文件夹(应用程序根文件夹)中。考虑一下testApp_USA。
我的第二个AndroidManifest.xml 在主项目下的独立包中。考虑一下testApp_CANADA。
AndroidManifest.xml 都有不同的启动器活动,并带有相应的启动屏幕和定义的图标。两者的包名称不同,因此它们将根据需要创建不同的 .apk 文件。
现在,如果我的主应用有设置,如何在testApp_USA/testApp_CANADA 之间切换代码:
public static final String app_Name = "testApp_CANADA" ;
或
更清楚,
如何根据app_Name的值调用特定的AndroidManifest.xml?
根据我的当前设置,始终只调用第一个 AndroidManifest.xml。
【问题讨论】:
-
developer.android.com/guide/topics/resources/localization.html - 每个区域/本地化的 values/rules.xml,然后简单地阅读?
-
虽然该链接很有帮助,但它并没有解决创建具有不同配置的不同应用程序的问题。它是一种根据设备的配置进行区域查找和使用区域定义资源的方法。
标签: android google-play app-config apk application-settings