IT痴汉的工作现状22-由Dalvik虚拟机引发的口水战

Dalvik是啥呢?

从未知道冰岛有Dalvik这么一个重要的村庄,直到Dan Bornstein将自己为Android系统编写的进程虚拟机命名为Dalvik后才被我所知。

它是Android系统独有的,主要作用就是使得已转换为 .dex(即Dalvik Executable)格式的Java应用程序在Android系统上运行。

它是Java运行在Android系统的基础。那么问题就来了,有标准的Java虚拟机JVM,为啥还要新造一个Dalvik呢?

答案很简洁,就是为了更加适合资源十分有限的嵌入式系统。

也许Google进行了很多努力使得Dalvik比JVM在Android上更高效,但是业界最终还是不满意,认为Dalvik拖慢了Android的速度。

在Android4.4中Google进行了另外的尝试,那就是ART(Android Runtime)的技术预览。我当然也进行了切换(在设置--开发者选项---选择运行环境),

结果是原来的应用会重新编译(代码预读取编译),变得很大,速度有多大的提升,我用肉眼去看还没有太大差别,但官方公布的数据说提升还是很大的。

不过有些应用还不支持ART。在Android5.0中Google挥起大刀,终于将Dalvik砍掉,用ART完全将其替换掉。

Dalvik的口水战

一年以前,我的闲暇时光是在玩微博中度过的。

有一天中午和齐天、周权午饭回来翻翻微博,看到“CSDN移动”发了这样一条消息:

【Java通向ObjC语言的桥梁:谷歌J2ObjC 0.7新版亮相】Google近日发布了开源命令行工具J2ObjC的最新版本:J2ObjC 0.7。J2ObjC完全开源,通过它,开发iOS应用只需用Objective-C编写UI部分代码,其余功能均可用Java语言编写实现。

我对这种转换是不太感冒的,扫了一眼评论,一个id叫办公软件的评论我觉得有待商榷,他是这样说的:

“Android不是Java,无非是用了Java语法罢了,运行层面上和Java基本无关。”

我觉得哪里有些别扭,也许他说的运行层面上和Java基本无关指的的Linux Kernel?但我理解的运行层面是包含了应用的运行以及FWK,那么跟Java就逃不了关系了。我就回了一句:

“不是单单用了Java语法吧?上层应用是Java Applications,从下向上数第二层的Android Runtime中的Dalvik 虚拟机,都是Java的存在。请看Android系统架构。另外,看看为什么google要提供NDK。”

没想到我就是简单的描述一下我的理解,却造来了“办公软件”的指责:

“harmony的类库, 照你这么说,我当年用J#包装了一堆Java API, 也算是Java? 请不要这么不专业.”

我抱着心平气和讨论的态度,顺着他说:

“兄弟,其实我们俩可以心平气和的讨论一些问题。J#是微软用Java的语法来吸引原Java开发者,这个确实如你所说,只是Java的语法,但是J#使用的.Net运行时,仍是一种虚拟机。”

对方的傲慢简直令人做呕:

“很遗憾,对于一些连名词都搞喜欢混淆的同学,我的面试时间只给3分钟”

我一直压着火,继续回着:

“请问,我哪个名词搞混淆?你说话之前不看人家的上下文么?还是没理解别人说的重点在哪里?你这样的面试官,偶一般只给一分钟。还摆上老资格了,谁没当过呀。。。呵呵”

“也许没猜错的话,你一直在认为我说的是“JVM = Dalvik VM”,但是我主要表达的是,Dalvik VM 是一种Java 虚拟机。无论怎样,我这样表达应该是成立的。欢迎图草。”

结果话题有转到了JVM与Dalvik上面了,对方也回了三条:

“Dalvik VM压根就不符合JVM规范,你却说这是Java虚拟机? 照你这么说,J#跑在CLR上,CLR也是Java虚拟机?”

“你主要表达的是,"Dalvik VM 是一种Java 虚拟机",奇葩啊奇葩, 哪门子来的Java虚拟机哟,”

“JRockit是一种Java虚拟机, J9 是一种Java虚拟机,ZingVM是一种Java虚拟机,Hotspot是一种Java虚拟机, 为啥这么定义? 因为他们follow了Java虚拟机的规范. Dalvik VM是Java虚拟机吗? 估计只有你和你看的那边书的作者才这么认为”

后来的争论就在“Dalvik是不是一种Java虚拟机”这个命题上了。让我想到了白马非马论,“求马,黄黑马皆可致,求白马,黄黑马不可致”。

但他的一些说法还是值得肯定的,比如:

“Harmony的虚拟机,就是个完全符合JVM标准的虚拟机. Android用了Harmony的类库,但是Android 的VM,和JVM标准完全不搭界.”

齐天也看到了这场争吵,对我说,对方是个上了邪路的人,与他争论有和意义?

参考:

1.wikipedia中对Dalvik的描述:

Dalvik is the process virtual machine (VM) in Google‘s Android operating system, which, specifically, executes applications written for Android.

时间: 2024-11-08 23:39:01

IT痴汉的工作现状22-由Dalvik虚拟机引发的口水战的相关文章

IT痴汉的工作现状7-TB

这次要说的不是VB也不是PB,而是TB(注1). 团队建设说白了就是搞一个活动,让大家多多参与进来,增进互相了解,终极目标是想让这个团队能够和谐默契的完成一个项目.而花销会由项目组或部门来出,我们尽管玩就是.通常活动的内容会是一起做做游戏(比如CS.桌游).一起短途旅游等,最后再聚个餐. Team Leader会是每次活动的发起人,他会征得大家的意见,怎么玩,去哪玩.当意见不统一时,我们的通常做法是投票,结果一出,不给面子的同志会说自己不去了.像这样不具有合作精神的人还不少呢,一起玩都要起这么多

