EasyPlayer支持x86和arm64 ABI
2017-08-15 23:29
323 查看
不久之前,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,比真机还快,这是一件很开心的事情,再也不用对爱机频繁插拔数据线了!!
但是这样的确会损害一些性能。。本着精益求精的态度,我们打算再支持一些主流的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,比真机还快,这是一件很开心的事情,再也不用对爱机频繁插拔数据线了!!
相关文章推荐
- ZBar 支持i386 armv6 armv7 armv7s x86_64 arm64
- iOS——制作同时支持armv7,armv7s,arm64,i386,x86的静态库
- 制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
- 编译ios平台的支持arm64和x86_64的通用openssl静态库
- IOS生成同时支持armv7,armv7s,i386 x86_64的静态库.a文件
- 【技术】【操作】制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
- Mac OS X10.10_xcode6.1_ios8.1环境下,编译lame静态库libmp3lame.a,支持arm64 armv7s x86_64 i386 armv7指令集
- iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
- iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86
- xcode6 编译支持 i386 x86_64 arm7 arm7v arm64版本opencore-amr库
- 制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
- iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
- Mac OS X10.10_xcode6.1_ios8.1环境下,编译lame静态库libmp3lame.a,支持arm64 armv7s x86_64 i386 armv7指令集
- Mac OS X10.10_xcode6.1_ios8.1环境下,编译lame静态库libmp3lame.a,支持arm64 armv7s x86_64 i386 armv7指令集
- iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
- ZBar 支持i386 armv6 armv7 armv7s x86_64 arm64
- ios 32/64位 lame静态库libmp3lame.a 编译,支持arm64 armv7s x86_64 i386 armv7
- iOS开发~制作同时支持armv7,armv7s,arm64,i386,x86_64的静态库.a
- IOS生成同时支持armv7,armv7s,i386,x86_64,arm64的静态库.a文件