我有一个 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(又名 Abilities)提供了方便的支持,这确实使构建之间的切换变得轻而易举。不幸的是,Eclipse 不支持(至少没有内置支持)#ifdefs。
如有任何建议,我们将不胜感激。
附言作为引用,我使用的是 Eclipse Ganymede 版本 3.4.2,但也尝试了更新的版本,它的作用相同。
最佳答案
一个很好的解决方案是将您的应用程序分成三个项目:
- 一个 library project , 将包含所有通用代码
- 实际上,为一个应用程序创建两个版本(精简版和付费版)是本页讨论的常见场景之一;-)
- 一个试用版项目,
- 和一个专业版项目。
每个试用版和专业版都将:
- 引用库项目(包含几乎所有代码)
- 定义特定于试用版或专业版的内容(例如 list 、一些字符串、一些附加代码......)
有了它,构建试用版或专业版就像构建一个或另一个项目一样简单:无需更改任何内容!
几个可能有帮助的链接:
关于android - 在 Eclipse : how to make it less painful? 中使用 Android 应用程序切换试用版和专业版,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5443970/