我正在写一个android应用程序,我想基于同一代码创建两个版本——一个免费版本和一个高级版本。我有一个用于两个版本的代码库,带有各种运行时检查,以启用或禁用某些功能,例如。
public class MyAppContext extends Application
{
public static final boolean isPremium = true;
}
// later, in another file....
if (!MyAppContext.isPremium) {
CoolFeatures.setVisibility(View.GONE);
}
我正在使用最新的开发工具(EclipseIndigo和Google的ADT16)。现在,我在源文件中将ispremium设置为true,将应用程序导出到一个apk中,然后将其设置为false,并再次将其导出到另一个apk中,这是一个相当麻烦的过程。这既烦人又容易出错。
有办法使这个过程自动化吗?也就是说,
1)创建两个不同的构建配置,以便在导出应用程序时生成两个apk文件。
2)让构建配置在编译时影响代码——例如,将静态布尔值设置为true或false。
谢谢!
最佳答案
将您的项目更改为库项目。然后创建两个应用程序(免费、高级)并导入库。然后您可以继承MyAppContext
对象,并根据需要更改isPremium
成员,可以使用附加的setPremium()
函数。
注意,在清单XML中,必须为每个活动、服务等使用库项目的包名称。