误解四:安卓基于JAVA 每每提到安卓,总会有人提到以下这几个观点:“安卓是用JAVA写的”;“安卓跑在JAVA虚拟机上怎么可能快”;“安卓软件只不过是JAVA,实际上安卓软件和山寨机的JAVA软件差不多”。不少人对这些言论深信不疑,而这些观点的流行更是让安卓背上“基于JAVA的低效率系统”这个不白之冤。 实际上,这些观点有失偏颇。首先安卓基于Linux Kernel,而Linux本身就是用C语言撰写的。安卓的一些第三方库基于C++,在中间层和用户界面部分才利用了一些JAVA语言,安卓基于JAVA编写这种说法并不准确。 此外,虽然安卓的软件可以使用JAVA软件编写,但是和非智能机所支持的JVM扩展区别很大。安卓使用Dalvik虚拟机运行JAVA,Dalvik虚拟机基于寄存器,速度远非JVM这种基于栈的方案可以媲美——寄存器是为了解决中央处理器指令吞吐性能不足而设计的,这本来就是为速度而生的东西。将安卓的Dalvik机制等同于JVM,未免也过小瞧Google了。
此外,安卓软件还有速度更快的方案——直接使用C语言或者C++语言开发。开发安卓软件有两种方式,一就是大家都熟悉的所谓的“用JAVA开发”,在安卓SDK(安卓软件开发包)中使用JAVA编写安卓应用;另一种是通过安卓NDK(安卓原生开发包)使用C/C++编写安卓应用,不必跑Dalvik虚拟机,效率更高。
实际上,目前不少安卓软件都已经改用NDK和C/C++语言开发,一些测试软件如CF-Bench也将安卓机器的性能分为SDK性能和NDK性能。在CF-Bench中,我们可以看到安卓系统基于NDK的跑分是SDK的三倍以上。很多朋友一厢情愿地认为安卓基于JAVA、安卓软件都是低效的JAVA,实在是一个大大的误解。
|
正在阅读:你真了解吗?细数人们对安卓的误解之处你真了解吗?细数人们对安卓的误解之处
2012-11-29 18:05
出处:PConline原创
责任编辑:censi
键盘也能翻页,试试“← →”键
本文导航 | ||
|