将算法从Java转换为NDK

时间:2018-05-17 19:42:29

标签: android android-ndk

将Java算法转换为NDK以保护它有什么影响?该Java算法将数据作为输入并输出处理后的数据。而已。它不会以任何方式与UI交互。

  1. 转换后的算法是否会导致部分Android设备出现兼容性问题?
  2. 由于算法转换为c ++,这是否意味着它无法反编译但只能被反汇编?
  3. 是否有任何工具可以让我在没有自己编写算法的情况下将此Java算法转换为NDK?
  4. 谢谢。

2 个答案:

答案 0 :(得分:0)

不同之处在于Java代码被编译为字节代码,然后在JVM上运行,而C / C ++代码则编译为机器代码。由于安全原因,我认为将Java代码转换为C / C ++是不合理的,主要是因为使用C / C ++编写的代码要快得多。

答案 1 :(得分:0)

据我所知,防止反编译是使用NDK以及提高性能的主要原因之一,如Andrej所述。谈到你的问题:

1)您必须确保为所有五个支持的ABI编译您的本机代码,即x86x86_64armeabiarmeabi-v7a和{{1 }}。

2)没有什么是100%无法反编译的,但是你的本机代码被成功反编译的可能性比反编译java字节码要低得多。

3)您不必自己编写C或C ++代码。但是,包含要向Java公开的API的标头可以由arm64-v8a生成。

Android Studio可以很容易地编写小型本机库并将它们集成到现有项目中,您只需要非常基本的CMake知识。