libyuv编译动态库
2021-03-16 本文已影响0人
yin_xin
在android平台上对camera采集到的yuv数据进行旋转、缩放、转化等操作可以使用到google开源的libyuv开源库。
编译环境
- Mac os
- ndk-r21b
下载源码
前往google仓库下载yuv压缩包。
https://chromium.googlesource.com/external/libyuv/+/refs/heads/master
修改Android.mk
- 将下载好的代码解压后,源码根目录重命名为
jni
- 修改
Android.mk
文件,找到下面相关部分
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
#修改输出库文件名字
LOCAL_MODULE := libyuv_static
LOCAL_MODULE_TAGS := optional
#修改生成库文件类型
include $(BUILD_STATIC_LIBRARY)
修改后
LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include
LOCAL_C_INCLUDES += $(LOCAL_PATH)/include
#生成so的名字为libyuv_test
LOCAL_MODULE := libyuv_test
LOCAL_MODULE_TAGS := optional
#生成动态库
include $(BUILD_SHARED_LIBRARY)
修改Application.mk
该文件如果没有需要自己创建。
Application.mk
APP_ABI := armeabi-v7a arm64-v8a x86 x86_64
APP_PLATFORM := android-11
编译
- 在终端cd到源码
jni
目录 - 调用ndk-build工具直接
cd 你的jni目录
你使用的ndk目录/ndk-build
生成文件
可以看到在jni
平级的目录生成了obj
,libs
目录,可以看到libs目录下生成了对应平台的.so文件