转自:http://blog.csdn.net/finewind/article/details/46324507html
1. Android系统架构:java
android系统架构采用了分层架构的思想,以下图所示,从上到下共4层,分别为:应用程序层、应用程序框架层、系统库和android运行时层、linux内核层。linux
每层功能简要介绍以下:android
应用程序层(JAVA应用程序):c++
该层提供一些核心应用程序包,例如电子邮件、短信、日历、地图、浏览器和联系人管理等。同时,开发者能够利用Java语言设计和编写属于本身的应用程序,而这些程序与那些核心应用程序彼此平等、友好共处。apache
应用程序框架层(JAVA框架):浏览器
该层是Android应用开发的基础,开发人员大部分状况是在和她打交道。应用程序框架层包括活动管理器、窗口管理器、内容提供者、视图系统、包管理器、电话管理器、资源管理器、位置管理器、通知管理器和XMPP服务十个部分。在Android平台上,开发人员能够彻底访问核心应用程序所使用的API框架。而且,任何一个应用程序均可以发布自身的功能模块,而其余应用程序则能够使用这些已发布的功能模块。基于这样的重用机制,用户就能够方便地替换平台自己的各类应用程序组件。安全
系统库和android运行时层(本地框架和JAVA运行环境):服务器
系统库包括九个子系统,分别是图层管理、媒体库、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。网络
Android运行时包括核心库和Dalvik虚拟机,前者既兼容了大多数Java语言所须要调用的功能函数,又包括了Android的核心库,好比android.os、android.net、android.media等等。后者是一种基于寄存器的java虚拟机,Dalvik虚拟机主要是完成对生命周期的管理、堆栈的管理、线程的管理、安全和异常的管理以及垃圾回收等重要功能。
LINUX内核层:
Android核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也是做为硬件与软件栈的抽象层。
驱动:显示驱动、摄像头驱动、键盘驱动、WiFi驱动、Audio驱动、flash内存驱动、Binder(IPC)驱动、电源管理等。
2. android源码目录结构:
参考资料:
android系统架构: http://blog.csdn.net/wangloveall/article/details/8033725
android源码结构: http://www.cnblogs.com/shaweng/p/4043573.html