2012年Android平台为何诞生不了像iOS上那样牛逼的视频播放器?是
问题描述如下:
实测对比:
一部Kindle fire,双核处理器,用rockplayer或者mobo这样的第三方播放器软解播放720p的Rmvb,依然会跳帧、掉帧、卡顿。
而放到iPhone 4上,单核处理器,用AVPlayer、Rushplayer等播放,几乎不会卡。
关于Android上的第三方影音播放器:有人曾经这样说过:“java编出来的播放器,怎么可能把效果发挥到极限”;“体积极大,清晰度低、java没有内存操作模块、没有指针”;“没内存操作函数模块,速度就不可能快起来”;“java为了安全牺牲了速度了”;“同等配置下,Java写的播放器性能永远比不上C++ ”
这确实是由于Java自身的限制造成的吗?
参考答案如下:
实际上刚好相反
在ANDROID平台上,软件开发可以涉及到内核层面(如果有能力的话),就像是MXPLAYER有针对不同的处理器制定的解码包一样。只有到达了内核层面才能针对硬件做最大程度的解码优化。不过现阶段由于ANDROID软件平台问题(软件基本上赚不到钱),导致ANDROID平台上大部分软件都没有深挖设备的硬件性能,不过在现在ANDROID设备这么强大的硬件配置下,大部分软件都是可以实现1080P的完美播放的
但是在IOS平台上,由于苹果APP STORE对于软件的限制,通过公有API制作的软件不可能实现内核层级的解码,avplayer,rushplayer这些软件要不然就是自己写了一个苹果IOS SDK之上的解码库,要不然直接套用的FFMEPG,只不过优化做的程度不同而已
不过这里要提到的是,在越狱之后,由于IOS平台不再存在任何限制,所以软件作者可以通过编程硬件解码包来实现更加强力的解码,也就是发挥出处理器的完全能力,著名的IOS越狱后播放器XMBC就做到了,现在测试结论是在IPAD2的机能下,XMBC可以完美播放码率为35794KBPS的EDEN_ED.M2TS文件。也就是说如果苹果提供硬件解码编写权限,IOS设备基本上可以解析蓝光级别的高清视频
最后提一下ANDROID软件制作的问题
实际上ANDROID软件并不是完全使用JAVA制作的,现在有大量的软件出于性能考虑都在使用NDK来调用C++或者C代码来代理执行软件的核心内容(《某ANDROID开发人员所言,我自己的ANDROID软件都是纯JAVA开发),不过在ANDROID 3.2之后哦,谷歌处于对平台统一支持的考虑开始削减NDK的使用,这也是很多老软件在ANDROID 4上不能直接运行的原因
参考答案如下:
看见你的问题真的觉得莫名其妙
- Kindle Fire的CPU很一般 没由iPad强 而且Apple的很多东西有特别优化 不是所有的双核都NB
- iPhone4和iPad都用的A4 用AVPlayer播放720P的RMVB卡疯了 不知道你的4为啥那么NB
- Android 的NDK是可以用C++做底层的 如果做播放器 解码什么的估计都是用NDK 只有播放器界面用了JAVA
查看评论 回复
"2012年Android平台为何诞生不了像iOS上那样牛逼的视频播放器?是"的相关文章
- 上一篇:应聘java程序员
- 下一篇:Java霸榜最佳编程语言:Android真放弃?