Android笔记之——framework框架

来源:互联网 发布:淘宝刷心悦会封号吗 编辑:程序博客网 时间:2024/06/15 16:01
Android笔记之——framework框架
     任何程序都有一个入口地址.Android的程序框架包括了三个主要的部分,分别是服务端,客户端和Linux驱动层。
服务’包括了两个类,一个是WindowManagerService(WMS)和ActivityManagerService(AMS).WMS的作用是为所有的程序分配窗口,并管理这些窗口,Ams的作用是管理这其中的Activity。初次之外,服务端还包括了两个消息类。
        1.KeyQ类,为WMS的内部类,继承于KeyInputQueue类。被创立后,会监听一些系统消息,例如按键,触屏等等。再将消息放入QueueEvent中。
         2.InputDispatcherThread类。该线程类创立后不断地从QueueEvent中取出用户消息,并过滤后,传入当前的应用程序中。
客户端包括了以下几个类。
        ActivityThread类:该类为应用程序的主线程类。所有APK都有而且仅有一个ActivityThread类。           Activity类,一个APK可以包含多个Activity类,由用户选择,再由ActivityThread主类选择加载那个Activity。           PhoneWindow类。该类继承于Window类,内部包括了一个Decor view对象,是把一个frame layout的对象进行包装。           Window类,提供通用的窗口操作API,WMS管理的窗口并不是Window类,而是一个View 或者是一个ViewGroup类。一般是一个DecorView类,是WMS管理的容器。           DecorView类,该类是frame layout的一个子类。是phone window的内部类。Decor view就是对普通的frame view 进行一个统一的修饰,比如加入了title等等。           View root 类,WMS管理客户端窗口时需要客户端进行某种操作,这些都是异步消息完成的。view Root是继承于handler类。主要是用于接收WMS的消息队列。           W类,继承于binder类,是view Root的内部类。           WindowManager类,客户端需要申请一个窗口时,具体点的创建窗口任务是由WMS来实现的。客户端不可以和WMS直接通信。
Linux驱动层。
        两个部分,一个是Surface Flingger 和Binder.SF是将各个surface view放到对应的屏幕上,而binder是消息队列的传输。 
0 0
原创粉丝点击