检查许可证的频率如何?

Rog*_*ger 2 android

没有其他活动(act2),我的主要活动基本没用.可以从主活动中的按钮访问act2.它也可以通过主屏幕小部件获得,当点击它时调用我的主要活动并立即调用act2.

现在,我已将其设置为在调用处理按钮单击的功能时随时检查许可证.这包括主活动中的按钮按下以及来自小部件的按钮.

我的问题是,这经常是这样吗?例如,获取缓存响应是否比检查变量更耗尽?

我已经尝试将它放在onCreate上但是当它说它没有许可时,你可以关闭应用程序并再次打开它,它将不会再次运行onCreate.

dav*_*ino 7

在这里,我假设您已阅读所有许可文档,并且您正在使用SDK.你没有说什么,所以我要去"默认".Android开发人员博客以及互联网上都有一些线索.

去年我问自己同样的问题.或至少类似的东西.让我们一步一步走:

我的问题是,这经常是这样吗?例如,获取缓存响应是否比检查变量更耗尽?

我会说,差别将是"不易察觉"到"不多".首先,有效时间戳(VT来自附加的字段)存储在本地,正确加密/混淆.我假设你正在使用这个ServerManagedPolicy政策,因为你什么也没说.

根据应用程序的类型,我们应该注意到您甚至可能在onPause上写东西,例如(如果适用,检查更改,当然).所以,我不担心.

但因为没有可察觉的伤害并不意味着你应该做点什么.这就是为什么我不同意Kerin发布的内容:

我相信你会停止大量的盗版活动而且你根本不会浪费你的时间.

稍后会详细介绍.现在我说你不需要做很多检查.这就是政策的用途.他们处理它可能比你和我更好.别的什么都是浪费.就个人而言,我只会onCreate(明显地)进行检查,而且还会在很少使用的情况下进行检查(但对应用程序的实用性非常重要).

然而,你应该做什么,我说因为没有人在这里说过,是正确的混淆和改变LVL库,以及你自己的代码方(checkerCallbacks).在这里,我在LVL库上改变了很多东西,包括一些简单的单密钥加密(弱),还改变了接口的实现方式,以及如何传递参数,等等.基本上,我在SO上发布了这个问题后创建了自己的LVL.

与您正在进行的操作相反,我还对VT字段进行了自定义,以便为缓存响应的有效性设置最短时间.这就是为什么我的应用程序将在野外使用,其中网络访问并不总是可用.这些微妙的细节取决于您的应用程序,它的作用,它是如何做的,人们会在哪里使用它们.

如果您是开发人员,很容易忘记用户.没有什么比合法用户被拒绝访问他购买的应用程序更糟糕的了.到目前为止,我没有遇到任何问题(我查看使用情况统计数据并与我的帐户进行比较),但我认为游戏有更多麻烦(这是该领域的典型问题).

所以,回到我的建设性(请,我们都试图在这里学习,包括我自己)批评克林的帖子,我会说甚至LVL本身还不足以"阻止大量盗版".

如果您对Android的工作方式有所了解,您就会知道apks可以很容易地解密为源代码,只需使用dex2jarjdgui(谷歌他们).事实上,我总是在发布之前解密我的应用程序,以检查一切是否正常运行.并考虑到我从未做过计算机大学,我刚刚学习java和Android来创建我自己的应用程序,我需要并且不适用于Android(我的国家的潮流应用程序).我确信黑客和技术人员更聪明,可以做得更多.

人们开始认为LVL会阻止盗版,然后学习丑陋的真相并感到失望.这不是LVL的用途.只需查看代码......就可以避免"自动化"盗版.它是强迫某人亲自查看代码,看看它是如何工作的,然后"切换"正确的标志,如果他能理解它们.但话说回来,如果你使用proguard,它将使任务变得可怕,详尽(相信我,这就是为什么我自己使用dex2jar + jdgui).

如果您的应用程序以1美元甚至5美元或更高的价格出售,那么这将使这个问题变得不值得.这是我对LVL的立场.显然,如果你有一个价格为100美元的小众应用程序,你可能可以使用公钥在服务器端正确完成.但我觉得这不是这种情况.

无论如何,只是我的2美分.