HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

Android 的虚拟机 Dalvik 引来论战不断

  • 2007-11-19
  • 本文字数:1938 字

    阅读完需:约 6 分钟

随着上周Google 的Android SDK 的发布,关于它的API 以及在移动电话领域所带来的预期影响这些方面的讨论不胜枚举。不过,其中的一个话题在Java 社区是一石激起千层浪,这就是 Android 平台的基础—— Dalvik 虚拟机

Dalvik 和标准 Java 虚拟机(JVM)之间的首要差别之一,就是 Dalvik 基于寄存器,而 JVM 基于栈。一直以来都有人在猜测,选择基于寄存器的方式是因为它对提前优化(ahead-of-time optimization)提供了更好的支持,而这对类似于移动电话这样的受限环境是颇有裨益的。另一份针对基于寄存器虚拟机和基于栈虚拟机更深入的比较分析指出,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。

Dalvik 和 Java 之间的另外一大区别就是运行环境——Dalvik 经过优化,允许在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik 应用作为一个独立的 Linux 进程执行。 Neil Bartlett 指出,给每一个应用赋予独立的进程可以允许动态安装、激活和去激活,但是他对Dalvik 为什么要选择这种方式而没有使用OSGi 在单一进程中实现表示疑问—— Radoslav Gerganov 回复说,独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。Carl Rosenberger也指出 OSGi 也可以被移植到 Android 平台,而 Jilles van Gurp 对 Google 为何选择重新实现若干组件,如跨进程通信,表示疑问。

此外,Java 也已经不再是人们在Dalvik 上开发所选择的唯一语言了——已经有人在Dalvik 上运行Scala 取得了成功,并且 Hecl 也已经被成功移植了。另外更有人对运行Groovy 做了一次尝试,不过目前为止还不怎么成功。 Mono 项目的创始人 Miguel de Icaza 也对在 Dalvik 源码公开之后将 Mono 整合到 Dalvik 上表示了兴趣,而且也已经有人猜测如何用多种方式来实现整合了,包括与随Android SDK 提供的Java 到Dalvik 重编译器类似的CIL(Common Intermediate Language,通用中间语言)到Dalvik 重编译器。

Dalvik 的诞生也导致人们开始忧虑 Java 平台的第一次大规模的分道扬镳或许已经是进行时了——有人已经把 Davlik 和微软的JVM 以及 Sun 对微软的诉讼联系起来,等着看 Google 身上是否也会发生类似事情;另外一些人则指出, Google 并没有宣称 Dalvik 是一个 Java 实现,而微软却是这样做的。Sun 也对可能带来的阵营分裂表达了忧虑情绪,并提出和Google 合作来保证Dalvik 和JVM 之间的兼容性——Google 对此的解释是,Dalvik 是对解决目前Java ME 平台上分裂的一次尝试,也是为了提供一个拥有较少限制许可证的平台。甚至还有人怀疑这是否是 Sun 和 Google 两大阵营对 Java 之未来的一次大规模较量 Ian Skerret 认为,Dalvik 的诞生是对Sun 尝试控制和保护来自Java ME 收入来源的一次反应,以及对建立 OpenJDK 统辖理事会迟迟未果的回答。这也导致 Dalibor Topic 怀疑 Google 是否要重履 Sun 走过的路

当然,一个很有意思的问题是,为什么没人有勇气拿 Google 关于 OpenJDK 的问题反过来问 Google 呢? 虽然 Android 号称开源,但它仍是专有产品。Android 做过兼容性保证,是在秘密会议室中签署和保管的。Android 不具备任何治理模型,也没有证据指出将来会出现治理模型。Android 没有规范,并且它的许可证禁止任何替代实现的开发,因为这并非 Google 在 SDK 许可证中授权许可的使用权。Android 完全在 Google 的掌控之下,一旦有竞争性应用在财政上损害了 Google 的利益,Google 是保有一刀抹杀这些应用的权利的。从设计伊始,Android 就收到限制,只能在 Google 的财务利益允许的条件内开放。专有的 Java 也不是什么好货色,旧瓶装新酒而已。

这就好像我们在见证 JCP 的重生一样,人们排着队把开源社区的“街头信誉”在一个单一的、专有的实现的基础上借给另外一个封闭的厂商垄断集团。只不过这次的大头改姓 Google,而不是 Sun 了。

