vlc源码分析(一) vlc-android native调试配置

时间:2021-11-27 15:56:43

http://www.cnblogs.com/jiayayao/p/6770479.html

 

1, 按照官网给出的链接,git clone代码,配置好android sdk,ndk...后运行compile.sh;

2, 出现一个protobuf相关的问题(貌似要求protobuf3),自己去网站下载后安装,即可编译通过;

3, 还是找个能上外网的,或者能FQ的帐号吧,编译过程中会下载好多与google相关的软件,为了避免出现意想不到的错误,你懂的;

4, 配置vlc-android:点击Edit configurations->Debugger->Debugger type,选Hybrid(或者有的显示为Dual),Symbol Directories选择vlc-android/libvlc/jni/obj/local/armeabi-v7a/;

  前4步就可以断到native的地方了,但是makefile中有优化,不能正常debug,关掉优化有两个地方需要注意:

1, vlc目录下的contrib用的是第三方库,但是修改第三方库(如关闭live555的优化),android studio中的Build APK操作是不会重新编译live555,然后使用新版本的live555的,这里需要你手动make,并且手动将生成的.a文件拷贝到vlc-android/vlc/contrib/arm-linux-androideabi/lib/目录下,因为这个目录才是vlc-android拿出来编译libvlc.so文件时用到的;

2,  libvlc工程封装了vlc工程(compile.sh时下载的)为libvlc.so,vlc工程编译后生成的文件放在vlc-android/vlc/build-android-arm-linux-androideabi文件夹下,vlc-android这么做应该是为了源码的整洁考虑。当添加了vlc工程的关闭优化操作(--enable-debug, --disable-optim等等,自己看makefile),并重新运行Build APK(实际执行的是compile-libvlc.sh)后,发现vlc-android/vlc/build-android-arm-linux-androideabi文件夹下的makefile并没有生效(仍然是-O2),仔细阅读发现compile-libvlc.sh在configure vlc工程时,加了if判断。所以暂时把if判断去掉,执行Build APK后,再加上,因为不加上的话每次都会重新configure,make等,非常耗时。这样操作后,vlc-android/vlc/build-android-arm-linux-androideabi文件夹下的makefile已经变成O0了,这样就可以正常native调试了。