是否可以在SO库中公开C API以访问Android JAVA方法



我是JAVA/Android开发的新手。我想抽象Android JAVA BLE接口,并将C/C++中的更高级别的API提供给不同的团队,这些团队使用javascript编写代码,并且能够调用C/C++库方法。他们正在为不同的平台开发Firefox构建,Android是我们现在正在研究的。

是否可以在本机代码(*.so 库(中公开可用于访问 JAVA 方法的 C/C++ 接口?

我已经熟悉本机代码概念,并且更多地从JAVA调用它。也可以通过查找类和方法 ID 从 C/C++ 调用 JAVA 代码,但我无法理解是否可以从加载 *.so 库的外部代码调用这些 C/C++ 函数?

Java 代码是否还需要与 *.so 库一起交付,以便它可以实际调用 JAVA 方法,或者 JAVA 代码是否也内置到 *.so 文件中?

我认为原则上是可能的,但它会是这样的:

Android应用程序具有运行JavaScript代码的JavaScript引擎,JavaScript代码调用"本机"方法,引擎调用C代码(或者它可能更糟并调用Java代码,而Java代码又调用C代码(,C代码调用Java代码。

我不明白为什么你可以在这里需要额外的步骤,当你可以直接:JavaScript引擎调用Java代码。

最新更新