Stefano Mazzocchi 发布了一篇分析报告,深切入里地探讨了围绕Java ME 和Dalvik 的许可证问题,他得出结论说,Dalvik 的市场定位良好,足以给移动电话市场带来冲击。尽管Google 一直都很小心避免引起诉讼的几个关键点,但Mazzocchi 相信Sun 还是会起草知识产权案的状告书(IBM 也有可能)。他还指出,由于在JCP 之外操作,Google 可以非常快地对Android 进行更改,而且可以避开Sun 对任何JCP 更动的否决权——这样他们也可以为诸如USB 和蓝牙这样的组件加入接口,而这些组件在基础Java ME 实现中是不可用的。最后,通过在Apache 许可证下授权许可Dalvik 的源码,移动电话运营商更有可能采用Dalvik,因为运营商可以在不花费许可费用的情况下使用和修改它。

看起来Dalvik 已经在Java 社区中掀起了轩然大波——您持的又是什么样的想法呢?

查看英文原文: Dalvik, Android’s virtual machine, generates significant debate

2007-11-19 23:304570
用户头像

发布了 117 篇内容, 共 15.7 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

ClickHouse最佳实战之分布表写入流程分析

京东科技开发者

数据库

架构师训练营第四周作业

脸不大

Apache Pulsar 社区周报:09-26 ~ 10-09

Apache Pulsar

大数据 开源 云原生 Apache Pulsar 消息中间件

程序员黄金年龄25-28岁,我们30+的人该去哪儿?附华为案例;

Java架构师迁哥

打通IO栈:一次编译服务器性能优化实战

AI乔治

Java 编程 架构 io 高性能

架构师训练营第 1 期第四周课后练习题

Leo乐

极客大学架构师训练营

区块链的浪潮开始涌动了

CECBC

区块链 期货

架构师训练营第四周学习笔记

一马行千里

学习 极客大学架构师训练营

Netty源码解析 -- 客户端启动过程

binecy

Netty nio 源码阅读

一次百万长连接压测 Nginx OOM 的问题排查分析

AI乔治

Java nginx 架构 服务端 高性能

架构师训练营第四周命题作业

一马行千里

极客大学架构师训练营 命题作业

如何花“一点点小钱”突破华为云CCE服务的“防线”

华为云开发者联盟

容器 k8s

一周信创舆情观察(9.28~10.11)

统小信uos

Java-技术专题-JDK8-HashMap的实现原理

洛神灬殇

年轻代频繁ParNew GC,导致http服务rt飙高

AI乔治

Java 学习 架构 JVM GC

如何优雅的搞垮服务器,再优雅的救活

MySQL从删库到跑路

Linux 升级glibc 启动异常 无法进入系统 抢救模式

Pulsar 社区周报|09-19 ~ 09-25

Apache Pulsar

大数据 开源 Apache Pulsar 消息中间件

阿里大牛精心整理了46张PPT,教你弄懂JVM、GC算法和性能调优

Java架构之路

Java 程序员 面试 编程语言 JVM

让超宽带抵达产业互联网:UBBF上演智能联接全面落地

脑极体

重大事故!IO问题引发线上20台机器同时崩溃

AI乔治

Java 架构 多线程 io 并发

为什么学习总是停在开头两页?

Nydia

芯片破壁者(十七):“硅谷市长”罗伯特•诺伊斯开启的产业法则

脑极体

一次线上JVM调优实践,FullGC40次/天到10天一次的优化过程

AI乔治

Java 编程 架构 JVM GC

怎么才算掌握了JDK中的线程池

AI乔治

Java 编程 架构 jdk 线程池

代表Java未来的ZGC深度剖析,牛逼!

AI乔治

Java 架构 ZGC JVM GC调优

图解面试题-二叉树的所有路径

9527

Java 面试 算法 LeetCode 二叉树

异步excel导出组件设计和实现

Wayne Chu

Java 微服务 EasyExcel SpringCloud 服务治理

Java之父都需要的一本能够更深入地了解Java编程语言的书

Java架构之路

Java 程序员 面试 编程语言

Flink周期性水位线分配器-6-3

小知识点

scala 大数据 flink

系统架构--作业

Nick~毓

12张图带你彻底理解分布式事务产生的场景和解决方案!!

冰河

分布式事务 2PC 可靠消息最终一致 TCC 最大努力通知

Android的虚拟机Dalvik引来论战不断_Java_Ryan Slobojan_InfoQ精选文章