博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
x86架构手机跑安卓好吗?(脑补)
阅读量:6005 次
发布时间:2019-06-20

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

华硕低价位手机ZenFone一推出就掀起市场话题,许多人也对ZenFone所采用的Intel Atom处理器有所意见,深怕其相容性问题无法正确执行应用程式App,这究竟是怎么回事呢?

Intel近几年一直很想进军手机或是平板的移动市场,特别是采用操作系统这一块大饼(忘了MeeGo吧!),所采取的战术便是尽量将低Atom系列处理器的功耗,使其符合手机长时间待机的要求,实际使用第一世代的产品即为Atom Z24x0系列,而Asus ZenFone则是采用第二世代的产品,Atom Z25x0系列。相较于前代,Z25x0变成双核心四处理器,GPU的部分则是从PowerVR SGX540大幅升级至PowerVR SGX544MP2。

ARM在手机上奠定基础

Android起初发展之际,并没有限定在何种平台上执行,只不过在当时的时空环境背景因素下,第一台市售Android手机HTC Dream(G1)采用了Qualcomm MSM7201A,这是款ARMv6指令集的产品。

之后的情形大家都晓得了,ARM开始如日中天,绝大部分Android手机皆采用相容ARM指令集的应用处理器(少数为MIPS指令集),苹果的和系列产品更是全程采用。在这后PC时代,Intel于移动设备市场的影响力实在不大,过去还有XScale这个产品线可在PDA上占有一席之地,甚至它的高效能吸引了不少人指定购买,但之后Intel把XScale卖给了Marvell,也就没有适合手机使用的处理器了。

Atom被抓来打ARM

在2011年9月时,Intel和Google共同发表声明,两者将一同最佳化未来Android版本在x86系统上的表现;也就是说,原本用在netbook和UMPC上的Atom处理器,现在也要进军手机市场了。

不过针对半路杀出的Intel x86架构,市场上已经有许多应用程式针对ARM最佳化,若是像采用MIPS架构的Android装置一样,程式相容性不佳的话,大概也就能直接判断Atom出师未捷身先死,所以Intel制作了Binary Translation这个转体中介转议层,用以相容ARM最佳化的程式。

x86架构手机跑安卓好吗?

▲如果Android程式以Java写成并丢入Dalvik虚拟机执行,在使用Intel Atom的Android手机中执行绝大部分没有问题。

x86架构如何相容ARM程式

要了解Binary Translation的原理,首先要了解Android程序是如何运作的。起先Android程序皆使用Eclipse开发环境和Android SDK,以Java语言写成,经过封装转换成Bytecode后丢入Android装置中,1个称为Dalvik的虚拟机器中执行。

不过稍微了解程序运作的人都知道,虚拟机虽然能够带来跨平台、不限硬件规格执行的好处,但同时也会因为虚拟机器的转换,降低执行效率。因此后来Andriod除了SDK(Software Development Kit)以外,也推出NDK(Native Development Kit),让开发人员能够绕过Dalvik转译造成的效能损失,同时又能够使用Java以外的程序语言撰写(如C/C++)。

由于程式经过NDK转译之后,出来的东西是硬件能够直接执行的机器码,执行效率较高,但同时带来了相容性的问题——编译给ARM处理器的机器码一定跟编译给x86处理器的不一样,这就导致Intel的Atom处理器无法正常执行部分程序(通常是3D游戏,因为这些程式对于效能要求较高)。如果Intel放弃掉这些程序,想必消费者绝对无法接受,于是便有了Binary Translation这个中介转译层,可把ARM的机器码转给x86执行。

x86架构手机跑安卓好吗?

▲Intel Binary Translator用来转换那些使用ARM NDK的应用程式,让他们能够在Intel Atom上正确执行。

ARM本身也有相容性问题

有了Binary Translation的关系,所以Intel Atom能够执行已对ARM处理器编译的程序,但是效能会比在ARM处理器执行时略为下降,同时此Binary Translation也并非100%完全相容,偶尔也会有无法执行或是执行到一半跳出的情况。

但也别以为ARM本身不会出现相容性问题,因为ARM采用授权方式,因此各家处理器的GPU部分并不相同,例如Qualcomm使用自家的Adreno、NVIDIA使用GeForce ULP、Samsung使用ARM的Mali或是PowerVR的SGX,由于GPU对于规格的支援度不同(如材质压缩格式),导致各方也必须为不同的应用处理器推出不同的版本,这现象在3D游戏中特别严重。

开发商态度才是关键

目前Android市场上还是以ARM处理器的手机为大宗,如果开发商无力支持各平台,当然会以市占最大的装置作为考量,以便在最小成本中谋取最大利益,有而外的经费才去针对不同的硬件调整程序码。

但相较于应用程式相容性,小编其实比较在意Intel Atom的续航力,目前市面上采用Intel Atom的手机都还在Z24x0和Z25x0的规格,就笔者的测试经验来说,续航力普遍都比采用ARM处理器的手机短。

x86架构手机跑安卓好吗?

▲以Asus ZenFone 5(版本号码ASUS_T00F_TW_user_20140327_4.3.2.935705)为例,笔者只有遇到Basemark X 1.1无法正确执行而已。

转载于:https://www.cnblogs.com/zsb517/p/5831162.html

你可能感兴趣的文章
蓝桥杯省赛[新手向题解] 2019 第十届 C/C++ A组 第九题 DP
查看>>
centos7下编译安装php-7.0.15(PHP-FPM)
查看>>
一些简单的数据库优化
查看>>
npm 相关命令
查看>>
SerializeField和Serializable
查看>>
谈谈Ext JS的组件——布局的使用方法
查看>>
10、Libgdx的内存管理
查看>>
【Linux】CentOS7 alien命令 转化deb 与 rpm的相互转化
查看>>
html如何设置P的高度为零?
查看>>
一个应用程序无法启动错误的解决过程
查看>>
avplayer
查看>>
python 包安装
查看>>
Arduino-串口函数Serial
查看>>
开发中经常遇到SVN清理失败的问题:
查看>>
socket编程之并发回射服务器
查看>>
jQuery实现select级联
查看>>
NOI2010 能量采集
查看>>
一步步写自己SqlHelper类库(二):.NET Framework 数据提供程序
查看>>
打字机效果-so easy
查看>>
20、redis和memcached比较?
查看>>