Overview
Framework定义了客户端和服务端的组件功能以及接口。
客户端
Activity类等
服务端
两个重要的类
- WindowManagerService(WmS): 为所有的应用程序分配窗口,并管理这些窗口。大小、叠放次序、隐藏或显示窗口。
- ActivityManagerService (AmS): 管理所有应用程序中的Activity
两个消息处理类
- KeyQ类: WmS内部类,继承于KeyInputQueue。创建KeyQ对象后,立即启动一个线程,不断读取用户的UI操作消息,比如按键、触摸屏等,并放到消息队列QueueEvent中。
- InputDispatcherThread:也会创建一个线程,不断从消息队列QueueEvent中取出用户消息,过滤后发送给当前活动的客户端程序。
Linux驱动
包括SurfaceFlinger和Binder,每一个窗口对应一个Surface,SF 驱动作用是把各个Surface显示到同一个屏幕上。