我前几天问了这个问题,但没有太具体,所以我想再澄清一下。
我正在创建一个使用现有的C库并使用NDK的Android应用程序。我遇到的问题是C代码使用了很多Java不支持的东西(将函数指针作为参数是一个大问题)。
无论如何,我想知道是否可以编写在C代码中调用的Java代码。从我所了解的情况来看,似乎可以这样做,因此我希望没有人只回答“是的,你可以,链接。”我一直在研究它,但实际上需要做什么非常超出了我的理解范围。
有人能尝试解释一下这个过程吗?我知道它涉及在C代码中创建JVM;任何可以帮助新手入门的信息都将不胜感激。
谢谢
编辑:
所以,我不知道这三个步骤该怎么做。
To call a specific Java function from C, you need to do the following:
Obtain the class reference using the FindClass(,,) method.
Obtain the method IDs of the functions of the class that you want to call using the
GetStaticMethodID and GetMethodID function calls.
Call the functions using CallStaticVoidMethod, CallStaticIntMethod, and CallStaticObjectMethod.
这段文字并没有详细解释,而且我对C语言一无所知。FindClass是C语言中的一个方法吗?