如何在Android中使用外部本机库

时间:2015-02-05 15:19:43

标签: android android-ndk

我正在尝试学习NDK,我想使用外部库(libopus)。在阅读了一些文章后,我得到了以下步骤:

git clone https://android.googlesource.com/platform/external/libopus
mv libopus jni
NDK_PROJECT_PATH=. ndk-build

它创建了libs/armeabi/libopus.so文件。好的,太棒了! ......现在呢?我该如何使用这个库?如何调用其功能和方法?

此外,我的应用程序将在非ARM体系结构(x86,MIPS)上运行,因为armeabi表明它只是ARM。

1 个答案:

答案 0 :(得分:1)

您不能只使用标准Linux库。 Java / Android使用Java Native Interface(JNI),它是特殊的C代码,用于构建Java部分和本机部分之间的桥梁。

看起来你已经安装了NDK。查看项目样本,例如“hello-jni”项目。在这个例子中,您可以看到您必须编写的JNI C代码以及如何从Java代码中访问自编写的函数。

关于体系结构:是的,ARM库仅适用于ARM平台。如果要创建跨平台应用程序,则必须为每个支持的平台(通常是ARM,ARMv7,x86和MIPS)编译所有本机库。