Android和Eclipse 2个不同版本的相同应用
你好,我是一个开始使用Windows和Eclipse的IDE开发java android应用程序的开发android开发人员。我已经发布了一个游戏,但有一个免费版本的游戏和付费版本。 谷歌市场坚持认为不同的版本必须有不同的软件包名称。 到目前为止,我一直在用两个不同的名称重构包,并且每次构建不同的版本时都会更改R资源文件导入。 这两个版本的代码是99%相同的。是否有更好的方法?
你在这里和那里有关于这个话题的各种讨论,但基本上解决方案类似于复制项目。
例如(不基于日食):
这很难回答,因为我们不知道应用的免费和非免费版本之间有什么区别。
我会假设这种差异可以通过某种全球免费/非自由的国旗来解决。 我的意思是,相同的代码可以组成这两个版本的应用程序,并且启用或使用哪些部分将取决于某个公共静态数据成员:
if (SomeClass.IS_PAID_APP) {
// add more stuff to menu, etc.
}
如果你能以这种方式组织你的应用程序,那么你只需要一个代码库。
是否设置了构建您的应用程序的一种方式(免费或付费,您的选择)以及适用于该版本应用程序的清单中的适当软件包。
然后,添加一个执行以下操作的Ant任务:
如果Java有一个预处理器,这会更简单一些。 然而,我上面描述的基本技术已经使用了几十年了。 它笨重,但它可以工作,这意味着你只有一套源代码需要处理。 请注意,Ant <replace>
任务将很好地处理您的搜索和替换内容。
这是Android Market的失败之一,虽然我可以看出他们为什么这样做。 它只是没有为您的应用程序的免费和付费版本设计(他们声称24小时退货政策是这是什么,但这是用于盗版) - :
无论如何,最简单的事情就是编写一个Ant构建脚本(或者你使用的任何脚本语言)。 通过所有.xml和.java文件进行搜索替换您的软件包名称。 然后在那里做你的应用程序的构建。 重构你的代码比它值得恕我直言更痛苦...
链接地址: http://www.djcxy.com/p/975.html上一篇: Android & Eclipse 2 different versions of the same app
下一篇: What's the easiest way to sort an EF4 EntityCollection<T>?