java - 安卓 Jni : Fastest way to pass a Map from Java to C++?

标签 java android c++ java-native-interface

我正在做的项目在它的 Java 部分有一个 map ,有时,这个 map 被它的 c++ 部分使用,现在的策略是将 map 编码成 Json 字符串并将它传递给 c++,然后解码它。但是 map 随着应用程序的运行而增长,使得编码和解码的成本越来越高,有没有更快的方法将整个 map 从Java传递到c++?

Java map本来就是一个JSON对象,也就是说里面只有字符串、数字、数组和map。

最佳答案

一种选择是将 Java 映射传递给 C,并让它对 Java 进行 JNI 调用以访问该对象。另一种方法是相反——将原始字符串传递给 C 并在那里解析它(这应该更快)并通过 JNI 在 Java 中访问它。只要您为第一个方法缓存了 Java 映射的方法 ID 和类对象,两者都不应该有显着的时间损失。

关于java - 安卓 Jni : Fastest way to pass a Map from Java to C++?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23487785/

相关文章:

java - 在从 json url 加载 listview 之前,在应用 getFilter() 时在 onQueryTextChange() 处给出错误

android - 字符串操作建议

Android 最佳实践 AsyncTask

c++ - C++0x 是否支持 std::wstring 与 UTF-8 字节序列的转换?

c++ - 无法使用 Boost.process

java - 无法在工具栏中的按钮上看到图像

Java 枚举和泛型

java - Android 许可证检查失败太多,我做错了什么吗?

android - kivy中的文件处理

c++ - 邪恶的 Actor 会被邪恶的编译器击败吗?