正在阅读:你真了解吗?细数人们对安卓的误解之处你真了解吗?细数人们对安卓的误解之处

2013-08-01 15:37 出处:PConline原创 作者:Aimo 责任编辑:censi

  误解四:安卓基于JAVA

  每每提到安卓,总会有人提到以下这几个观点:“安卓是用JAVA写的”;“安卓跑在JAVA虚拟机上怎么可能快”;“安卓软件只不过是JAVA,实际上安卓软件和山寨机的JAVA软件差不多”。不少人对这些言论深信不疑,而这些观点的流行更是让安卓背上“基于JAVA的低效率系统”这个不白之冤。

安卓基于JAVA?

  实际上,这些观点有失偏颇。首先安卓基于Linux Kernel,而Linux本身就是用C语言撰写的。安卓的一些第三方库基于C++,在中间层和用户界面部分才利用了一些JAVA语言,安卓基于JAVA编写这种说法并不准确。

  此外,虽然安卓的软件可以使用JAVA软件编写,但是和非智能机所支持的JVM扩展区别很大。安卓使用Dalvik虚拟机运行JAVA,Dalvik虚拟机基于寄存器,速度远非JVM这种基于栈的方案可以媲美——寄存器是为了解决中央处理器指令吞吐性能不足而设计的,这本来就是为速度而生的东西。将安卓的Dalvik机制等同于JVM,未免也过小瞧Google了。

Dalvik虚拟机速度远胜于JVM
Dalvik虚拟机速度远胜于JVM

  此外,安卓软件还有速度更快的方案——直接使用C语言或者C++语言开发。开发安卓软件有两种方式,一就是大家都熟悉的所谓的“用JAVA开发”,在安卓SDK(安卓软件开发包)中使用JAVA编写安卓应用;另一种是通过安卓NDK(安卓原生开发包)使用C/C++编写安卓应用,不必跑Dalvik虚拟机,效率更高。

开发者可以在NDK用C/C 编写安卓软件
开发者可以在NDK用C/C 编写安卓软件

  实际上,目前不少安卓软件都已经改用NDK和C/C++语言开发,一些测试软件如CF-Bench也将安卓机器的性能分为SDK性能和NDK性能。在CF-Bench中,我们可以看到安卓系统基于NDK的跑分是SDK的三倍以上。很多朋友一厢情愿地认为安卓基于JAVA、安卓软件都是低效的JAVA,实在是一个大大的误解。

键盘也能翻页,试试“← →”键

关注我们

最新资讯离线随时看 聊天吐槽赢奖品