我现在正在编写我今年早些时候编写的旧 c/c++ 代码的 JNI 版本,以包含在我的 android 应用程序中。我写了一个桌面应用程序,相当于我用 Java 和 C++ 编写的,性能差异很突出,因此我想利用 ndk。
我对 JNI 非常陌生,而且我理解事物的方式,似乎我必须做一些类型映射;jdouble
替换double
,jint
替换int
,等等。问题是,我已经尝试过不改变运行一些旧代码,而且效果很好!我什至包含了一些 STL 库(list
和vector
),我没有遇到任何问题。我刚刚包含APP_STL := stlport_static
在 Android.mk 文件中。
所以我的问题是:这样做有性能损失吗?还有其他我应该注意的风险吗?在我的 jni 中使用 C/C++ 原始类型有什么缺点?我可以让代码运行得更快,还是我不应该打扰?
谢谢,
纳克斯