2011-09-05 32 views
5

目前我是一个Android开发新手..我需要开发一个安全的android应用程序,以便我可以从getteg盗版保存它。Android代码混淆和安全的android应用程序从盗版

对于应用程序的安全性我已经在J2ME.In J2ME使用RMS我用它来执行以下步骤:

  1. 生成一个序列号(一些随机数)
  2. 保存在RMS这个数字,旁边启动应用程序的屏幕上显示 相同的序列号,并且如果用户输入正确的激活代码要求用户输入有效的激活 代码然后再应用 激活和标志被设置为真,我保存在其他 均方根该标志值
  3. 如果标志值为真,则主屏幕显示给用户, 再次启动应用程序,否则显示激活页面。

我想在android ..中实现这个概念。请指导我如何做到这一点。或告诉我,如果任何机构知道一些更好的方式来做到这一点在android中。

其次我想在发布应用程序之前对apk文件进行混淆处理。使用goggling 2天后,我发现它可以使用proguard完成。但是我没有弄清楚如何混淆代码。请指导并帮助我整理这两个问题。

感谢

回答

4

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

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

+0

但为了做到这一点,我将需要一个web服务来验证安装 – Hisenberg

+0

@Shrey,是的,这是正确的。 –

+1

有没有办法开发应用程序的安全性,而不使用服务器端? – Hisenberg

0

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

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

编辑: 混淆: 混淆你的项目的所有您需要做的就是增加proguard.config=proguard.cfgdefault.properties文件。

根据defult proguard.cfg文件中所述的配置进行混淆处理。 请注意,只有当您构建最终APK时,您的代码才会被混淆(Android Tools - > Export ...),我建议模糊处理后测试最终APK,特别是当第三方库的构建过程

+0

你能解释一下如何使用Shared优先 ? – Hisenberg

+0

http://developer.android.com/guide/topics/data/data-storage.html#pref – IncrediApp

+0

我们不能使用sqlite在android中作为rms工作吗? – Hisenberg

3
  • 关于RMS

迈克尔·亚伦Safyan所说的一切,没有什么要补充的一部分。

  • 关于ProGuard的

的ProGuard现在被集成到Android框架,基本上不需要工作得以成立。你只需要启用它as explained in this article,并在需要时自定义其配置。 “如果需要”,因为默认配置适用于大多数项目。如果作为大多数包,类和方法的反射将被混淆处理重命名,则只需要小心使用。