找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 1592|回复: 0

[K900] X86如何解决Android应用兼容性问题?

[复制链接]
hotfox 发表于 2013-4-15 10:28:32 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?注册

×
前几日拿到联想K900,这款机器无论是硬件还是软件都十分不错,工业设计也很强。但很多网友仍然关心一个问题,X86的应用兼容性怎么样?在他们看来,兼容性很大程度上影响他们是否购买这款机器。

经过测试,X86的应用兼容性已经做的十分完善,英特尔此前宣布可达95%的兼容性不假,大家大可放下心里包袱。不过英特尔是如何做到的,这背后的原因很多人并不知道。恰好在IDF上,笔者遇到了一位英特尔软件部门工程师,他通俗的讲述了其中的原因。

其实问题主要出在指令集上,X86使用的是SSE指令集,而ARM是用的NEON指令集,两者差异导致了应用不兼容。不过好在Android 的大部分应用运行在Dalvik虚拟机之上,并不依赖CPU架构,因此这些应用可以很好地跑在X86上。

支持Dalvik的程序占据大多数,但仍然会有一些应用绕过Dalvik。比如需要更高的性能或者需要硬件的支持的时候,前者通常是大型游戏,后者则是结合了感应器或者电源管理等硬件相关的应用。Angry Bird两者都不占,所以可以兼容,赛车游戏两者都需要,所以大多不兼容。

这些稍显复杂的应用数量并不低,且用户需求强烈。为了快速解决这些问题,英特尔试图通过技术去完善,开发了一种转换技术“Houdini”。“Houdini”相当于一个中间层,可以让原本不兼容的应用跑在X86上。但这种强行结合的技术运行起来往往效率不高,容易出问题,且会增加2%左右的耗电。

从源头解决问题显然是更好的办法,尽管速度会慢一下。自从英特尔和Android合作之后,英特尔就提供了X86的NDK。开发者只需在应用中支持这个NDK,应用在提交时会自动生成2 个App,设备在下载时会根据自己的架构下载合适的App。这种方法并不难,效果也最好,难的是如何让众多开发商甘愿合作。所以英特尔以及手机厂商会去和应用厂商挨个合作,督促其支持X86的NDK。

现在已经有很多大型游戏支持X86架构,包括极品飞车、Epic Citadel 等。用户大可不必担心,因兼容性引起的影响已经十分微小了。

况且用户日常使用最频繁的恰恰是那些十分简单、无需重新适配的应用。由于Android使用虚拟机,应用性能常遭人诟病,但是这样做的好处是,应用可以轻松跨平台运行。如果没有这个,那对英特尔来说将是灾难性的,从这点来看,英特尔还是十分幸运的。

论坛发展靠大家,积极提供资源;请勿灌水
通过分享您的互联网来赚钱
您需要登录后才可以回帖 登录 | 注册

本版积分规则

QQ|手机版|小黑屋|存档|商匡数科 ( 沪ICP备19008575号-1 )

GMT+8, 2024-7-1 08:08 , Processed in 0.182864 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表