前言
在学习ijkplayer的过程中,如果能够动态调试,无疑将助力不少。本文将介绍一种Windows系统下使用Android Studio进行ijkplayer源码调试的方法,该方法亦可调试ffmpeg的代码。
思路
Android Studio提供了LLDB调试native代码的工具,需要两个条件:
- 可以找到源码路径
- 带符号表的so文件
本方法主要通过达到上述两个条件以达到调试的目的。编译过程在linux上进行,并在windows上利用编译产物。
具体步骤如下:
具体步骤
Step1 下载源码
在windows上下载ijk依赖的其他代码。
ijkplayer提供了linux下载依赖源码的shell脚本,这里参考shell脚本编写了windows上的bat批处理文件,以实现在windows上下载依赖源码的目的。直接在命令行窗口执行init_android.bat即可;
Step2 将源码添加到Android Studio工程
在Android Studio中打开ijkplayer工程,目录pathtoijkplayer\android\ijkplayer
在ijkplayer-example中增加ndk编译支持,以达到添加native代码的目的
1) 修改ijkplayer-example/build.gradle
android {
defaultConfig {
# 在defaultConfig闭包下添加ndk配置
ndk {
# 其他可能的参数
abiFilters "armeabi-v7a", "arm64-v8a"
}
}
# 在android闭包下添加externalNativeBuild配置
externalNativeBuild {
cmake {
path 'src/main/cpp/CMakeLists.txt'
}
}
}
- 新建文件 ijkplayer-example/src/main/cpp/CMakeLists.txt
以下cmake文件新增了一个动态库ijkplayer-cmake,并使用cmake中的include_directories
将ffmpeg和ijkplayer的代码加入当前工程。
cmake_minimum_required(VERSION 3.4.1)
project("ijkplayer-cmake")
set(src_files main.cpp)