libyuv编译动态库

在android平台上对camera采集到的yuv数据进行旋转、缩放、转化等操作可以使用到google开源的libyuv开源库。


编译环境

  • Mac os
  • ndk-r21b

下载源码

前往google仓库下载yuv压缩包。
https://chromium.googlesource.com/external/libyuv/+/refs/heads/master

点击下载

修改Android.mk

  1. 将下载好的代码解压后,源码根目录重命名为jni
  2. 修改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

编译

  1. 在终端cd到源码jni目录
  2. 调用ndk-build工具直接
cd 你的jni目录
你使用的ndk目录/ndk-build

生成文件

可以看到在jni平级的目录生成了obj,libs目录,可以看到libs目录下生成了对应平台的.so文件

编译结果

你可能感兴趣的:(libyuv编译动态库)