x86架构手机跑安卓好吗?(脑补)

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

Intel近几年一直很想进军手机或是平板的移动市场,特别是采用Android操作系统这一块大饼(忘了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指令集),苹果的iPhoneiPad系列产品更是全程采用。在这后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最佳化的程式。

▲如果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执行。

▲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处理器的手机短。

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

时间: 2024-11-08 22:30:11

x86架构手机跑安卓好吗?(脑补)的相关文章

x86架构的android手机兼容性问题

http://www.cnblogs.com/guoxiaoqian/p/3984934.html 自从CES2012上Intel发布了针对移动市场的Medfield平台以来,市面上出现过一些基于X86的Android手机. 大部分Android应用都使用基于Dalvik Java代码开发.理论上,由于Dalvik代码在系统的虚拟机中执行,在x86的ATOM平台上不会有性能损失.但由于虚拟机执行效率的有限,对于一些高性能追求的应用,谷歌允许开发者使用原生的C语言代码.而原生代码是针对硬件平台编译

ARM和X86架构

重温下CPU是什么 中央处理单元(CPU)主要由运算器.控制器.寄存器三部分组成.运算器起着运算的作用,控制器负责发出CPU每条指令所需要的信息,寄存器保存运算或者指令的一些临时文件以保证更高的速度. CPU有着处理指令.执行操作.控制时间.处理数据四大作用,打个比喻来说,CPU就像我们的大脑,帮我们完成各种各样的生理活动.因此如果没有CPU,那么电脑就是一堆废物,无法工作.移动设备其实很复杂,这些CPU需要执行数以百万计的指示,才能使它向我们期待的方向运行,而CPU的速度和功率效率是至关重要的

PowerPC架构与X86架构

PowerPC架构 PowerPC是一种精简指令集(RISC)架构的中央处理器(CPU),其基本的设计源自IBM(国际商用机器公司)的POWER(Performance Optimized With Enhanced RISC:<IBM Connect电子报>2007年8月号译为"增强RISC性能优化")架构.POWER是1991年,Apple(苹果电脑).IBM.Motorola(摩托罗拉)组成的AIM联盟所发展出的微处理器架构.PowerPC是整个AIM联盟平台的一部分

X86架构小机以何应对核心业务

 随着近期华为发布基于X86架构的小型机Kunlun,X86小型机在业内引发很多不同声音.我最近刚好参加了一次Kunlun发布会并看了Kunlun在金融等行业方案简单介绍,今天也正好利用周末时间,谈谈我个人对开放架构小机的看法和理解. 话题还得从小型机发展开始说起,存储和服务器的发展相当类似,都是从高端开始,当然高端存储是配套大型机(高端服务器)而出现,所以高端服务器出现的更早.IBM发明大型机并先后推出IBM system/ 360.system/Z系列等产品.大型机作为高端贵族产品当然一

X86架构下Linux启动过程分析

1.X86架构下的从开机到Start_kernel启动的整体过程 这个过程简要概述为: 开机-->BIOS-->GRUB/LILO-->Linux Kernel 其执行的流程图和重要函数例如以下图所看到的: 2.载入Linux内核(基于X86)的内存布局图 |          | 0A0000 +--------------------------+ |  Reserved for BIOS    | Do not use. Reserved for BIOS EBDA. 09A000

X86 架构和 ARM 架构

1.关于x86架构 X86是一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X86是由Intel推出的一种复杂指令集,用于控制芯片的运行的程序,现在X86已经广泛运用到了家用PC领域.x86是一个intel通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合,X与处理器没有任何关系,它是一个对所有*86系统的简单的通配符定义,例如:i386, 586,奔腾(pentium).由于早期intel的CPU编号都是如8086,80286来编号,由于这整个系列的CPU

使用VMware虚拟机安装x86架构的Solaris 11.3

Solaris是sun/Oracle公司出的一个操作系统,支持x86架构和SPARC架构,主要应用在服务器领域.实际使用中,一般都是通过终端连接,以命令行方式安装到服务器上的. Solairs下载地址:http://www.oracle.com/technetwork/server-storage/solaris11/downloads/install-2245079.html 在这个页面我们可以看到,有三类安装镜像,第一类是文本安装(Text Installer),这个是没有图形界面的.第二类

基于x86架构的内核Demo的详细开发文档

http://hurlex.0xffffff.org/ 这里是hurlex这个基于x86架构的内核Demo的详细开发文档, 包含PDF文档和生成PDF的XeLaTex源码和文档每章节的阶段代码. 你可以按照如下步骤获得整个项目代码. $ git clone https://github.com/hurley25/hurlex-doc.git

php判断手机是安卓系统还是ios系统

最近项目,要判断用户的手机是安卓的还是ios的,搜了一下相关的资料,最终获得的结果.事实证明,是有效的!主要是要用到HTTP_USER_AGENT,它表示的意思是用来检查浏览页面的访问者在用什么操作系统(包括版本号)浏览器(包括版本号)和用户个人偏好的代码. 监测代码如下: function get_device_type() { //全部变成小写字母 $agent = strtolower($_SERVER['HTTP_USER_AGENT']); $type = 'other'; //分别进