Android笔记之——framework框架

本文详细阐述了Android程序框架的三大组成部分:服务端、客户端和Linux驱动层,包括核心类及其作用,如WindowManagerService、ActivityManagerService、ActivityThread等,以及客户端如何通过消息传递与服务端交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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是消息队列的传输。 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值