android – 具有相同代码库的不同名称的多个应用程序

前端之家收集整理的这篇文章主要介绍了android – 具有相同代码库的不同名称的多个应用程序前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
阅读这篇文章,认为有同样的问题 – One code base,two applications on Android

我创建了一个应用程序testApp,它包含主题,初始屏幕,徽标,图表,规则,状态和/或事件等项目.

现在,我需要来自相同代码库的不同应用程序(testApp_USA,testApp_Canada,testApp_Australia)并将它们放在Google Play商店中,以便在用户下载应用程序(例如testApp_USA)时,只应显示该区域的特定项目,如splash屏幕美国,美国标志等.

所以我想根据国家/地区配置多个应用程序,然后根据用户下载的应用程序将项目设置为默认值.

目前,我有一个适用于所有地区的单一申请,我正在施加多个条件来根据地区区分或更改项目.

例如:

(在许多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商店?如果是,如何设置此类配置?

更新:

阅读此帖 – multiple-android-application-package-apk-files-from-single-source-code

然后我提出了同样的想法 –

1)获取一些字符串变量,该变量包含您要创建的应用程序类型的值.

public static final String app_Name = "testApp_CANADA" ;

2)为您需要创建.apk的多个应用程序提供多个AndroidManifest.xml文件.

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.

解决方法

将项目投放到不同的市场我有类似的问题 – 谷歌播放,三星,亚马逊.所有代码库都是相同的,仅在计费代码中有所不同.

我找到的最佳解决方案是为每个市场创建单独的项目,并将公共代码推送到库项目中.

更详细地说,您需要在主项目中保留公共代码,使其成为库项目并为库和子项目启用清单合并.
将以下行添加到主项目的project.properties:

android.library=true
manifestmerger.enabled=true

以及每个子项目的project.properties:

android.library.reference.1=../testApp //absolute or relative path to your main project
manifestmerger.enabled=true

此外,您需要将主项目作为ADT插件中的库(在Eclipse中 – 项目属性 – > Android)附加到所有子项目.
主项目清单不应包含任何启动器活动,它将被忽略,与appWidget xml和配置活动相同,如果你有一些.

在子项目中,您可以通过扩展或仅使用所需的类作为普通Java库来配置您想要的任何内容并使用主代码.此外,您可以像在子项目中一样使用主项目活动,服务,广播接收器等,而不会重复显示子项目.
完成所有配置后,您可以像往常一样为所需的国家/地区构建所需的项目,您可以根据需要为不同的国家/地区设置不同的apk.

这里是清单合并http://www.platoevolved.com/blog/programming/android/merging-android-manifest-files/的更详细说明

请注意,此功能已在ADT版本20预览3中添加.

希望这可以帮助.

猜你在找的Android相关文章