2012-12-22 96 views
2

我将发布应用程序的多个版本至Android Market/Google Play Store。现在我正在研究这样做的最佳方式。图书馆发布免费和付费版本的方法

我在这里读了很多关于如何以最简单的方式实现这个问题的问题。 我不想创建应用程序版本特定的活动,因为这很容易导致不同版本之间的代码不一致。所以我想用library的方法。这也似乎是最简单的方法,而不是我见过的所有示例需要ANT脚本等

的巨额数量为了便于讨论,我将有:

  • com.app.library
  • com.app.free
  • com.app.paid
  • com.app.paidmore

我的想法是基本代码库中的Ø n包名称。 我的部分活动不会显示或仅根据包名禁用功能。 这种方法有什么缺点?我似乎无法找到任何,但我很好奇的意见。当然,所有的应用程序版本在某种意义上都包含了所有的功能,但是这些功能是通过代码实时禁用的。我认为修改代码以破解应用程序以获得完整功能将是很多工作,但是我是对的吗?

This方法似乎是错误的,因为它会很容易修改apk并以修改的方式分发它。

回答

0

这种方法的缺点是什么?

您的应用程序比需要的大(例如,付费功能驻留在免费用户的设备上)。而且,正如您注意到的那样,它将所有功能都放在用户的设备上。

我认为这将是很多工作来修改代码来破解应用程序以获得完整的功能,但我是对吗?

如果超过五分钟,脚本小子输入的速度太慢。反编译,搜索并替换你的软件包名称,重新编译。

这种方法似乎是错误的,因为修改apk并以修改的方式分发它会很容易。

这种方法实际上可能需要更多的时间 - 也许需要十分钟的时间 - 因为脚本小孩可能需要更长的时间才能确切了解哪些资源需要更改。

当然,脚本小子只需抓住你paidmore版本和攻击,所以实际上你freepaid应用程序碰巧有paidmore功能并不是太大的问题。所以,恕我直言,最大的区别是APK的大小,只有你会知道这些版本之间的差异以及它是否是一个问题。

+0

该死的,完全忽略了那个,傻!那么我想我会在每个版本中定义一个'private final String PACKAGE_NAME',并在应用程序执行任何操作之前将其与'PackageManager'找到的名称进行比较。至少会被ProGuard混淆,所以它会不那么容易。你还有其他建议吗?而apk的大小确实可能是一个问题,好点,但在我的情况下,它只会产生50千字节的差异 – slinden77

+0

@dmmh:“至少会被ProGuard混淆,因此会稍微简单一些” - 符号将是,但价值将不会。 “你还有其它的想法吗?” - 正如多次说过的那样,你的问题不会是盗版,而是晦涩难懂。首先担心其他问题,比如你将如何推销你的应用。 – CommonsWare

相关问题