【问题标题】:Securing a class file in Android Project在 Android 项目中保护类文件
【发布时间】:2016-01-20 00:47:42
【问题描述】:

请帮助我提供一种方法,通过该方法我可以在 Android Studio 中向其他开发人员隐藏类文件的代码。其他开发人员可以访问这些函数,但他们无法看到该类中的代码。

这个想法来自iOS,使用一个编译好的静态库。 iOS 使用预编译的静态库,开发者只能使用该库访问函数并获取返回值。

NDK 静态库参考链接:Use of prebuild static Library compiled with Android Toolchain

我不想使用 Android NDK 来执行此操作,我确信 Android SDK 能够自行执行此操作。

使用 jar 文件可以是一个选项,但 jar 不能隐藏代码。类文件很容易被反编译,代码会暴露给大家。

【问题讨论】:

  • 为什么要对其他开发者隐藏代码?
  • 静态库或类将包含不能提供给第三方开发人员的函数/算法。

标签: java android c++ jar android-ndk


【解决方案1】:

obfuscation tools for android 的列表很长,以 ProGuard 开头,它是 SDK 的一部分。

不过,这些都无法达到通过使用带有 NDK 的本机库获得的保护级别。但即使是后者也不能完全免受拆卸和逆向工程的影响。它不能替代专利和版权等法律保护。

【讨论】:

  • 那么,我只剩下一个选项“NDK”了吗?
  • 问题在于平衡你付出的努力与预期损失的代价。
  • 谢谢。您能否建议我使用 NDK 制作静态库(.so)的任何教程、库以将其与我的 Android 项目一起使用。任何输入都会有所帮助。
  • 你可以先接受我的回答;)然后去ftp.fixme.ch/free_for_all/Ebook/IT%20eBooks/…
  • 任何教程或任何共享库示例都会对我有很大帮助。无论如何,谢谢亚历克斯。
【解决方案2】:

真正完全隐藏它的唯一方法是将代码托管在 Web 服务中。这可能比学习 NDK 编码更容易,尽管它显然还有其他缺点。

【讨论】:

  • 我必须在前端本身执行此操作,因为 iOS 应用程序能够使用静态共享库执行此操作。服务器对两个平台都是通用的。
  • 另一个优点是精心设计的库可以编写一次并编译为适用于 iOS 和 Android 的静态库,分别在 JNI 和 Objective-C 包装器中隔离所有特定于平台的细节
猜你喜欢
  • 2012-01-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多