### Android的JAVA虚拟机和JAVA环境 #### 第一部分:Dalvik虚拟机 **概述** - **定义**:Dalvik虚拟机是专为Android设计的一种轻量级虚拟机,旨在为移动设备上的应用提供运行环境。它执行的是经过特定转换后的`.dex`文件,这种文件格式在设计时特别考虑到了内存效率问题,非常适合于资源受限的移动平台。 - **执行流程**:所有的Android应用程序都是使用Java语言编写,然后通过标准的Java编译器编译成`.class`文件。接着,通过Android SDK中的`dx`工具将这些`.class`文件转换成`.dex`格式,最后由Dalvik虚拟机负责执行这些文件。 - **技术特点**: - **基于寄存器**:这使得Dalvik虚拟机在执行代码时更加高效,相比传统的栈式虚拟机能够更好地利用硬件资源。 - **依赖Linux内核**:Dalvik虚拟机依赖于Linux操作系统提供的底层支持,如线程管理和内存管理等关键功能。 **内部结构** - **代码路径**:Dalvik虚拟机的核心代码位于`dalvik/`目录下,其中包括目标机和主机的相关内容。 - **虚拟机实现**:`vm/`目录下的代码实现了虚拟机的功能,这部分代码主要是用C/C++编写的,并且还包含了一些汇编语言代码,最终编译为共享库`libdvm.so`。 - **基础Java支持**:`libcore/`目录则包含了为Java应用提供基本支持的代码,包括C语言和Java代码,最终编译为Java包`core.jar`。 **Native Helper库** - **作用**:这是一个工具库,主要用于注册JNI(Java Native Interface)调用的函数。当需要从本地代码层面向Java层提供功能时,会用到这个库。 - **实现**:该库位于`dalvik/libnativehelper`,链接静态库`libjavacore.a`并生成动态库`libnativehelper.so`。 - **头文件**: - `jni.h`:基于标准JNI的头文件。 - `JNIHelp.h`:提供了JNI注册功能的头文件。 #### 第二部分:Android的JAVA程序环境 **API层次结构** - **层次划分**: - **Java标准API**:这些API遵循标准Java SE规范。 - **Java扩展API**:即javax包,通常包括一些企业级应用相关的扩展功能。 - **企业和组织提供的Java类库**:例如org.apache等第三方库。 - **Android特有的API**:这些API是专门为Android平台定制的,提供了丰富的功能支持,如图形界面、多媒体、网络通信等。 - **特点**:尽管Android中很多API的名字与标准Java相似,但其实现细节和功能集并不完全相同。Android API更专注于移动应用开发的需求。 **核心库目录** - **位置**:核心Java库主要位于`frameworks/base/core/java/`目录下,其中包含了Android框架的核心Java类和接口。 - **组织方式**:这些类和接口按照Java包的关系进行组织,例如`android/app/Activity.java`表示`android.app`包中的`Activity`类。 **API描述文件** - **文件位置**:API描述文件存储在`frameworks/base/api/current.xml`中,用于描述每个类、方法和字段的信息。 - **标签使用**:通过一系列XML标签如`<package>`、`<class>`、`<interface>`等来描述类和接口的属性,如继承关系、是否为抽象类等。 - **@hide标记**:如果一个类或方法的文档注释中包含了`@hide`,那么该元素不会被视为公共API的一部分,这意味着开发者无法在官方文档中查找到这些内容,它们可能仅供内部使用或未来版本中可能会发生变化。 **示例:Activity类** - **定义**:`Activity`类位于`android.app`包中,继承自`ContextThemeWrapper`,并实现了多个接口。 ```java public class Activity extends ContextThemeWrapper implements LayoutInflater.Factory, Window.Callback, KeyEvent.Callback, OnCreateContextMenuListener, ComponentCallbacks { public Activity() { ++sInstanceCount; } // 省略其他成员变量和方法 } ``` 以上介绍了Android系统中Dalvik虚拟机的基本概念和内部实现,以及Android Java环境的主要组成部分和组织结构。对于开发者而言,理解这些基础知识有助于更好地掌握Android应用的开发流程和技术细节。























剩余30页未读,继续阅读


- 粉丝: 360
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


最新资源
- 公共计算机课教师信息化教学能力提升策略研究(1).docx
- 人工智能教育帮助学生(1).pptx
- 计算机信息技术有限公司商业计划书-样本(1).doc
- 浅析电视节目在互联网传播中的问题与对策(1).docx
- 大学毕业论文-—基于asxp的企业网站的设计与实现图书电子交易系统(1).doc
- 互联网金融背景下商业银行经营模式的转型(1).doc
- 计算机基础知识试题及答案(全)..(1).pdf
- 2023年C#实验三实验报告(1).doc
- ARCGIS中坐标转换(1).pdf
- 互联网+背景下高校智慧校园建设应用分析(1).docx
- 互联网医疗咨询服务协议(标准版)(1)(1).docx
- jetlinks-community-物联网设备接入与数据处理资源
- 计算机顶岗实习报告(1)(1).doc
- jap-API接口实战资源
- 2023年和针对电子秤的全套前端解决方案(1).doc
- 互联网+背景下高校完全学分制质量管理制度研究(1).docx


