0

我正在我的 android 应用程序中导入一个基于 c++ 的项目(或库)。我为此使用了 NDK。我成功地将 c++ 嵌入到 java 中。现在我需要在 c++ 和 java 之间传递值。任何人都可以建议如何从 c++ 处理的项目访问信息(文本、图像或视频)到我的 android 项目。期待简单的教程..

4

1 回答 1

0

您可以使用 JNI 访问从 android 到 c++ 的文本(字符串)、数组、整数数据。

例如。安卓功能:

public native setString(String arg);

上面的字符串 arg 可以在 c/c++ 代码中使用 JNI 访问,如下所示:

C函数:

char *str = (*env)->GetStringUTFChars(env, arg, 0);

C++ 函数不将 env 作为参数传递。

类似地,可以使用 JNI 的jobject类在 c/c++ 中访问来自 Android 的其他元素。

但是,要从 c/c++ 访问 android 变量,您需要将控制从 c/c++ 函数返回给 android,或者您可以从 c/c++ 函数调用 android 函数,您可以在其中设置 android 函数的值。这个例子你可以在下面的链接中找到:

通过 JNI 从本机代码访问 java 变量,给出垃圾值

使用图片数据的好例子可以从android-ndk示例程序(示例程序中的plasma app)中获得。

于 2013-08-13T09:46:27.620 回答