我有一个包含我所有代码的 Android 应用程序项目。我已经将此“应用程序”作为在 android.developer.com 上定义的库项目。.
因此,我制作了两个利用这个库项目的新 Android 项目。每个新项目的新包名称为:
com.myapps.freeapp
com.myapps.paidapp
正如您可能看到的,我正在尝试发布该应用程序的免费和付费版本。
告诉库项目安装的应用程序是免费版还是付费版的最佳方法是什么?
我有一个包含我所有代码的 Android 应用程序项目。我已经将此“应用程序”作为在 android.developer.com 上定义的库项目。.
因此,我制作了两个利用这个库项目的新 Android 项目。每个新项目的新包名称为:
com.myapps.freeapp
com.myapps.paidapp
正如您可能看到的,我正在尝试发布该应用程序的免费和付费版本。
告诉库项目安装的应用程序是免费版还是付费版的最佳方法是什么?
这来自我的博客文章,描述了如何使用库项目构建免费/付费版本。
通常,您将创建三个项目;免费项目、付费项目和图书馆项目。
然后,您将在库项目中创建一个 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
}
该博客文章详细介绍了在 Linux 命令行中从头开始创建项目所需的确切步骤。
“付费”和“免费”信息取决于每个应用程序——图书馆不知道这些信息。
如果您有一些依赖于这些应用程序的特定代码(例如,检查许可证的代码),它应该在特定应用程序中,而不是在两者共有的部分中。