我正在尝试学习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。
答案 0 :(得分:1)
您不能只使用标准Linux库。 Java / Android使用Java Native Interface(JNI),它是特殊的C代码,用于构建Java部分和本机部分之间的桥梁。
看起来你已经安装了NDK。查看项目样本,例如“hello-jni”项目。在这个例子中,您可以看到您必须编写的JNI C代码以及如何从Java代码中访问自编写的函数。
关于体系结构:是的,ARM库仅适用于ARM平台。如果要创建跨平台应用程序,则必须为每个支持的平台(通常是ARM,ARMv7,x86和MIPS)编译所有本机库。