Chinaunix首页 | 论坛 | 博客
  • 博客访问: 50189
  • 博文数量: 27
  • 博客积分: 1005
  • 博客等级: 准尉
  • 技术积分: 346
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-23 13:46
文章分类
文章存档

2012年(27)

我的朋友

分类: IT业界

2012-09-01 17:33:02

在Java中,你写好Java源文件,用Java编译器将其编译成Java字节代码,然后在Java虚拟机中运行这些字节码。在Android中,情况就有些不同编写Java源文件,仍就使用相同的Java编译器将其编译为Java字节代码但在这之后,你还得再一次使用的Dalvik编译器重新编译成为Dalvik字节码。正是这些Dalvik字节代码,Dalvik虚拟机上运行2-2展示了在标准Java中左)与在Android中使用Dalvik(右)编译过程的区别。

  

2

图2-2. Java与Dalvik

  

看起来你在Android编程工作中会比在Java中做更多的工作。然而,这些编译工作都会由工具软件自动完成,比如说Eclipse和Ant,你永远不会注意到这些额外的步骤。


你可能会奇怪,为什么不直接从Java源文件编译Dalvik字节?有一堆原因造成这额外的步骤早在2005年,Dalvik创建之初,Java语言正在经历频繁的变化,但是Java字节码相对来说是“坚如磐石”因此,Android团队选择相应Java字节代码而不是Java源代码用于Dalvik


由此产生的“副作用,在理论上你可以用任何其他能够编译成Java字节码的语言来编写Android应用例如,可以使用Python或Ruby我说“在理论上“,因为在实践中需要作为SDK组成部分的相应库文件支持开源社区很有可能在将来想出了一个解决方案

  

另外一个值得注意的事情是,Android中的Java类并非一个标准的Java类集合。Java通常按以下形式发布:

  

Java标准版本  

    用于普通桌面应用的开发

Java企业版本

    用于企业应用的开发

Java微版本

    用于移动应用开发

  

Android的Java库更接近于Java标准版本。最主要的区别是Java用户界面类库(AWT和Swing)被摒弃了,取而代之的是Android特定的用户界面类库。Android还在标准Java类库上增添了不少新属性,能够支持绝大多数的Java标准属性。于是,你就可以任意使用绝大多数的Java类库,同时还会有一些新的可用。

 

传智播客收集整理,关注,,提供、、

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