如何管理Android项目的免费和付费版本?

时间:2014-02-17 13:03:28

标签: android android-sqlite android-preferences

我决定构建我的免费Android应用程序的付费版本。 付费版本有一些额外的功能。如何管理这两个版本?

  • 是否可以根据相同的源代码保留它们?
  • 如果应用程序需要唯一的软件包名称,如何强制付费应用程序替换免费版本?
  • 如果在不将所有数据暴露给世界其他地方的情况下共享数据库,首选项和其他私有存储的东西呢?

任何有助于管理这两个项目的建议, 但不能直接回答上述问题,也不胜感激。

2 个答案:

答案 0 :(得分:12)

有几种方法:

  1. 将您应用的核心放入库项目中,并创建另外两个项目,一个用于付费,另一个用于免费版本的应用。升级到付费版本意味着用户必须卸载免费版本,并丢失所有数据 这是“经典”方法。
  2. 让用户进行应用内付款。用户保留所有数据库和设置,您只需维护一个应用程序 此选项需要在您的应用中包含额外的模块和额外的逻辑。
  3. 制作另一个虚拟/空应用,这是一个付费应用。此应用程序的存在意味着用户具有付费版本。用户继续使用原始/免费应用程序 您只需使用PackageManager进行检查即可查看付费应用是否已下载 用户保留所有数据库和设置,您只需维护一个应用程序。好的,有两个应用程序,但第二个可以非常小而简单 您不必包含其他库/代码即可进行应用内付款。您也可以通过一次购买将所有应用升级到“专业版” 我不知道所有用户是否都理解这种模式。对于开发人员来说,这可以通过最少的工作来实现,并且用户在升级时保留所有设置。

答案 1 :(得分:1)

我认为可以并且推荐将它们保存在同一来源中    码。否则你必须支持两个版本的应用程序而不是    只有一个。

如果您只有一个应用程序,那么您只有一个包名称。

创建一个类,负责当前许可状态(免费或付费)的应用功能可用性。此类应存储有关许可证状态的信息(免费,付费,您可能希望将来添加订阅模式,其中付费版本可能会在一段时间后过期)。您的应用程序的功能仅在付费版本中可用,请检查当前许可证状态。您还可以根据许可证状态更改应用程序GUI。例如,隐藏付费功能的GUI,显示“购买”按钮或广告等

此外,如果您只有一个可以免费或付费的应用,则无需在付费和免费版本之间共享任何内部应用数据。