1、Android软件栈的总体结构
- 用户应用程序
- JAVA SDK(活动/服务、UI/图形/视图、资源/ContentProvider、电话/照相机、多媒体、SQLite数据库、HTTP/连接、Java SE/Java Apache)
- Dalvik VM虚拟机
- 核心C库(媒体、SQLite、OpenGL、WebKit、FreeType、图形)
- LINUX内核(设备驱动程序、资源访问、电源管理、操作系统)
2、Dalvik VM
Dalvik VM虚拟机是Google的用于移动设备的Android平台的一个主要部件,Android中最终的可执行代码不是基于Java字节码,而是基于.dex文件。无法直接执行Java字节码,必须首先得到Java类文件,然后将它们转换为可链接的.dex文件。
- 早期版本中删除了JIT(Just-In-Time)编译器,在2.3版本又添加了JIT,原因为可以提高原始性能;
- 使用寄存器而不是使用栈作为主要数据存储单元,这样可以将指令减少到30%;
- 每个应用程序在独立的Dalvik VM虚拟机运行;
- 是Android平台的入口,应用程序通过Dalvik VM访问核心库;
3、Android SDK
用于在Android上开发最终用户应用程序的高级Androi