My *_*God 7 android app-config application-settings apk google-play
阅读这篇文章,想到了同样的问题 - 一个代码库,两个Android应用程序
我已经创建了一个应用程序testApp具有相似的项目topics,splash screens,logos,charts,rules,statuses和/或events.
现在,我想不同的应用程序(testApp_USA,testApp_Canada,testApp_Australia从相同的代码库),并把它们在谷歌Play商店,这样,如果用户下载的应用程序,比方说,testApp_USA,那么只有特定的项目该区域应该显示像美国的闪屏,美国标志等.
所以我想根据国家/地区配置多个应用程序,然后根据用户下载的应用程序将项目设置为默认值.
目前,我有一个适用于所有地区的单一申请,并且我根据地区强加了多个条件来区分或更改项目.
例如:
(在许多Java文件中,我使用过)
if(rule.contains("USA"))
{
//Show splash screen of USA
}
Run Code Online (Sandbox Code Playgroud)
(同样,在许多Java文件中,我使用过)
if(rule.contains("Australia"))
{
//Show splash screen of Australia
}
Run Code Online (Sandbox Code Playgroud)
这只是整个代码中重复的一项内容.考虑到所有,它会更多.
应该有更好的方法在Android中使用不同的名称和设置创建多个应用程序.
我知道,iOS允许我轻松更改应用程序名称和配置文件以允许创建多个应用程序.但我不知道或者这对Android代码不容易.
我的问题:
是否可以使用不同的项目设置在Android中创建具有相同源代码的不同应用程序并将其发布到Google Play商店?如果是,如何设置此类配置?
更新:
阅读本文 - 多个android-application-package-apk-files-from-single-source-code
然后我提出了同样的想法 -
1)获取一些字符串变量,该变量包含您要创建的应用程序类型的值.
public static final String app_Name = "testApp_CANADA" ;
Run Code Online (Sandbox Code Playgroud)
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" ;
Run Code Online (Sandbox Code Playgroud)
要么
更清楚,
如何AndroidManifest.xml根据app_Name的值调用特定的?
使用我当前的设置,AndroidManifest.xml始终只调用第一个.
Ale*_*nov 11
将项目投放到不同的市场 - Google Play,三星,亚马逊,我遇到了类似的问题.所有代码库都是相同的,仅在计费代码中有所不同.
我找到的最佳解决方案是为每个市场创建单独的项目,并将公共代码推送到库项目中.
更详细地说,您需要在主项目中保留公共代码,使其成为库项目并为库和子项目启用清单合并.将以下行添加到主项目的project.properties:
android.library=true
manifestmerger.enabled=true
Run Code Online (Sandbox Code Playgroud)
这对每个子项目的project.properties:
android.library.reference.1=../testApp //absolute or relative path to your main project
manifestmerger.enabled=true
Run Code Online (Sandbox Code Playgroud)
您还需要将主项目作为ADT插件中的库(在Eclipse中 - 项目属性 - > Android)附加到所有子项目.主项目清单不应包含任何启动器活动,它将被忽略,与appWidget xml和配置活动相同,如果你有一些.
在子项目中,您可以通过扩展或仅使用所需的类作为普通Java库来配置您想要的任何内容并使用主代码.此外,您可以像在子项目中一样使用主项目活动,服务,广播接收器等,而不会重复显示子项目.完成所有配置之后,您可以像往常一样为所需的国家/地区构建所需的项目,您可以根据需要为不同的国家/地区设置不同的apk.
以下是清单合并的详细说明http://www.platoevolved.com/blog/programming/android/merging-android-manifest-files/
请注意,此功能已在ADT版本20预览3中添加.
希望这可以帮助.
| 归档时间: |
|
| 查看次数: |
10798 次 |
| 最近记录: |