不久之前,EasyPlayer仅支持armeabi-v7a版本的abi——怎么说呢——通常可以满足需求了。因为安卓对于ABI的支持是做了兼容的,非arm架构的,可以通过某种方法兼容ARM架构的动态库。
但是这样的确会损害一些性能。。本着精益求精的态度,我们打算再支持一些主流的CPU架构,典型的就是arm64和x86了。
主要涉及到下面一些库的修改:
- libEasyRTSPClient
- libAudioCodecer
- libVideoCodecer
由于后两者同时用到了ffmpeg,因此再引入了ffmpeg动态库
- libproffmpeg
底层那套东西就是做了一些交叉编译的体力劳动,因为一些大的开源工程不能简单用NDK里典型的编译方式来编译——需要自己编译交叉编译链(standalone toolchain,具体方法可参考:
https://developer.android.com/ndk/guides/standalone_toolchain.html) 并进行交叉编译。
上层的改动主要是,将一些int型转成long型。其原因可在这篇博客中得知:
http://blog.csdn.net/jyt0551/article/details/53575515
因此编译ok后,额外增加了几个动态库文件,这样会导致程序体积倍增,但在没有GooglePlay的我朝,遇到这种事情也没什么好办法。。
除此之外,程序倒是没有遇到什么异常。
另外支持了x86后,在模拟器上debug,比真机还快,这是一件很开心的事情,再也不用对爱机频繁插拔数据线了!!