Android

NDK开发之封装So调用第三方So

2017-07-24  本文已影响1023人  zac_ka

由于公司要使用第三方提供的一套算法,而算法工程师给了一个在Windows直接生成的so,及不符合Jni调用格式的.h接口文件。

坑!

于是自己写个so,通过C++实现调用算法的so

基本流程如下:

1、根据项目所需要使用的java函数通过javah生成函数格式正确的.h文件,注意包名与函数名的对应。

2、添加Android.mk文件 到对应的jni目录  ,mk文件用于生成对应的so库,并引用第三方的so。

#第三方so

LOCAL_PATH := $(call my-dir)

include $(CLEAR_VARS)

LOCAL_MODULE := PARAMAlgInterface

LOCAL_SRC_FILES := armeabi/libPARAMAlgInterface.so

include $(PREBUILT_SHARED_LIBRARY)

include $(CLEAR_VARS)

#供自己调用的so

LOCAL_MODULE := nativeTest

LOCAL_SRC_FILES := PpgJni.cpp

LOCAL_LDLIBS := -llog

LOCAL_SHARED_LIBRARIES :=libPARAMAlgInterface   #引用第三方so

include $(BUILD_SHARED_LIBRARY)

3、增加Application.mk配置生成环境

4、根据第三方的.h文件,在cpp文件里实现所需要调用的函数和返回结果,需要注意变量的使用防止内存泄漏

5、在jni目录路径使用命令行ndk-build生成自己的.so,并在build-gradle文件配置apk使用的jnilibs目录

上一篇 下一篇

猜你喜欢

热点阅读