您的位置:华清远见教育科技集团 >> Android资料 >> Android 应用环境基础  
 
Android 应用环境基础
分享到:

在Android中,比较重要的Java组件包括Java核心库、Dalvik虚拟机等,两者一起构成了Android的应用环境基础。

1.核心库(Core Libraries)

在Android中,Java的核心库如数据结构(Data Structures)、工具(Utilities)、文件接入(File Access)、网络接入(Network Access)、图形(Grapgics)等得以保留。目前兼容的Java版本为JDK 5.0 update 12及以上,由于部分特性的兼容性原因,在Foryo以前,JDK 6.0尚不被兼容。这在开发Android时需要稍加注意。

Android核心库的具体实现位于libcore目录中,Java部分终会被打包为core.jar包,经过安装,终将被放置在目标文件系统的system\framework\目录中,当桌面启动时首先加载,作为Java程序的一个基础包。

libcore中的C/C++代码被编译为libjavacore.a静态库,是Java核心库的本地代码。

另外,libcore目录中还包括部分测试用例,用来测试Java核心库的基本接口功能实现,在移植Android或者其虚拟机时,也可以使用它们来测试Java核心库的功能。

核心库主要实现了以下Java基础包:

-Java标准API(java包)

-Java扩展API(javax包)

-企业和组织提供的Java类库(org包)

注意:Android核心库虽然实现了Java标准部分的大部分内容,但也有部分API没有被支持,比如GUI系统的Swing等。

2.Dalvik

Dalvik(Dalvik是冰岛的一个小镇名)是Google针对移动终端环境下计算能力有限、RAM空间有限、没有交换空间、电池供电的资源有限环境而开发的Java虚拟机。通过基于寄存器而非内存的优化的字节码,虽然Dalvik虚拟机并没有采用目前流行的虚拟机技术如JIT,但Dalvik比传统的JVM更加高效和节省内存。JVM的内容可以参考文献[15]

与传统的JVM不同的另一方面在于,Android采用的Core Java并没有包含Java SE和Java ME提供的全部特性,而是仅支持了Java SE的一个子集。

在Android运行环境中,第一个启动的Dalvik虚拟机名为Zygote。Zygote在系统启动期间即被创建。

在运行期间,Dalvik虚拟机启动运行的是经过优化的DEX字节码。传统的JAR字节码在编译期间会被转换为DEX字节码。DEX字节码能够比JAR字节码节省一半的空间。

另外,Dalvik还负责完成对象生命周期管理、堆栈管理、线程管理、安全和异常管理,以及垃圾回收等功能。

 更多相关文章

·Dalvik虚拟机原生方法的注册
·Android Dalvik虚拟机的优化
·Android Java JNI机制详解