安卓是Google在Linux平台上开发的一个开放源码操作系统。其中包含了操作系统、用户界面和应用程序——手机上运行的所有软件都是必需的,并且没有任何以前阻碍手机行业创新的特殊障碍。安卓系统使用了WebKit浏览器引擎,拥有触摸屏、高级图形显示和上网功能,用户可以在手机上查看电子邮件,搜索网站,观看视频节目,等等;与iPhone等其他手机相比,安卓系统更加强调搜索功能,其界面更加强大,可以说是一个集成了所有Web应用的单一平台。下面是Android的系统架构。 android系统框架设计与操作系统一样,android也是采用分层结构的体系结构。android在结构上分为四层,由高层到低层分别为应用层、应用框架层、系统运行库层和操作系统内核层。 1.应用程序安卓和其他一些核心的软件包一起发布,这些软件包包括email客户端、短信程序、日历、地图、浏览器、联系人管理程序等等。使用JAVA语言编写了所有应用程序。 安卓的系统结构 2.应用程序框架。开发者还可以完全访问核心应用所使用的API框架。这个应用程序的体系结构设计简化了组件的重用;任何一个应用程序都可以发布功能块,而其他任何应用程序都可以使用它发布的功能块(不会超过框架的安全限制)。类似地,应用程序复用机制让用户能够方便地替换程序组件。 每个应用程序背后隐藏着一系列服务和系统,包括; *可用于构建应用程序的丰富和可扩展视图(Views),包括列表(lists)、网格(grids)、文本框(textboxes)、按钮(buttons),甚至是可嵌入web浏览器。 *ContentProviders(ContentProviders)允许应用程序访问其他应用程序的数据(例如联系人数据库),或共享其自身的数据。 *ResourceManager(ResourceManager)用于访问非代码资源,例如本地字符串、图形和布局文件(layoutfiles)。 公告管理器(NotificationManager)允许应用程序将定制的提示信息显示在状态栏上。 ActivityManager(ActivityManager)用于管理应用程序的生命周期,并提供常用的导航和返回功能。 要了解更多细节以及如何从头编写应用程序,请参考如何编写Android应用程序。 3.系统运行库。1)程序库 Andriod包含一些C/C++库,它们可以为Andriod系统的不同组件所用。他们通过Android应用框架来为开发者服务。有些核心库如下: SystemCustomer-从BSD继承来的标准C系统函数库(libc),它是专门为基于embeddedlinux的设备定制的。 *基于PacketVideoOpenCORE的介质库;该库支持多种常用的音频、视频格式的播放和录制,同时还支持静态图像文件。本发明采用MPEG4,H.264,MP3,AAC,AMR,JPG,PNG的编码格式。 *SurfaceManager-显示子系统的管理,提供了2D和3D图层对多个应用程序的无缝融合。 *LibWebCore-一款最新的web浏览器引擎,支持Android浏览器和嵌入式web视图。 *SGL-底层的二维图形引擎。 *3Dlibraries-基于OpenGLES1.0APIs实现;这个库可以使用(如果可用的话)硬件3D加速,或者高度优化的3D软加速。 *FreeType-位图(bitmap)和向量(vector)字体显示。 *SQLite-一种轻薄、关系数据库引擎,可供所有应用程序使用。 2)Android运行库 安卓包含一个核心库,它提供JAVA编程语言核心库的大部分功能。 每个Android应用程序都在其自己的进程中运行,并且都有Dalvik虚拟机的独立实例。达维克被设计为一台设备能够同时有效地运行多个虚拟系统。dex的Dalvik可执行文件,用于Dalvik虚拟机执行(.dex),格式文件为小内存使用做了优化。与此同时,虚拟机是基于寄存器的,所有类都通过JAVA编译器编译,然后通过SDK中的"dx"工具转换为.dex格式,由虚拟机执行。 虚拟机Dalvik依赖于linux内核的某些功能,如线程机制和底层内存管理机制。 4.Linux内核安卓的核心系统服务是基于Linux2.6内核的,比如安全、内存管理、进程管理、网络协议栈以及驱动模式。在硬件和软件栈之间,Linux内核也是一个抽象层。 |
|