Chinaunix首页 | 论坛 | 博客
  • 博客访问: 810803
  • 博文数量: 210
  • 博客积分: 10002
  • 博客等级: 上将
  • 技术积分: 1840
  • 用 户 组: 普通用户
  • 注册时间: 2008-11-18 09:56
文章分类

全部博文(210)

文章存档

2011年(1)

2010年(6)

2009年(65)

2008年(138)

我的朋友

分类: LINUX

2008-11-18 10:22:13

很多人目前不知道Android的Dalvik虚拟机和Sun J2ME相比先进在哪里?今天GPhone之家就一起给大家分析下Dalvik和J2ME的区别。首先Dalvik虚拟机是Google自己开发的 Java虚拟机,运行在Android平台上。J2ME是Sun公司的移动平台Java VM。

  一、运行环境对比

  Dalvik工作在Linux内核的Android操作系统上,而J2ME工作在目前主流的手机操作系统Symbian、UIQ、Windows Mobile等,目前还不支持iPhone Mac OS。

  二、模拟器

  Dalvik在Android平台上的模拟器为Qemu,而J2ME官方的是WTK,同时摩托罗拉、索尼爱立信、诺基亚都有自己的模拟器,同时Symbian J2ME有更多的扩展类,诺基亚的扩展类兼容性最差。

  三、兼容性

  Dalvik和J2ME相比兼容性算是最大的突破,要知道J2ME的各个手机公司之间的移植就很麻烦,除了分辨率、硬件差异要考虑外,还有很多扩充类的问题。而Android Dalvik工作在Google开放手机联盟中,可以完全脱离硬件困扰。(除了一些差异如QWERTY和触摸屏)

 四、运行效率

  这一点是大家最关心的问题,Android Dalvik会把Java Class编码转换为Dex,Dex是Dalvik VM executes的缩写,经过内存和运行效率的优化,而J2ME的为KJAVA,千字节的Java VM所以在资源上控制的也很好,最终性能如何要等到Gphone真机发布做完整评论,不过Dalvik是基于寄存器构架,而JavaME基于栈的,可以缩短编译时间外,在静态做了更多的优化,目前Gphone手机的硬件配置还不确定所以无法用开发板单一测试,但Android工作在ARM9-926上,基本测试出来开发系统应用比一般的非智能手机快很多,和Symbian C++以及WinCE相比仍然有差距。间

 五、安全性

  Java一向倡导安全性,从内存分配和高层上看不会有很多危险的操作,这是在J2ME上来看。而Dalvik作为Android平台级开发语言必然会涉及系统权限问题,如Linux的磁盘、用户控制等,不过Android平台通过一个WPF的模型,AndroidManifest.xml文件统一管理,类似Symbian中的能力一样,所以基本可以放心使用。

 六、类库完整性

  这一点可以说Sun比较全面,但是我们看到Dalvik实际上是对JME的补充,并不是重写实现,除了显示UI系统又比较大的变革外,其他的还是很兼容的,所以目前版本的Dalvik已经包含了一些重要的特性,如Base64编码、XML DOM、MD5处理,影音解码器、地图控制、全球定位(部分为可选包)

  最后要说明的一点是Android Dalvik最终能否代替J2ME呢?Gphone之家告诉大家,Dalvik仅运行在Android平台,如果开放手机联盟真的开放了Dalvik源码可能形式有所变化,但目前gphone的对手还有强大的iphone和symbian、uiq、以及wince、palm、brew等,所以目前无法做更多评论。

阅读(2553) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~