X86智能手机使用安卓(Android)系统好不好?X86手机运行安卓App会不会出现兼容问题?

    华硕低价位智能手机ZenFone一推出就掀起市场话题,除台湾订价和规格在中国发表之后掀起一阵波涛,很多人也对ZenFone所采用的英特尔 Atom处理器有所意见,害怕其兼容性问题无法正确运行应用程序App,这到底是怎么回事呢?文章源自技术奇点-https://www.xerer.com/archives/10753.html

    英特尔在最近几年一直都想进军智能手机或者平板的移动市场,特别是采用Android操作系统这一块市场(忘了MeeGo吧!),所采取的战术便是尽量降低Atom系列处理器的功耗,使其符合手机长时间待机的要求,实际使用第一世代的产品即为Atom Z24x0系列,而华硕ZenFone则是采用第二世代的产品,Atom Z25x0系列。相较于前代,Z25x0变成双核心四线程,GPU的部分则是从PowerVR SGX540大幅升级至PowerVR SGX544MP2。文章源自技术奇点-https://www.xerer.com/archives/10753.html

    1、ARM在智能手机上奠定基础

    Android起初发展之际,并没有限定在何种平台上运行,只不过在当时的时空环境背景因素下,第一台市售Android手机HTC Dream(G1)采用了Qualcomm MSM7201A,这是款ARMv6指令集的产品。文章源自技术奇点-https://www.xerer.com/archives/10753.html

    后面的事情大家都知道了,ARM开始如日中天,绝大部分Android手机都采用兼容ARM指令集的应用处理器(少数为MIPS指令集),Apple的iPhone和iPad系列产品更是全程采用。在这后PC时代,英特尔于移动设备市场的影响力实在不大,过去还有XScale这个产品线可在PDA上占有一席之地,甚至它的高效能吸引了不少人指定购买,但之后英特尔把XScale卖给了Marvell,也就没有适合手机使用的处理器了。文章源自技术奇点-https://www.xerer.com/archives/10753.html

    2、Atom被英特尔拿来和ARM竞争

    在2011年9月时,英特尔和Google共同发表声明,两者将一同最佳化未来Android版本在x86系统上的表现;也就是说,原本用在上网本和UMPC上的Atom处理器,现在也要进军手机市场了。文章源自技术奇点-https://www.xerer.com/archives/10753.html

    但针对半路杀出的英特尔 x86架构,市场上已经有许多应用程序针对ARM最佳化,若是像采用MIPS架构的Android设备一样,程序兼容性不佳的话,大概也就能直接判断Atom出师未捷身先死,所以英特尔制作了Binary Translation这个中介转译层,用以兼容ARM最佳化的程序。文章源自技术奇点-https://www.xerer.com/archives/10753.html

    X86智能手机使用安卓(Android)系统好不好?X86手机运行安卓App会不会出现兼容问题?
    ▲如果Android程序以Java写成并进入Dalvik虚拟机运行,在使用英特尔 Atom的Android手机中运行绝大部分没有问题。以华硕ZenFone 5(版本号码ASUS_T00F_TW_user_20140327_4.3.2.935705)为例,艾薇资讯只有遇到Basemark X 1.1无法正确运行而已。文章源自技术奇点-https://www.xerer.com/archives/10753.html

    3、x86架构如何兼容ARM程序

    要了解Binary Translation的原理,首先要了解Android程序是如何运作的。起先Android程序皆使用Eclipse开发环境和Android SDK,以Java语言写成,经过封装转换成Bytecode后丢入Android设备中,1个称为Dalvik的虚拟机器中运行。文章源自技术奇点-https://www.xerer.com/archives/10753.html

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

    由于程序经过NDK转译之后,出来的东西是硬件能够直接运行的机器码,运行效率较高,但同时带来了兼容性的问题--编译给ARM处理器的机器码一定跟编译给x86处理器的不一样,这就导致英特尔的Atom处理器无法正常运行部分程序(通常是3D游戏,因为这些程序对于效能要求较高)。如果英特尔放弃掉这些程序,想必消费者绝对无法接受,于是便有了Binary Translation这个中介转译层,可把ARM的机器码转给x86运行。英特尔 Binary Translator用来转换那些使用ARM NDK的应用程序,让他们能够在英特尔 Atom上正确运行。文章源自技术奇点-https://www.xerer.com/archives/10753.html

    4、ARM本身也有兼容性问题

    有了Binary Translation的关系,所以英特尔 Atom能够运行已对ARM处理器编译的程序,但是效能会比在ARM处理器运行时略为下降,同时此Binary Translation也并非100%完全兼容,偶尔也会有无法运行或是运行到一半跳出的情况。文章源自技术奇点-https://www.xerer.com/archives/10753.html

    但也不要以为ARM本身不会出现兼容性问题,因为ARM采用授权方式,因此各家处理器的GPU部分并不相同,例如Qualcomm使用自家的Adreno、NVIDIA使用GeForce ULP、Samsung使用ARM的Mali或是PowerVR的SGX,由于GPU对于规格的支持度不同(如材质压缩格式),导致各方也必须为不同的应用处理器推出不同的版本,这现象在3D游戏中特别严重。文章源自技术奇点-https://www.xerer.com/archives/10753.html

    5、开发者的态度最重要

    现在Android市场上还是以ARM处理器的手机为主,如果开发者无力支持各平台,当然会以市占最大的设备作为考量,以便在最小成本中谋取最大利益,有而外的经费才去针对不同的硬件调整程序码。文章源自技术奇点-https://www.xerer.com/archives/10753.html

    但相较于应用程序兼容性,艾薇资讯其实比较在意英特尔 Atom的续航力,目前市面上采用英特尔 Atom的手机都还在Z24x0和Z25x0的规格,就笔者的测试经验来说,续航力普遍都比采用ARM处理器的手机短。文章源自技术奇点-https://www.xerer.com/archives/10753.html

    weinxin
    微信公众号
    扫码关注公众号获取资源下载及吃瓜爆料
    • 本文由 发表于 2014/05/0523:44:11

    发表评论

    匿名网友