fin*_*oop 9 android amazon android-manifest
我最近开始在Google Android Market上销售我的Android应用程序,并实施了他们的应用程序许可方案,以防止未经授权使用我的应用程序.我现在正计划在亚马逊Android App Store上发布它,并希望了解维护我的应用程序的两个版本的最佳方式:一个实现Android许可,另一个不实现.
虽然我目前的解决方案有效,但它不是最优的,我试图找出其他人处理这个问题的方法.现在,我为我的应用程序SplashGoogle.java和SplashAmazon.java实现了两个启动画面.我有两个相应的Manifest文件,GoogleManifest.xml和AmazonManifest.xml.每个清单都定义了一个不同的启动作为启动器意图.
当我想要发布我的应用程序版本时,我将其中一个清单文件重命名为AndroidManifest.xml,导出应用程序,然后对其他Manifest执行相同操作.这是我的解决方案,因为它是我能想到的最好的,并且不知道其他方法可以做到这一点.它起作用是因为我的应用程序的亚马逊和谷歌市场版本之间的唯一区别是相应的启动类,一个用于检查许可,另一个用于检查许可.
在路上,我可能要实现更多的改变(或合并到只有一个闪屏),并正在寻找管理同一应用程序中的微妙变化的一个更永久的手段.
我想,当开发人员创建精简,免费或广告支持的付费应用程序版本时,类似的问题就出现了.
补充说明:
我不确定这是否应该被视为社区维基,但如果是这样,请将其标记为反对关闭问题.我相信这对很多开发人员都有用.
我首先将现有的代码库重构为 Android 库项目。这很容易做到。请务必阅读本文。文档非常稀疏,但我能够让它工作。请务必严格遵循“在清单文件中声明库组件”部分。
因此,要重构为库,您基本上将现有项目标记为库项目。您只需在项目设置中勾选一个框(请参阅链接)。
现在转到库,我们想要将包名称更改为不同的名称。例如,如果您发布的版本包是 com.mywebsite.myappname.android_market 那么我会将其重命名为 com.mywebsite.myappname.common_code
您可以右键单击项目并选择Android Tools->Rename application package。这一半对我有用。我还必须手动将代码中的所有引用重命名为我的 R 类。您可以使用全局搜索替换将 com.mywebsite.myappname.android_market.R 重命名为 com.mywebsite.myappname.common_code.R
现在您的图书馆已准备就绪
现在是时候制作您将构建的实际项目了。
创建一个新的 android 项目,并使用 android market 的包名称进行命名,例如 com.mywebsite.myappname.android_market。按照链接上的说明将新的公共库添加为该包使用的库。
Android 库项目的一个限制是库的清单不会合并到顶级项目的清单中。您需要手动将其粘贴到那里。另外(请参阅链接)您需要确保清单中的所有内容都使用完全限定的包名称。因此,如果您曾经使用诸如 android:name=".SplashScreenActivity" 之类的活动名称,请将其更改为 android:name="com.mywebsite.myappname.common_code.SplashScreenActivity"
因此,您再次需要手动合并所有内容,包括权限、意图、活动等。
现在只要构建顶级项目就可以了。为您想要构建的每个变体制作一个包装器。
您还可以让这些新的顶级项目实现不同版本之间不同的任何内容。因此,您的 Android Market 包装器可以实现一个启动屏幕,而您的 Amazon 版本则可以实现一个不同的启动屏幕。或者,您可以在公共项目中使用枚举来驱动它,并将两个启动屏幕保留在那里。
另一个不错的功能是,顶级项目中的资源将覆盖库中的资源(如果提供)。因此,如果您想在您的启动画面上拥有一个亚马逊版本徽标和一个根据版本而变化的 Android 市场徽标,只需使用与公共资源相同的图像名称,并在两个版本中放置不同的副本。
| 归档时间: |
|
| 查看次数: |
764 次 |
| 最近记录: |