瑞芯微Rockchip开发者社区
直播中

贾熹

7年用户 1633经验值
私信 关注
[经验]

在Framework下调用第三方的C++算法库

Platform: RK3399
OS: Android 7.1
Kernel: v4.4.83

背景:

现在在Framework层及以下经常会调用到第三方的C++算法库,比如语音识别,人脸识别等等。

例如我这里是JNI调用一个语音处理库,这些库厂商会以非开源的so库文件形式提供。

JNI在编译时需要依赖它,所以需要先预编译安装第三方库。

解决方法:

在同一个Android.mk中编写就行:

LOCAL_PATH:= $(call my-dir)
/此段是预编译第三方库部分/
include $(CLEAR_VARS)
LOCAL_MODULE := libaspmodule
LOCAL_MODULE_TAGS := optional
LOCAL_SRC_FILES := libaspmodule.so
LOCAL_MODULE_STEM :=$(LOCAL_MODULE)
LOCAL_MODULE_SUFFIX := (suffix (LOCAL_SRC_FILES))
LOCAL_MODULE_CLASS := SHARED_LIBRARIES
include $(BUILD_PREBUILT)

/此段是调用前面第三方库编译JNI生成so部分/
include $(CLEAR_VARS)
LOCAL_C_INCLUDES:= external/tinyalsa/include
LOCAL_SRC_FILES:= com_ecovacs_lib_digmic_DigMic.c
LOCAL_MODULE := libdigmic
LOCAL_SHARED_LIBRARIES:= libcutils libutils libtinyalsa libaspmodule
LOCAL_MODULE_TAGS := optional
include $(BUILD_SHARED_LIBRARY)

原作者:KrisFei

更多回帖

发帖
×
20
完善资料,
赚取积分