在AndroidStudio上新建一个项目
我的AndroidStudio是3.6的,可能你们的创建过程和我的不一样,但我建议更新到3.6,AndroidStudio3.6开发NDK特别高效.
直接点击Finish
如果你们出现和我下面一样的错误
这里说的是没有指定NDK的根目录,在你已经下载ndk的情况下,你可以点击project struct ->在如下选择ndk的路径
如果你没有下载过ndk,那么你可以根据我下方博客进行搭建
Android JNI学习01-AndroidStudio3.6搭建JNI环境
NDK配置好后,目录结构如下,就说明ok了
将ffmpeg中编译好的include目录复制到AndroidStudio里
include目录里是ffmpeg函数的头文件
告知Cmake include的位置
在AndroidStudio中,C/C++项目的构建是靠cmake进行的,ffmpeg也是c项目,所以它的构建,也需要靠cmake,在构建时,cmake需要知道ffmpeg的头文件在什么位置。通过如下的方式可以告诉它头文件的位置.
include_directories(include)
Cmake会以CmakeList.txt所在的目录为当前目录查找include的目录
打开CMakeList.txt,在里面输入如下
将ffmpeg中编译好的lib文件夹拷贝到AndroidStudio中
虽然拷贝到AndroidStudio中了,但是Cmake还不知道,这时同样也需要配置,通过如下告知Cmake lib的路径
set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -L${CMAKE_SOURCE_DIR}/lib")
生成指定的CPU指令集
cpu的型号有很多,像arm,x86等等,你的源代码到底要生成哪种cpu的指令集,需要告诉cmake,由于手机的cpu基本都是arm,所以我们可以让cmake,只生成arm 的指令集
abiFilters就是指定要生成哪种型号的cpu指令集,armeabi-v7a是arm处理器中的一种型号而已,比如说还有armeabi-v5a等,只不过这些型号都有点老了,我们可以不用考虑。
以上做完,初始环境就算完了。接下来就开始写测试代码吧
打开native-lib.cpp,在里面编写红色部分
开始运行吧,出现如下效果,说明ffmpeg集成成功,能够正常调用它提供的函数了。