IT痴汉的工作现状13-恐吓电话

那是一个普通的周末上午,略微阴沉的天,使得暑气消退了好多.刚吃过早饭,我懒懒的浏览着CSDN论坛上有趣的问题和答案. 突然电话响起,是一个陌生的号码.我像往常一样接起电话,""您好!" 对方很凶的口气,"你是张伟吗?" 我没有直接回答是还是不是,"你有什么事?" 接下来就像是电影里的对白:"你最近得罪了什么人吧?有人要我废你一条腿!" 我当时就懵了,我就一普普通通IT痴汉,我能得罪谁啊?即使是工作上有和同事发生口角,

IT痴汉的工作现状8-三思而后行

我们常用金三银四来形容最佳的跳槽时机,而通常大的动作都发生在春节之前.所以要想换个好一点的工作,需要提前做好准备,此所谓三思而后行. 跳槽有风险,频繁跳槽更要经过深思熟虑.有些大公司对频频跳槽的求职者会列入黑名单,这里面有个员工忠诚度的问题. 一个同学在某军企工作,他说,只要离开公司,就会被公司拉入黑名单,一生都不可能再回到这里. 我说这在IT企业中是不可思议的.有个公司,员工都是通过离职,再入职来提高薪水的.听说一个哥们三进三出此公司,得到了不错的薪酬待遇.我想,如果这哥们还不满意,闹剧估计还

IT痴汉的工作现状9-会哭的孩子有奶吃

叶志坚是我在B公司共事半年多的同事,比我要小几岁却透着技术圈子里的干练和比我老练的处世态度. 我俩几乎是同一天入职的.那一天我去报到,在HR办公室看见一个穿着皮夹克的帅小伙因为缺少档案而需要去原单位再跑一次.后来正式见面才知道,那就是叶志坚. 我俩在移动开发组,这是一个新成立的小组.当时的移动开发以Symbian为主流,WM次之,街机是N95,触摸屏手机还没有大面积铺开,电阻屏还没有投入市场.就当大屏手机就要大行其道的当,我们主要还是开发WM应用程序.而就是因为移动开发是其他组没有做过,我俩被认

IT痴汉的工作现状14-段子

在结束一段痛并快乐着的项目后,决定写两个段子来释放一下自己. 段子一.轮回 年轻人都外出讨生活去了,村子里只剩下老人和孩子. 多年之后. 外出讨生活的回来养老,当年的孩子们留下自己的孩子出去讨生活了. 村子里还是剩下老人和孩子. 如果不出意外,这样的日子将永远这样过下去. 所谓的轮回,不如说是恶性循环. 段子二.变迁 村子里出来个有为的村长,他要改变现状. 终于,他找到了一条符合村庄的发展之路. 不但外出讨生活的年轻人回来了,连外村的年轻人也过来这里发展了. 家人团聚了,村民过上了幸福生活. 今

IT痴汉的工作现状20-职业规划

小伟兄的经历 在第16篇文章中小伟兄弟我给大家介绍了常见的技术类职业发展通道,这其实就是一种职业规划.由于我连自己都还没管好自己,所以我就不想着转管理岗位了,不适合我.我是一个不爱受人管也不爱管别人的人,嗯,这就是我. 世间的事从来就没有那么简单,人生处处都存在着偶然与不确定性.这,也就是生命之所以精彩的一个原因.毕竟我们谁都不喜欢从出生开始就完全按照固定的剧本去演绎自己的一生.每个人都喜欢充满未知与希望的旅程,这是人生魅力之所在.我们希望成为自己命运的掌舵者,人生旅途的设计师,职业生涯的规划者

IT痴汉的工作现状24-Just for fun

早在大学一开始我进行Linux的学习了,那时大家都跟Windows Xp玩的火热,而我从来就不走寻常路,在XP上安装了VMware虚拟机搞起了Linux的探索.这简直让我眼界大开,每天都和那么多的国外爱好者通信,因此我的英语四级也通过的特别顺利.在经历一段时间的痛苦摸索后,我就开始为Linux世界贡献自己的微薄之力了.我不敢说自己对kernel有多么精通,但至少我在学校的Linux圈子里算是一个不大不小的人物呢... 才怪! 哈哈,别上当,上面只是Linus式的幽默罢了,Just for fun

IT痴汉的工作现状13-吓唬电话

那是一个普通的周末上午,稍微阴沉的天,使得暑气消退了好多.刚吃过早饭,我懒懒的浏览着CSDN论坛上有趣的问题和答案. 突然电话响起.是一个陌生的号码.我像往常一样接起电话,""您好!" 对方非常凶的口气."你是张伟吗?" 我没有直接回答是还是不是,"你有什么事?" 接下来就像是电影里的对白:"你近期得罪了什么人吧?有人要我废你一条腿!" 我当时就懵了,我就一普普通通IT痴汉,我能得罪谁啊?即使是工作上有和同事发生口角

IT痴汉的工作现状15-低级错误

"我去!怎么回事儿?明明改过的,怎么连Log都没有呢?" 周权一边大喊一边跑步往来于调试机和自己的开发机之间. 大家笑着说:"加油!跑跑更健康!" 第三遍后,终于找到了root cause,原来是自己把程序传错了,他一直测没有被修改的程序呢,当然看不到新加的log. 大家哈哈大笑,感觉又年轻了几岁. 人不比机器,有七情六欲会影响着你的行为,没有机器那种按部就班执行指令的简单.从这一点上看,人类是复杂的. 越是复杂的事物,越是容易出错.人类的行为也不例外,尤其当我们的