,它提供Java编程语言核心类库中的大部分功能。
Dalvik虚拟机用来运行Android应用实例。每一个Android应用程序都是Dalvik虚拟机中的实例,运行在它们自己的进程中。Dalvik虚拟机设计成在一个设备中可以高效地运行多个虚拟机实例。Dalvik虚拟机的可执行文件格式是.dex,dex格式是专为Dalvik设计的一种
压缩格式,适合内存和处理器有限的系统。Dalvik虚拟机依赖于Linux内核提供基本功能,如内存管理等。
3.库集合(Libraries)
Android包含一个C/C++库的集合,他们通过Android的应用程序框架(Application Framework)提供给上层的应用,帮助上层应用实现一些常见的功能。这些库包含以下内容:
* 系统C库:标准C系统库(libc)的BSD(Berkeley Software Distribution)衍生,它是专门为基于嵌入式Linux设备定制的。
* 媒体库:基于PacketVideo的OpenCORE。它支持回放和记录当下众多流行的音频、视频和静态图像文件格式,包括MPEG4、H.264、MP3、AAC、JPG、PNG等。
* 界面管理:管理显示子系统的访问,无缝组合多个应用程序的二维和三维图形层。
* LibWebCore:新式的Web浏览器引擎,用来驱动Android浏览器和内嵌的Web视图。
* SGL:底层的2D图形引擎。
* 3D库:基于OpenGL ES 1.0 APIS的实现。它可以使用硬件3D加速(当硬件设备支持时)或内置的高度有话的3D软件光栅。
* FreeType:用于位图和适量字体显示。
* SQlite:所有应用程序都可以使用的强大的轻量级的关系数据库引擎。
4.应用框架(Application Framework)
作为一个开放的开发平台,应用框架使开发者能够很容易地开发功能强大的应用程序。开发者可以自由地利用所有的设备硬件资源、访问位置信息、运行后台服务、设置定时、向状态栏添加通知,等等。
应用框架包含以下组件:
* 丰富而又可扩展的视图(Views):包括按钮(Button)、编辑框(EditView)、文本框(TextView)、网格(Grids)、
列表(ListView)等。灵活运用这些组件可以快速方便的创建良好的用户交互界面。
* 内容提供器(Content Providers):因为Android是基于Linux内核的,因此,不同于Windows下的应用,Android应用的数据都是私有的,不允许其他应用随便访问。而Content Provider就是提供一种服务,通过这个服务应用程序之间可以实现数据间的共享。
* 资源管理器(Resource Manager):Android中的资源很多,包括图像、用户界面、字体、颜色、UI(User Interface)组件的ID等都可以成为资源,都是通过资源管理器来进行统一的管理。
* 通知管理器(Notification Manager):它在不影响用户正常操作和使用设备的时候在状态栏上提供消息的提示。例如有短信来的时候,Android自动会将这个消息提示在状态栏上,以便用户及时发现。
* 活动管理器(Activity Manager):管理应用程序的生命周期,并且控制着应用的
导航,扮演控制器的角色。
* 窗口管理器(Window Manager):管理所有启动的窗口。
* 位置管理器(Location Manager):管理地图服务相关功能。
* 电话管理器(Telephone Manager):用来管理电话相关功能。
* 包管理器(Package Manager):管理所有安装在Android系统内的应用程序。
5.应用程序(Applications)
应用层包含Android的核心应用程序,如Email客户端、SMS短信服务程序、日历、地图、浏览器、联系人管理程序等。另外,开发人员基于Android SDK开发的应用程序,也都是位于这一层。所有应用程序都是采用Java编程语言写的。因此,这一层也是开发人员展示才华的舞台。
和开发人员开发的第三方应用程序一样,作为Andro