AM电脑吧 - Win10精简版系统_Win11精简版_Win7旗舰版

Yes
查看: 3206|回复: 0
收起左侧

[旧闻] Intel手机的兼容性为啥那么差?

[复制链接]
ampc8927

签到: Lazy

id 迷离的诱惑 发表于 2015-05-13 06:04:26
x86架构的手机同ARM架构的手机相比,的确是存在兼容性的问题。虽然相比于几年前x86架构的手机来说,现在这方面已经有了很大的改善,不过兼容性依然是x86架构的手机最大的软肋,比如很多大型游戏,采用Intel处理器的手机运行起来都会存在一些问题。
其实究其原因,兼容性问题主要是因为指令集的不同。x86使用的是SSE指令集,ARM使用的则是NEON指令集,两者的差异导致了部分应用不兼容。
大部分Android应用都使用基于Dalvik Java的代码开发。理论上,由于Dalvik代码在系统的虚拟机中执行,在x86的ATOM平台上不会有性能损失。
其实支持Dalvik的程序还是占大多数的,但因为虚拟机性能有限,在需要更高的性能或者需要硬件的支持的时候,仍然会有一些应用绕过Dalvik,比如一些对硬件性能有较高要求的大型游戏,以及一些结合了感应器或者电源管理等硬件相关的应用。
谷歌允许开发者使用原生的C语言代码,而原生代码是针对硬件平台编译,x86、ARM或是MIPS都有其相应的二进制文件。通常来说,针对ARM平台编译的二进制代码,x86的处理器是无法直接运行的,而主流的安卓产品均采用ARM处理器。这也是早期大部分赛车游戏都无法在Intel处理器的手机上完美运行的原因。
尽管很早之前,Google的Android NDK就引入了x86编译的选项,理论上来说,开发者只需在应用中支持这个NDK,应用在提交时会自动生成2个App,设备在下载时会根据自己的架构下载合适的App。
这种方法并不难,效果也最好,难的是如何让众多开发商甘愿合作,所以我们看到,即便Intel处理器的手机已经推出几年了,但至今还是有相当一部分应用只针对ARM平台进行了编译,这也就导致了如今x86架构安卓平台的兼容性依然存在问题。
说到这儿,可能有些朋友会表示怀疑,说曾经看到过Intel处理器的手机玩3D赛车游戏,这又如何解释呢?其实很好理解,正是因为兼容问题严重,Intel急于找出一个解决方案,所以他们开发了一种转换技术“Houdini”。
“Houdini”相当于一个中间层,可以让原本不兼容的应用跑在x86上,但这种强行结合的技术运行起来往往效率不高,容易出问题,且会增加耗电量。
此前曾有媒体对这种转换技术的效率进行过详细的测试,结论是二进制转换相比原生执行x86代码,损失的性能很可观,在需要高性能的应用中可高达50%以上。在一些游戏类应用中,也会带来约400mW的CPU功耗的增加。
可见即便过了这么多年,x86的Android之路还是很漫长,恐怕最重要的还是因为此前Intel固执地玩高端,导致x86架构的手机市场占有率过低。好在目前来看,已经出现了千元级Intel处理器的手机,随着市场占有率的增加,相信x86架构的Android系统会更大的引起开发者的注意,这样也能够调动开发者的积极性。
不管怎么说,Intel处理器的手机的未来还是值得期待的,前提是还要给它一些时间。
s_16652fe46e634141adaaff4c61118eec.jpg


本文地址: https://www.ampc8.com/thread-18972-1-1.html
上一篇:为啥我们对笔记本的需求越来越低?
下一篇:Mozilla官方发布了Firefox 38.0正式版本,上网速度据说不错
回复

举报

您需要登录后才可以回帖 登录 | 验证注册

Powered by AMpc8.Com (晋ICP备13003365号ghs 晋公网安备 14090202000112号 |GMT+8, 2024/5/16 04:04 |
快速回复 返回顶部 返回列表