使用android ndk从.so文件调用本机函数

时间:2014-11-26 11:33:46

标签: android android-ndk

我找到了如何使用NDK在Android中链接和使用c / c ++代码的说明。但我正在寻找来自第三方的呼叫功能.so。

3 个答案:

答案 0 :(得分:0)

例如,您的预建库名为“libmy.so”

在项目的项目文件夹中,您要使用它:

1)在jni文件夹(jni/libmy

中创建libmy文件夹

2)复制libmy.so这里

然后,只需创建一个jni/libmy/Android.mk文件:

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)
LOCAL_MODULE := libmy
LOCAL_SRC_FILES := libmy.so
include $(PREBUILT_SHARED_LIBRARY)

现在在你的jni / Android.mk中你可以写:

LOCAL_SHARED_LIBRARIES := libmy

然后当你进行ndk-build时,它会将这个库复制到libs / armeabi /

之后,您可以在C ++代码中使用此库。

答案 1 :(得分:0)

你只需将.so放在你的libs / armeabi-v7a文件夹中(或者你编译的其他任何架构,比如armeabi,x86等),Eclipse会自动看到它并将其集成到APK中。< / p>

然后,要在Java代码中访问.so中的任何本机函数,您只需将其声明为类顶部的本机函数。例如

protected static native void AKUAppInitialize();

然后可以在代码中的任何地方调用,如

AKUAppInitialize();

答案 2 :(得分:0)

如果您有源代码,则必须配置NDK部件:查看this tutorial