【发布时间】:2012-07-24 16:50:51
【问题描述】:
我前几天问过这个问题,但不是太具体,所以我想重新澄清一下。
我正在使用 NDK 创建一个使用 C 中现有库的 Android 应用程序。我遇到的问题是C代码使用了很多java没有的东西(函数指针作为参数是个大问题)。
无论如何,我想知道是否可以在我的 Java 代码中编写 C 代码调用的函数。现在,据我所知,您可以做到,所以如果没有人回答“是的,您可以,LINK,我将不胜感激。” .
谁能解释一下这个过程?我知道这涉及在 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 方法吗?
【问题讨论】:
-
我知道你说你只是不想要一个链接,但这很容易解释:codeproject.com/Articles/22881/…。这绝对不是几行代码就能涵盖所有你需要知道的主题。
-
是的,我知道,感谢您的意见。
-
我开始查看您发送的内容,但仍有一些不确定。如果您有时间,请查看我编辑的内容,如果您能提供帮助,请告诉我。
-
我认为你不能直接在 Android 上创建虚拟机。它有自己的虚拟机,Android 平台控制它的调用方式。相反,我认为您希望 this method 从 C 中调用 Java 代码。
标签: android c android-ndk