我有一个适用于 Android 的应用程序,它有两种形式:试用版和付费“专业版”。这两个版本在 Android Market 中并存,并且具有不同的包名称(我们称它们为 com.app.trial 和 com.app.pro)。它们共享相同的代码库。当我必须在 Eclispe 中的试用版和专业版之间切换时,我每次编辑代码都必须花费不少于 20 分钟以使其构建正确的版本。我的程序如下所示:
重命名 AndroidManifest.xml 中的包名称(也重命名应用程序版本名称和版本代码)。
单击主包名称“com.app.pro”(如果 pro 是最新构建,现在我想进行试用构建)并选择 Refactor->Rename(检查“更新引用”和“重命名子包”)并让 Eclipse进行重命名。
在这之后是困难的部分:在我的代码中,许多文件仍然导入“旧”包名称“com.app.pro”,而不是自动更改为“com.app.trial”。在某些情况下,Eclipse 在重命名期间添加了这些引用,原因不明(在给定的 Java 文件中没有对这个特定包的引用)。我必须手动编辑所有实例。
我的问题是:
如何减少此过程的耗时?我也一直在使用 NetBeans,其中有对#ifdefs(又名能力)的方便支持,这确实使构建之间的切换变得轻而易举。遗憾的是,Eclipse 不支持(至少没有内置支持)#ifdefs。
任何建议将不胜感激。
PS 作为参考,我使用的是 Eclipse Ganymede 版本 3.4.2,但也尝试了更新的版本,它也是如此。