深入解析Android Dalvik虚拟机与JAVA环境

需积分: 9 0 下载量 44 浏览量 更新于2024-07-28 收藏 267KB PDF 举报
"Android系统原理与开发要点详解,重点关注Android的JAVA虚拟机——Dalvik,JAVA程序环境,JNI的使用以及系统服务的JAVA部分。" 在Android系统中,Dalvik虚拟机扮演着至关重要的角色,它是Android应用程序运行的基础。Dalvik虚拟机设计的目标是优化在移动设备上运行,特别是内存有限的设备。它执行的是.DEX(Dalvik Executable)格式的文件,这种格式是为了节省内存而特别设计的。与传统的Java虚拟机不同,Dalvik基于寄存器架构,而不是堆栈架构,这有助于减少指令集的大小,从而降低内存占用。 Dalvik虚拟机依赖Linux内核来提供线程管理和内存管理等底层功能。虚拟机的实现主要在`dalvik/vm`目录下,这部分包含本地代码(包括汇编代码),编译后形成`libdvm.so`共享库。`libcore`目录则包含支持基础Java实现的代码,包括C语言和Java代码,最终打包为`core.jar`供Java层使用。 在Android系统中,JNI(Java Native Interface)被广泛用于Java代码与本地代码(C/C++)之间的交互。`dalvik/libnativehelper`目录下的库`libnativehelper.so`是一个工具库,它用于注册JNI函数,使得Java层可以调用本地代码的功能。`nativehelper`库的头文件提供了JNI的标准接口和注册功能。 Android的JAVA程序环境与标准Java环境有所不同,尽管它包含了JAVA标准API和扩展API(如javax包),但也有自己的特定API,这些API通常以org包的形式存在,专门服务于Android平台。例如,Android的API包含了各种与系统服务、UI、网络通信等相关包,如`android.os`、`android.widget`和`android.net`等。值得注意的是,虽然它们在命名上可能与标准Java API类似,但功能和使用方法可能有所差异,并不完全等同于Java标准库。 总结来说,理解Android系统的Dalvik虚拟机、Java环境、JNI以及系统服务的Java部分对于Android应用开发者至关重要,这些知识点涵盖了从应用程序运行到系统级别的交互,是深入掌握Android开发的基石。