Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。如下图
1.1应用程序层
Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。应用程序都是使用JAVA语言编写的。
1.2应用程序框架
开发人员可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用.隐藏在每个应用后面的是一系列的服务和系统, 其中包括;
①丰富而又可扩展的视图(Views),可以用来构建应用程序,它包括列表(Lists),网格(Grids),文本框(Text boxes),按钮(Buttons), 甚至可嵌入的web浏览器。
②内容提供器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库), 或者共享它们自己的数据
③资源管理器(Resource Manager)提供 非代码资源的访问,如本地字符串,图形,和布局文件(Layout files )。
④通知管理器 (Notification Manager) 使得应用程序可以在状态栏中显示自定义的提示信息。
⑤活动管理器( Activity Manager) 用来管理应用程序生命周期并提供常用的导航回退功能。
1.3系统运行库
Android 包含一些C/C++库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务
1.4系统内核
Android 是运行于Linux kernel之上,但并不是GNU/Linux。因为在一般GNU/Linux 里支持的功能,Android 大都没有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以Bionic 取代Glibc、以Skia 取代Cairo、再以opencore取代FFmpeg等 等。Android 为了达到商业应用,必须移除被GNU GPL授权证所约束的部份,例如Android将驱动程序移到 Userspace,使得Linux driver 与 Linux kernel彻底分开。Bionic/Libc/Kernel/ 并非标准的Kernel header files。Android 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数、数据结构与宏。Android 的 Linux kernel控制包括安全(Security),存储器管理(Memory Management),程序管理(Process Management),网络堆栈(Network Stack),驱动程序模型(Driver Model)等。
Android的相关开发分为Android设备的开发和Android应用程序开发两个方面,Android框架层对这两个方面的方法都具有支持作用.
那么Android分了四层,那么对我们做Andorid开发人员来讲,了解Android特性至关重要,那么Android有何特性呢?
①支持组件的重用和替换
②Dalvik虚拟机对移动设备做了优化,基于寄存器,速度快于Java
③内部集成WebKit引擎
④优化的图形库包括2D和3D
⑤Sqlite用作数据存储
⑥多媒体、GSM电话、GPS等等引用
⑧丰富的开发环境(模拟器、调试、内存、性能分析图标,Eclipse开发环境插件等等)