Android 在C或C+中创建react本机模块+;使用安卓NDK?

Android 在C或C+中创建react本机模块+;使用安卓NDK?,android,android-ndk,react-native,Android,Android Ndk,React Native,必须创建一个java本地接口(JNI),以便从Android原生本地模块访问C或C++代码?p> 我的目标是在C++ NealStutix:Stime原生模块中使用普通C和C++算法(非UI),支持 < Android和iOS。从目标C*M模块调用C,或者从目标C++ +MM模块调用C++是很简单的。但是,Android的react nativenative模块用java实现了native模块代码 Android NDK允许您在C或C++中编写Android代码。Android NDK可以

必须创建一个java本地接口(JNI),以便从Android原生本地模块访问C或C++代码?p> 我的目标是在C++ NealStutix:Stime<强>原生模块中使用普通C和C++算法(非UI),支持<强> < <强> Android和iOS。从目标C*M模块调用C,或者从目标C++ +MM模块调用C++是很简单的。但是,Android的react nativenative模块用java实现了native模块代码

Android NDK允许您在C或C++中编写Android代码。Android NDK可以很好地使用。我不明白如何在避免JavaJNI的同时,跨越javascript来响应本机模块


提前感谢您提供的任何提示或指导,如果您愿意做一些额外的工作,您可以使用

该项目为Objective-C和Java生成接口绑定。一旦你为C++创建了包装代码,你就可以创建与本地反应集成的java和Objtovi-C类。因此,反应将调用Obj-C/java,它将调用C++。利润


看到这对您来说是如何工作将是很酷的,我还没有看到任何人这样做。

我最近不得不在React原生项目上这样做,如果不使用JNI,我无法找到解决方法。要做到这一点,您必须为JS到Java桥编写代码,然后为Java到C(通过JNI)桥编写更多代码,然后返回到JS

如果您只传递原语,那么JNI就可以很容易地处理类型转换,例如C中的Java int到jint(这是一个int typedef),但是如果您传递复杂的数据类型,那么您必须编写代码,通过告诉JNI您的类有哪些字段以及这些字段是什么类型来获得JNI jobject的C结构。我发现编写实用函数更容易做到这一点。这需要很多初始设置和枯燥的代码,但一旦你开始使用并习惯了,就没有那么难了。JNI规范非常适合参考,它只是没有告诉您应该如何使用它


我有一个使用JNI传递一些示例类的工具。这解释了JNI的所有设置步骤,如果您已经熟悉了这些步骤,那么在“真实世界JNI”部分将详细介绍这些步骤。如果你对此有任何疑问,请告诉我

< P> >您可以使用Djinni,甚至有一个响应本地的< /P>“Djinni是一种生成跨语言类型声明和接口绑定的工具。它的设计是用C++或java或Objto-C连接C++”-谢谢@ MigNoMcter!我能用C库使用DGNI吗?还是只支持C++?我正在努力实现类似的目标。。我使用JUCE C++库,并让iOS工作得很好,反应了本土化。@ Adamski嘿,我会看看这个博客,如果你还在寻找:@ pTrac谢谢!请张贴作为答案,我会很高兴地接受它!