Android大致可以分为四层架构:Linux内核层、系统运行库层、应用框架层和应用层。 其中,Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,就比如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。 而系统运行库层是通过一些C/C++库来为Android系统提供主要的特性支持。举个例子吧,SQLite库提供了数据库的支持,OpenGL|ES库提供了浏览器内核的支持等。 同样的,在这一层还有Android运行时库,它主要提供了一些核心的库,能够允许开发者使用java语言来编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机,它是的每一个Android应用都能运行在独立的进程当中,并且拥有一个自己的Dalvik虚拟机实例。相比较于Java虚拟机,Dalvik是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况作了优化处理。 然后就是应用框架层了。这一层主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序。 最后一个就是应用层了。所有安装在手机上的应用程序都是属于这一层的,比如系统自带的联系人、短信等程序,或者是我们从Google Play上下载的小游戏,当然,也还包括我们自己开发的程序。
顺便谈一下Android系统的四大组件吧,Android系统四大组件分别是活动(Activity)、服务(Service)、广播接收器(Broadcast Receiver)和内容提供器(Content Provider)。其中活动是所有Android应用程序中的门面,凡是我们看得到的东西,都是放在活动中的。而服务就比较低调了,我们无法看到它,但它会一直在后台默默的运行,及时用户退出了应用,服务仍然是可以继续运行的。广播接收器允许你的应用接收来自各处的广播消息,比如电话、短信等,当然你的应用同样也可以向外发出广播消息。内容提供器则为应用车行徐之间共享数据提供了可能,比如你想要读取系统电话薄的联系人,就需要通过内容提供器来实现。