Eclipse构建Android应用程序:如何在编译时创建两个版本/版本?

我正在编写一个Android应用程序,并希望基于相同的代码创建两个版本 – 免费版和高级版。 我有两个版本的代码库,具有各种运行时检查,以启用或禁用某些function,例如

public class MyAppContext extends Application { public static final boolean isPremium = true; } // later, in another file.... if (!MyAppContext.isPremium) { CoolFeatures.setVisibility(View.GONE); } 

我正在使用最新的开发工具(Eclipse Indigo和Google的ADT 16)。 现在我遵循一个相当麻烦的过程,在我的源文件中将isPremium设置为true,将应用程序导出到APK,然后将其设置为false并将其第二次导出到另一个APK。 这既烦人又容易出错。

有没有办法自动化这个过程? 那是,

1)创建两个不同的构建配置,以便在导出我的应用程序时生成两个APK文件。

2)构建配置是否在编译时影响代码 – 例如,将静态布尔值设置为true或false。

谢谢!

获取项目并将其更改为库项目。 然后创建两个应用程序(免费,高级)并导入库。 然后,您可以inheritanceMyAppContext对象并根据需要更改isPremium成员,也可以使用其他setPremium()函数。

注意,在清单XML中,您必须为每个活动,服务等使用库项目的包名称。

为什么不用ant自动化构建。 您可以使用具有不同参数的相同目标(例如,您将在java代码中读取的属性文件的路径)。 您需要确保两个apks的名称当然不同,但这是大多数连续构建工具针对不同环境执行的方法,这基本上是相同的。