8

我在我的 Android 手机上安装了几个免费应用程序,然后“升级”到付费完整版。我这样做的第一直觉是创建两个具有相同包名称的应用程序,以便安装一个覆盖另一个,但市场中的应用程序必须是包名称唯一的。

共享同一应用程序的免费和付费版本的代码和资源的一些模式和最佳实践以及适用于这种情况的任何命名约定或项目结构是什么?

4

2 回答 2

6

在 Google 推出对许可应用程序的支持之前,这是我们为 MixZing 应用程序所做的(请注意,这假定服务器来执行许可,但如果您愿意损失大量收入,这不是流程的必要部分盗版):

  1. 创建人们购买的“升级”应用程序只是为了获得升级许可证。它没有任何功能,只是启动您的免费应用程序的主要活动(可选择附加一个指示它是从升级应用程序启动的)。

  2. 一旦看到升级应用程序已安装,让您的免费应用程序提示用户输入升级许可证密钥。许可证密钥是 Google Checkout 订单号。

  3. 当用户输入许可证时,让您的服务器验证许可证。您可以使用 Checkout API 来执行此操作。

一些注意事项和注意事项:

  • 由于市场的 24 小时取消政策,您必须准备好在他们第一次输入许可证时接受许可证(当然假设当时它是有效的订单号),然后如果他们取消,则将用户重置为免费版本。

  • 您需要跟踪许可证并确保人们不会共享它们。

  • 我承认在客户端和服务器上跟踪所有这些,让状态机正确等等,比我们最初想象的要多。

  • 我们给用户三天的宽限期来输入他们的许可证密钥,在此期间他们可以使用高级功能。

  • 由于我们将许可证与设备 ID 绑定在一起,因此当人们更换手机、刷入更改设备 ID 的 ROM 等时转移许可证会涉及相当多的支持。当然,您不必每次都制作许可证设备,并且当我们完成这项工作时,拥有一个转移许可证的自助服务选项将节省大量工作。

总而言之,如果 Google 能够支持许可应用程序并将开发人员和用户从所有这些麻烦中解脱出来,那将是非常好的!

于 2010-05-17T18:53:16.123 回答
-2

每个应用程序必须具有不同的包名称,否则将被视为“升级”。市场对这条规则非常黑白分明(我发现很难)。

就我自己而言,我喜欢在市场上看到一款免费形式的应用程序,它始终可用且始终免费。它可能缺少应用程序付费版本中提供的一些功能,一旦我熟悉了免费应用程序,我可能会很乐意下载付费应用程序。

于 2010-05-17T16:48:54.590 回答