您可以使用图书馆项目来做到这一点。基本上,您将采用您的主项目,该项目将采用所有代码并将其转换为库。创建两个新项目,免费版和付费版。
在此处阅读如何设置库项目。
您必须确保免费和付费项目具有不同的包名称,并且在您的库项目中,您阅读包名称并验证您运行的是免费版本还是付费版本。
在这里你可以看到我发布的一个工作示例。整个资源都在图书馆项目上,其他的只使用不同的资源。
查看PackageSelector 类。它展示了如何检测正在运行的版本,然后相应地更改应用程序很简单。
public class PackageSelector extends Application {
public int getVersion() {
if (getPackageName().toLowerCase().contains("pro"))
return LanguagePickActivity.FULL;
else if (getPackageName().toLowerCase().contains("macedonian"))
return LanguagePickActivity.MACEDONIAN;
else if (getPackageName().toLowerCase().contains("german"))
return LanguagePickActivity.GERMAN;
else // if (getPackageName().toLowerCase().contains("spanish"))
return LanguagePickActivity.SPANISH;
}
}
关于你的活动:
public void getVersion() {
Country = ((PackageSelector)getApplication()).getVersion();
}
当您有与单个版本相关的内容时:
if (Country == LanguagePickActivity.FULL ) {
//Do something only the paid version has
finish();
}
else {
//Do something on the free version
finish();
}