在Eclipse中切换试用和亲构buildandroid应用程序:如何使它不那么痛苦?

我有一个Android应用程序,它有两种forms:试用版和付费“专业版”。 这两个版本在Android Market中共存,并且有不同的软件包名称(我们称之为com.app.trial和com.app.pro)。 他们共享相同的代码库。 当我不得不在Eclispe的试用版和专业版之间切换时,每次编辑代码时都要花费不less于20分钟的时间,以便构build正确的版本。 我的过程如下所示:

  1. 在AndroidManifest.xml中重命名包名称(也重命名应用程序versionName和versionCode)。

  2. 点击主包名称“com.app.pro”(如果pro是最新版本,现在我想做一个试用版本)并selectRefactor-> Rename(勾选'Update references'和'Rename subpackages')并让Eclipse做重命名。

  3. 在这之后,困难的部分是:在我的代码中,许多文件仍然导入“旧”包名称“com.app.pro”而不是自动更改为“com.app.trial”。 在某些情况下,Eclipse会在重命名期间添加这些引用,原因不明(在给定的Java文件中没有引用此特定的包)。 我必须手动编辑所有的实例。

我的问题是:

我如何使这个程序更省时间? 我也一直在使用NetBeans,其中有一个方便的支持#ifdefs(又名Abilities),真正使构build之间的切换变得轻而易举。 不幸的是,Eclipse对#ifdefs没有支持(至less没有内置的支持)。

任何build议将不胜感激。

PS为了参考我使用Eclipse Ganymede版本3.4.2,但也尝试了一个较新的版本,它也是一样的。

Solutions Collecting From Web of "在Eclipse中切换试用和亲构buildandroid应用程序:如何使它不那么痛苦?"

一个很好的解决scheme是将应用程序分成三个项目:

  • 一个库项目 ,将包含所有的通用代码
    • 实际上,创build一个应用程序的两个版本(Lite和Pay)是这个页面正在讨论的常见场景之一;-)
  • 一个试用版的项目,
  • 和专业版的一个项目。

每个试用版和专业版都将:

  • 参考库项目(包含几乎所有的代码)
  • 定义试用版或专业版的具体内容(如清单,一些string,一些附加代码,…)

因此,构build试用版或专业版就像构build一个项目一样简单,或者不需要改变任何东西!

有几个链接可能有帮助:

  • 如何:Android – 完整版和精简版版本
  • 如何自动化精简版和高级版的Android版本?