Pitel
Pitel

Reputation: 5393

How to use external native library in Android

I am trying to learn NDK, and I'd like to use external library (libopus). After reading some articles, I got these steps:

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

It crated libs/armeabi/libopus.so file. Yay, awesome! ... And now what? How can I use this library? How can I call its functions and methods?

Also, will my app run on non-ARM architectures (x86, MIPS), because armeabi suggests it'll be ARM only.

Upvotes: 0

Views: 929

Answers (1)

Robert
Robert

Reputation: 42575

You can not just use standard Linux libraries. Java/Android uses the Java Native Interface (JNI) which is special C code that builds the bridge between Java part and native part.

It looks like you already have NDK installed. Look into the project samples, e.g. the "hello-jni" project. In this example you can see what JNI C code you have to write and how to access the self written functions from within your Java code.

Regarding the architectures: Yes, an ARM library is for the ARM platform only. If you want to create a cross-platform App you have to compile all native libraries for each supported platform (usually ARM, ARMv7, x86 and MIPS).

Upvotes: 1

Related Questions