使用Eclipse中的Android应用程序切换试用版和专业版:如何减轻它的痛苦?

ant*_*nio 14 eclipse android versions conditional-compilation building

我有一个Android应用程序,有两种形式:试用版和付费"专业版".这两个版本在Android Market中共存,并且具有不同的包名称(我们称之为com.app.trial和com.app.pro).它们共享相同的代码库.当我必须在Eclispe中的试用版和专业版之间切换时,每次编辑代码时我都要花费不少于20分钟来构建正确的版本.我的程序看起来像这样:

  1. 在AndroidManifest.xml中重命名包名称(也重命名app versionName和versionCode).

  2. 单击主程序包名称"com.app.pro"(如果pro是最新的构建,现在我想进行试验构建)并选择Refactor-> Rename(选中'Update references'和'Rename subpackages')并让Eclipse重命名.

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

我的问题是:

如何减少耗时?我也一直在使用NetBeans,它提供了对#ifdefs(aka Abilities)的方便支持,它真正使构建之间的切换变得轻而易举.遗憾的是,#ifdefs不支持Eclipse(至少没有内置支持).

任何建议将不胜感激.

PS作为参考,我使用的是Eclipse Ganymede 3.4.2版,但也尝试了更新的版本,它也是如此.

Pas*_*TIN 22

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

  • 一个库项目,将包含所有常用代码
    • 实际上,创建一个应用程序的两个版本(精简和付费)是这个页面正在谈论的常见场景之一;-)
  • 一个试用版项目,
  • 和专业版的一个项目.

每个试用版和专业版将:

  • 引用库项目(几乎包含所有代码)
  • 定义试用版或专业版的具体内容(如清单,一些字符串,一些其他代码,......)

有了它,构建试用版或专业版就像构建一个项目一样简单:或者不需要改变任何东西!


一些可能有用的链接: