android基础学习

从上面的描述就可以知道,每一个Activity组件都有一个对应的ViewRoot对象、View对象以及WindowManager.LayoutParams对象。这三个对象的对应关系是由WindowManagerImpl类来维护的。具体来说,就是由WindowManagerImpl类的成员变量mRoots、mViews和mParams所描述的三个数组来维护的。例如,假设一个应用程序进程运行有两个Activity组件,那么WindowManagerImpl类的成员变量mRoots、mViews和mParams所描述的三个数组的大小就等于2,其中,mRoots0、mViews0和mParams0对应于第一个启动的Activity组件,而mRoots1、mViews1和mParams1对应于第二个启动的Activity组件。
Android应用程序窗口(Activity)实现框架简要介绍和学习计划_android创建c++层窗口-CSDN博客

在WindowManagerService服务中,每一个Android应用程序进程都对应有一个SurfaceComposerClient对象。由于每一个SurfaceComposerClient对象都关联有一个SurfaceSession对象,因此,我们又可以推断出每一个Android应用程序进程在WindowManagerService服务中都对应有一个SurfaceSession对象。由于每一个SurfaceSession对象所属的Session对象是一个Binder本地对象,并且它的Binder代理对象是保存在Android应用程序进程这一侧的ViewRoot类的静态成员变量sWindowSession中,因此,我们又可以推断出每一个Android应用程序进程在WindowManagerService服务都有一个对应的Session对象。综合起来就是,每一个Android应用程序进程在WindowManagerService服务这一侧对应有一个Session对象、一个SurfaceSession对象以及一个SurfaceComposerClient对象。由于每一个Android应用程序进程都可以运行若干个Activity组件,因此,我们又可以说,Activity组件与WindowServiceManager服务这一侧的Session对象、SurfaceSession对象以及SurfaceComposerClient对象是多对一的关系。

相关推荐
dadaobusi2 小时前
学习:奈奎斯特
学习
奈斯先生Vector3 小时前
当模型版本不断变化,RelayRouter 能否帮助 AI 应用摆脱深度绑定
android·java·人工智能·开源·aigc
TimeFine3 小时前
让强模型做“总工”,让高性价比模型写代码
android
传奇开心果编程4 小时前
【Go入门练中学】第2课:条件与循环
后端·学习·golang
又见情义4 小时前
RK3568 Android 13 屏蔽 healthd 电池日志经验分享
android
小小de风呀4 小时前
de风——【从零开始学C++】(二十)红黑树封装map和set
c++·学习
爱吃苹果的日记本5 小时前
数据结构第四课—线性表Linear List
数据结构·学习
昌原的儿子LEO5 小时前
ARM 汇编核心知识点总结
嵌入式硬件·学习
Ray Wang5 小时前
Context上下文工程
python·学习·ai编程
百里香酚兰5 小时前
【Unity学习笔记】如何把粉色Prefab还原
笔记·学习·unity