将Java算法转换为NDK以保护它有什么影响?该Java算法将数据作为输入并输出处理后的数据。而已。它不会以任何方式与UI交互。
谢谢。
答案 0 :(得分:0)
不同之处在于Java代码被编译为字节代码,然后在JVM上运行,而C / C ++代码则编译为机器代码。由于安全原因,我认为将Java代码转换为C / C ++是不合理的,主要是因为使用C / C ++编写的代码要快得多。
答案 1 :(得分:0)
据我所知,防止反编译是使用NDK以及提高性能的主要原因之一,如Andrej所述。谈到你的问题:
1)您必须确保为所有五个支持的ABI编译您的本机代码,即x86
,x86_64
,armeabi
,armeabi-v7a
和{{1 }}。
2)没有什么是100%无法反编译的,但是你的本机代码被成功反编译的可能性比反编译java字节码要低得多。
3)您不必自己编写C或C ++代码。但是,包含要向Java公开的API的标头可以由arm64-v8a
生成。
Android Studio可以很容易地编写小型本机库并将它们集成到现有项目中,您只需要非常基本的CMake知识。