文章目录

image
如图所示主要分4层
1.运行在Dalvik虚拟机(基于寄存器的java虚拟机,运行速度更快)上的系统应用。

2.应用框架层(framework):包括客户端和服务端
其中,服务端主要组件有:
WmS(管理Window大小调节叠放层次、隐藏或显示)
AmS(管理Activity并负责与应用程序主进程ActivityThread进行通信)
WmS.KeyQ(读取用户的操作,存放在消息队列QueueEvent中)
InputDispatchThread(取出QueueEvent中的消息,分发给应用)
客户端组件有:
ActivityThread:主线程UI线程,一个应用一个,入口是static main
Activity:应用运行的最小单元,一个应用多个
Window:提供通用窗口操作API
PhoneWindow:继承window类,对FrameLayout进行包装并提供操作API
PhoneWindow.DecorVeiw:对普通FrameLayout进行修饰相应特定按键消息
ViewRoot:继承Handler,接收WmS的通知
ViewRoot.V:继承Binder,向WmS提供IPC接口
WindowManage:客户端和WmS之间的代理

3.系统运行库:NDK使用C\C++编写主要是.so文件。主要包括C标准库、OpenGL ES、SQLit、Webkit和Dalvik虚拟机等。

4.linux内核层,包括驱动、内存管理、进程管理、网络协议栈等。