5

目前我是 android 开发的新手。我需要开发一个安全的 android 应用程序,这样我就可以从 getteg 盗版中保存它。

为了应用程序的安全性,我在 J2ME 中使用了 RMS。在 J2ME 中,我使用执行以下步骤:

  1. 生成一个序列号(一些随机数)
  2. 将该号码保存在 rms 中,下次启动应用程序时在屏幕上显示相同的序列号并要求用户输入有效的激活码,然后如果用户输入正确的激活码,则应用程序激活并将标志设置为 true,我将此标志值保存在其他有效值
  3. 如果标志值为真,则在再次启动应用程序时向用户显示主屏幕,否则显示激活页面。

我想在 android 中实现这个概念。请指导我如何去做。或者告诉我是否有人知道在 android 中执行此操作的更好方法。

其次,我想在发布应用程序之前对 apk 文件进行混淆。经过 2 天的观察,我发现可以使用 proguard 完成。但我不知道如何混淆代码。请指导并帮助我对这两个问题进行排序。

谢谢

4

3 回答 3

4

没有办法保护任何类型的客户端代码,无论是 Android *.apk、Java *.jar 文件还是在用户浏览器中运行的一些 JavaScript 代码。保护自己免受盗版侵害的最佳方法是使应用程序依赖于您提供的某些服务器端计算。

由于您使用的是 RMS,听起来您已经需要服务器端计算。与其麻烦用户输入激活码,不如在用户购买应用程序时将此激活码与用户的电子邮件地址相关联,然后使用 OAuth 和他们的 Google 帐户来验证用户是否拥有已知购买该应用程序的电子邮件地址?

于 2011-09-05T07:43:08.510 回答
3
  • 关于 RMS

Michael Aaron Safyan 什么都说了,没什么可补充的。

  • 关于 ProGuard

ProGuard 现在已集成到 Android 框架中,并且基本上不需要设置任何工作。您只需按照本文中的说明启用它,并在需要时自定义其配置。“如果需要”,因为默认配置适用于大多数项目。如果作为大多数包、类和方法的反射将被混淆过程重命名,你只需要小心使用。

于 2011-09-05T08:04:17.610 回答
0

与 Android 中的 RMS 类似的是 SharedPreferences。但是,sharedPreferences xml 文件不像 J2ME 中的 RMS 文件那样受到保护(至少在某些设备中)。任何拥有根设备的人都可以轻松读取和写入此文件...

因此,我建议您阅读有关 Android 的应用程序许可的信息。它远非完美,但它是您可以轻松集成的内置功能。 http://developer.android.com/guide/publishing/licensing.html

编辑: 混淆:要混淆您的项目,您所要做的就是添加proguard.config=proguard.cfg到您的default.properties文件中。

混淆将根据默认 proguard.cfg 文件中所述的配置进行。请注意,只有在构建最终 APK(Android 工具 -> 导出 ...)时,您的代码才会被混淆,我建议在混淆后测试最终 APK,尤其是当 3rd 方库是构建过程的一部分时

于 2011-09-05T07:47:08.220 回答