从Android Java调用本机函数 - JNI的替代品
Calling native functions from Android Java - alternative to JNI
这可能是
一个非常新手的问题,但我正在编写一个需要使用C++编写的.so库的Android应用程序。.so 由几个类组成,并且是通用C++,而不是 JNI。
除了JNI之外,有没有办法从Android Java应用程序调用C++函数?我所看到的关于 JNI 的所有内容都表明您必须重写本机代码以特定于 JNI,如果您只得到一个 .so,那真的很不方便。
在 Android 4.0.3 中,有哪些替代方法可以从 Java 应用程序调用本机函数?编写一个小型 JNI-C++ 程序来调用C++函数,然后可以从 Java 调用,这有多简单?
Eclipse 中有什么可以简化这个过程的吗?
我可能不应该对没有更优雅的解决方案感到惊讶。
我不相信有比您建议的为库编写 JNI 包装器更优雅的解决方案了。无论如何,这可能不是一个好主意,因为您应该为要支持的每个体系结构编译所有本机代码的单独版本。仅仅附加到编译库意味着你被它的架构所束缚。
这不是特定于Android的,但你应该看看Java Native Access(JNA)。它允许您使用 libffi 访问本机代码(不使用 JNI)。
相关文章:
- 通过JNI传递数据数组的最快方法是什么
- C++中原子的替代品<variant>
- 为 NewObjectA() 函数创建 jvalues 的参数数组时出错 - JNI Invocation API
- 将 C# DLL 导入 C++ 以用于 JNI
- 用C++包装 Java 库 (JNI)
- C++sscanf_s的替代品
- 如何通过 JNI 将 C 字符串表情符号传递给 Java
- JNI从Android调用C++方法
- JVM 如何执行 JNI
- React Native (Android):无法通过 JNI 在 jobject 中返回字符串
- getline的替代品
- 什么是 std::function::argument_type 的替代品?
- 如何将字符串数组返回到 java JNI
- JNI 日期值转换问题,在C++中获取不同的长整型值
- JNI,使用两个 .so 文件时出错,其中一个文件需要另一个文件
- Winapi - SetWindowLongPtr in ShutdownBlockReason创建/销毁JNI本机代码
- 将预编译的 C 共享库与 JNI/NDK 结合使用
- JNI 在应用程序中检测到错误:在为 innerclass 调用 NewObject 时使用了无效的 jobject
- 使用 jni 将返回带有模板的对象的 Java 代码转换为 c++
- 从Android Java调用本机函数 - JNI的替代品