Framework定义了客户端组件和服务端组件功能及接口。以下阐述中,“应用程序”一般是指“.apk”程序。
框架中包含三个主要部分,分别为服务端、客户端和Linux驱动。
服务端
服务端主要包含两个重要类,分别是WindowManagerService(WmS)和ActivityManagerService
(AmS)。WmS的作用是为所有的应用程序分配窗口,并管理这些窗口。包括分配窗口的大小,调节各窗口的叠放次序,隐藏或者显示窗口。AmS的作用是管理所有应用程序中的Activity。
除此之外,在服务端还包括两个消息处理类。
- KeyQ类:该类为WmS的内部类,继承于KeyInputQueue类,KeyQ对象一旦创建,就立即启动一个线程,该线程会不断地读取用户的UI操作消息,比如按键、触摸屏、trackball、鼠标等,并把这些消息放到一个消息队列QueueEvent类中。
- InputDispatcherThread类:该类的对象一旦创建,也会立即启动一个线程,该线程会不断地从QueueEvent中取出用户消息,并进行一定的过滤,过滤后,再将这些消息发送给当前活动的客户端程序中。
客户端
客户端主要包括以下重要类。
- ActivityThread类:该类