博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
android x86兼容模式,英特尔解释安卓与x86兼容问题
阅读量:5934 次
发布时间:2019-06-19

本文共 1056 字,大约阅读时间需要 3 分钟。

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

前几日拿到联想 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 架构,包括极品飞车、无尽之剑等。用户大可不必担心,因兼容性引起的影响已经十分微小了。

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

转载地址:http://ikctx.baihongyu.com/

你可能感兴趣的文章
有序的双链表
查看>>
Linux系统启动流程详解
查看>>
测试人员必学的软件快速测试方法(二)
查看>>
程序员全国不同地区,微信(面试 招聘)群。
查看>>
【干货】界面控件DevExtreme视频教程大汇总!
查看>>
闭包 !if(){}.call()
查看>>
python MySQLdb安装和使用
查看>>
Java小细节
查看>>
poj - 1860 Currency Exchange
查看>>
chgrp命令
查看>>
Java集合框架GS Collections具体解释
查看>>
洛谷 P2486 BZOJ 2243 [SDOI2011]染色
查看>>
linux 笔记本的温度提示
查看>>
数值积分中的辛普森方法及其误差估计
查看>>
Web service (一) 原理和项目开发实战
查看>>
跑带宽度多少合适_跑步机选购跑带要多宽,你的身体早就告诉你了
查看>>
广平县北方计算机第一届PS设计大赛
查看>>
深入理解Java的接口和抽象类
查看>>
java与xml
查看>>
Javascript异步数据的同步处理方法
查看>>