我有一个包含我所有代码的Android应用程序项目。我已将此“app”定义为已定义here at android.developer.com.的图书馆项目。
因此,我制作了两个利用这个图书馆项目的新Android项目。每个新项目的新包名称为:
com.myapps.freeapp
com.myapps.paidapp
正如您可能看到的,我正在尝试发布该应用的免费和付费版本。
告诉图书馆项目安装的应用程序是免费版还是付费版的最佳方法是什么?
答案 0 :(得分:5)
这是来自我的blog post,它描述了如何使用库项目构建免费/付费版本。
一般来说,你会创建三个项目;一个免费项目,一个付费项目和一个图书馆项目。
然后,您将在库项目中创建一个Build.java文件,例如:
public class Build {
public final static int FREE = 1;
public final static int PAID = 2;
public static int getBuild(Context context){
return context.getResources().getInteger(R.integer.build);
}
}
现在,您将在每个项目中创建一个build.xml资源:
[文库] /resources/values/build.xml:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<integer name="build">0</integer>
</resources>
[自由] /resources/values/build.xml:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<integer name="build">1</integer>
</resources>
[付费] /resources/values/build.xml:
<?xml version="1.0" encoding="UTF-8"?>
<resources>
<integer name="build">2</integer>
</resources>
然后,您将能够在运行时检查版本:
if (Build.getBuild(context) == Build.FREE){
// Do the free stuff
} else {
// Do the paid stuff
}
blog post详细说明了在Linux命令行中从头开始创建项目所需的确切步骤。
答案 1 :(得分:0)
“付费”和“免费”信息取决于每个应用程序 - 并且库不知道此类信息。
如果您有一些特定的代码依赖于那些应用程序(例如,检查许可证的代码),它应该在特定的应用程序中,而不是在通用的部分中两者。