涨姿势!x86处理器兼容ARM架构App的秘密

http://bbs.gfan.com/android-7431343-1-1.html


        相对于ARM来说,Intel进入手机和平板市场的时间要晚一点。很多人也对采用Intel Atom处理器的平板电脑持怀疑态度,担心其无法执行针对ARM优化的应用程序。实际ARM本身也存在兼容性问题,只是大家一直都没注意。
inteldroid.jpg
        因为ARM采用授权方式,因此各家处理器集成的GPU并不相同。例如高通使用自家的Adreno、Nvidia使用GeForce ULP、三星使用ARM的Mali或PowerVR的SGX,由于GPU的规格不同(如封装格式),导致App在不同处理器中的表现差异很大。所以Intel开发了Binary Translation,用来兼容针对ARM优化的应用程序。
        想了解Binary Translation的原理,首先要了解Android程序是如何运行的。最初Android程序都采用Eclipse开发环境和Android SDK,代码用Java语言写成,经过封装转换成Bytecode后加入到Android设备中,在Dalvik虚拟机中运行。
        不过稍微了解程序运行的人都知道,虚拟机虽然能够带来跨平台、不限硬件规格的好处,但同时也会因为代码转换降低执行效率。因此后来Android除了SDK(Software Development Kit)以外,又推出了NDK(Native Development Kit),让开发人员能够避免Dalvik转译造成的性能损失,还可以使用Java之外的程序语言编写(如C/C++)。
28bc2d8c1d0ed601985f4703aa198082.png
        由于经过NDK编译之后的程序是硬件能够直接执行的机器代码,所以执行效率比较高,但同时带来了兼容性问题——编译给ARM处理器的机器代码和给x86处理器的不一样,于是便有了Binary Translation这个中间转译层,可以转换那些使用ARM NDK的应用程序,让它们能够在Intel Atom处理器上正确执行。
people_fonepad.png
people_fonepad.png
        Intel估计约90%专为ARM编写的程序都能够在Atom上执行,也就是说整个Google Play里面只剩下少部分程序不能使用。目前很多平板电脑(如华硕ME372CG)都采用了Intel Atom处理器,运行Java程序问题不大,消费者可以放心购买。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值