armeabi就是针对普通的或旧的arm v5 cpu,armeabi-v7a是针对有浮点运算或高级扩展功能的arm v7 cpu。架构
armeabi-v7a(32位ARM设备),arm64-v8a(64位ARM设备)性能
在2011年11月,ARM公司发布了新一代处理器64位架构ARMv8的部分技术细节(也就是咱们常说的Cortex-A57A53),表明着将来移动处理器迈入64位行列。咱们得明确一点,ARM公司本身自己并无64位芯片设计技术,他是经过了收购MIPS64处理器架构的部分技术使用权,再结合ARM的一些特性设计出来的。也就是说:MIPS、ARM、X86三大架构中,惟一没有64位技术的ARM,经过收购MIPS的形式获得了64位。
所谓的ARMv8架构,就是在MIPS64架构上增长了ARMv7架构中已经拥有的的TrustZone技术、虚拟化技术及NEON advanced SIMD技术等特性,研发成的。操作系统
64位ARMv8架构中包含两个执行状态:AArch32(也就是咱们常说的ARMv7)和AArch64(ARMv8)。AArch64执行状态针对64位处理技术,引入了一个全新指令集A64(也就是基于收购的MIPS64架构),而AArch32执行状态将支持现有的ARM指令集。因此64位的ARM处理器中同时包含着32位的ARMv7和64位的ARMv8两种架构。所以:设计
看到这里,你必定明白了,ARM64位处理器和电脑的64位处理器是两个截然不容的概念,他并非64位就能原生向下兼容32位程序,而是经过64位处理器中集成的32位架构来运行32位程序。说得通俗点,它不是以64位形态来运行32位程序,倒是以32位的形态运行32位程序的。内存
因为目前新出的64位处理器包含两个架构,并且制程技术没有提高(28nm),同时在手机与平板上,芯片面积有着严格的限定,不能过度增长,这致使64位ARM处理器平均分配到每一个架构的晶体管数量锐减,也就是说从64位处理器中的32位架构方面,对于同规格的32位处理器而言,不但没有提升,性能反而是必定规模降低的。但处理器厂家又必须给消费者一个交代,以更好的推广64位,因此厂家就必须在其余方面提高性能,以弥补CPU的晶体管数量减小带来的损失。好比:更换性能更强的GPU、提高内存带宽、多核心虚拟单颗核心提高单核性能、联合跑分软件商修改跑分权重(提高GPU分数,下降CPU分数的权重)等等。这样,扬长避短,最终到达消费者手里,用跑分软件一跑,确实有提高,用户开心,厂家腰包也鼓了。开发
综上所述,ARM64位处理器从严格意义来讲,叫它ARM32+64更加贴切,他相对于ARM32位处理器,有倒退的地方,也有进步的余地,但正由于倒退激起了ARM进取的决心,让它大刀阔斧的向前变革,不得不说也算一种进步。但ARM64在的手机上真的有用吗?我只能说,目前确实没啥用,但从此或许有。v8
真正的64位手机并不止单纯停留在处理器上,若是只由于它的处理器是64位,就称其为64位手机的话,咱们能够绝不犹疑的说这多是虚假宣传,好在联想很聪明,在发布A678t和A805e宣传的时候,只说64位处理器手机。
“64位处理器手机”与“64位手机”是两种天壤之别的概念:只要是处理器包含64架构位的,就能够称“64位处理器手机”,这种手机也许还运行不了64位程序,只是用来抢占市场,和32位手机比起来优点并不明显。
“64位手机”就不一样了:它包含着64位处理器、64位标准系统、64位安卓虚拟机、以及64位程序,这才是真正意义上的64位手机!虚拟机
听我细细解说:谷歌官方曾说,安卓很早前就支持64位了,这话不假,从Android4.0到Android4.4,安卓系统都支持64位的硬件,可是这仅仅表示底层驱动支持64位,能运行在64位的硬件之上,仅此而已。然而,上层运行软件的,不管是Dalvik的虚拟机,仍是ART虚拟机都是32位的。也就是说,只要你的手机系统是Android4.0—4.4,即使你的处理器是64位,也只能在32位虚拟机下运行32位程序,就算真的64位程序摆在你眼前,也没法安装。it
Android L开始才真正支持32位和64位的ART虚拟机,配合上64位处理器,名正言顺的运行64位软件。可是问题又来了,没有软件商愿意开发64位程序。我有几个搞安卓开发的朋友,都明确表示永远不涉足64位安卓程序开发,这又是为何呢?dva
ARMv8是一套不错的指令集,它既支持将来的64位程序,也向下兼容现有32位程序。有了ARMv8的支撑,之后的64位手机操做系统,如Android L 64bit均可以简单、高效地支持现有的32位App,你不用担忧兼容性问题。