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