在Eclipse中切换Android应用的试用版和专业版构建:如何使其更加顺畅?

14
我有一个Android应用程序,分为试用版和付费的“专业”版两种形式。这两个版本在Android市场上共存,并具有不同的包名称(称它们为com.app.trial和com.app.pro)。它们共享相同的代码库。每次在Eclipse中切换试用版和专业版时,我都需要花费至少20分钟来编辑代码以构建正确的版本。我的过程如下:
1. 在AndroidManifest.xml中重命名包名称(还要重命名应用程序versionName和versionCode)。 2. 单击主包名称“com.app.pro”(如果pro是最新版本,现在我想制作试用版),然后选择Refactor->Rename(选中“Update references”和“Rename subpackages”),让Eclipse完成重命名。 3. 然后来到困难的部分:在我的代码中,许多文件仍然导入“旧”的包名称“com.app.pro”,而不是自动更改为“com.app.trial”。在某些情况下,Eclipse会在重命名过程中添加这些引用,原因不明(给定Java文件中没有对这个特定包的引用)。我必须手动编辑所有实例。
我的问题是:
如何使这个过程更少耗时?我也一直在使用NetBeans,它有一个很方便的# ifdef支持(也称为Abilities),可以轻松地在构建之间切换。不幸的是,Eclipse没有支持(至少没有内置的支持)# ifdef。
任何建议都将不胜感激。
注:我使用的是Eclipse Ganymede版本3.4.2,但也尝试了更新的版本,它的情况相同。

我在另一个帖子中发布了一步一步的答案:维护应用程序的免费和专业版本 - ProgMasta
1个回答

22
一个很好的解决方案是将您的应用程序拆分成三个项目:
  • 一个库项目,包含所有通用代码
    • 实际上,创建一个应用程序的两个版本(精简版和付费版)是本页讨论的一个常见情况;-)
  • 一个试用版项目,
  • 以及一个专业版项目。
每个试用版和专业版将会:
  • 引用库项目(包含几乎所有代码)
  • 定义特定于试用版或专业版的内容(如清单、一些字符串、一些附加代码等)
因此,构建试用版或专业版就像构建一个项目或另一个项目一样简单:无需更改任何内容!
以下是一些可能有帮助的链接:

这是一个选项,但我正在寻求建议,如何使Eclipse在重构时重命名导入语句。这就是我期望发生的事情,但没有成功。 - antonio
一旦库项目设置完成,每次想要构建应用程序项目时就不需要重构任何内容--最坏的情况是,在设置库项目时可能需要进行一些搜索和替换 (所以,只有一点点痛苦--也许需要半个小时,最多) ;但是,在此之后,只需构建引用库的每个项目即可;-) (我正在为自己的一个项目做这个,效果非常好:构建每个应用程序项目只需要点击几下,而且我不必重命名任何东西) - Pascal MARTIN

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接