首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >我需要保护我的Android应用程序不被复制吗?

我需要保护我的Android应用程序不被复制吗?
EN

Stack Overflow用户
提问于 2016-09-23 13:52:49
回答 3查看 1.5K关注 0票数 16

我是否需要保护我的Android应用程序(从Google Play Store下载)不被复制?我正在跟踪文档的链接,这些文档说的是相互矛盾的东西。

如果我使用谷歌Play开发人员控制台帮助搜索“应用程序加密”,它会显示'Google Play Licensing Service'网页,其结尾为:

请注意,从安卓操作系统的JellyBean版本开始,所有应用程序,无论是付费的还是免费的,默认情况下都是加密的,因此不需要任何额外的保护措施,以防止未经授权的复制,如谷歌许可服务器。

'Filters on Google Play'说:

Google Play不再支持开发者控制台中的版权保护功能...

并提供到“Replacement for Copy Protection”的链接。这链接到'Setting Up for Licensing',它链接到'Adding Licensing to Your App',它链接到'Market Licensing Support FAQ',显示'Google Play Licensing Service‘网页(上面的文本表明后果冻应用程序是加密的)。因此,除非我误解了它,否则这似乎自相矛盾。

从其他关于这个话题的帖子的发布日期来看,我猜我确实必须使用谷歌市场许可LVL (许可证验证库)来做我自己的应用程序保护。然而,有迹象表明这不是目前最好的解决方案(例如,市场许可示例应用程序似乎过时了,最近关于使用它的论坛帖子很少,我找不到使用它的udacity.com类)。所以我认为先得到一个明确的答案会有所帮助。

EN

回答 3

Stack Overflow用户

发布于 2016-09-23 15:06:23

首先,不可能100%地保护你的代码。但你可以让黑客的工作变得足够艰难。有一些技术可以用来保护你的代码protect android app。我建议您看看proguard工具。

ProGuard是一个免费的Java类文件收缩器、优化器、混淆器和预验器。它检测并删除未使用的类、字段、方法和属性。它优化了字节码,并删除了未使用的指令。它使用短而无意义的名称重命名其余的类、字段和方法。由此产生的应用程序和库更小、更快,并且针对反向工程进行了更好的加固。

票数 3
EN

Stack Overflow用户

发布于 2016-09-23 18:10:26

如果你的应用程序提供了一种服务,在线游戏(需要一个服务器),你可以通过一些注册/授权规则来保护你的服务。

或者,如果你的应用程序是一个工具,独立的游戏,它实际上很难保护。有一些网站提供允许用户直接从GooglePlay下载APK文件服务,且无需任何purchase......Anyone就可以通过仅允许从非GooglePlay源安装应用来安装这些APK。在这种情况下,你确实需要一些方法来保护你的应用程序不被复制。

票数 1
EN

Stack Overflow用户

发布于 2016-09-24 21:22:00

在考虑了对这篇文章的反馈后(谢谢),我相信答案是“不”,我不需要保护我的应用程序不被复制,因为可疑的好处不会证明努力是合理的(理由如下)。然而,这个答案是基于我目前正在开发的应用程序,并不适用于所有人。

该应用程序不依赖于服务器组件,因此将独立运行。也就是说,如果有人得到了它的盗版拷贝,他们将能够运行它。然而,这款应用的价格将会很低。因此,如果有人复制了一份拷贝并开始非法销售,他们将需要出售大量拷贝才能赚钱,并证明自己的努力和风险是合理的。他们也可能会选择赠送一份盗版应用程序,但我猜大多数盗版版本的用户一开始就不会为此付费。

如果我集成了Google Market Licensing,这将使盗版应用程序变得困难。然而,只要付出足够的努力,它就可以被反向工程为源代码(即使我使用Proguard),LVL功能可以被消除,应用程序可以重新构建。此外,LVL集成是一项重要的工作(至少对我而言),它可能会在应用程序中引入bug,我不确定它是否是一个好的解决方案(市场许可示例应用程序似乎过时了,最近关于使用它的论坛帖子很少,...)。因此,我不认为付出的努力和风险是值得的。

如果这款应用的售价很高,我的答案可能会有所不同,我会考虑其他选择。例如,Google Market Licensing可以集成,但这不会完全消除盗版风险,除非Android提供安全的应用程序加密。App encryption对我来说似乎是一个巨大的挑战(例如,考虑到它需要在某个时候被解密才能运行),这可能解释了为什么后果冻应用加密被移除(如果它被移除的话)。我还可以将功能转移到服务器端--这对我来说似乎是最安全的策略,尽管它的开发成本很高,并且需要继续管理和维护服务器端。

这很可能是我没有考虑到的一些方面。如果你不同意我的回答,或者有其他想法,请发表评论。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39653477

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档