android基础学习

从上面的描述就可以知道,每一个Activity组件都有一个对应的ViewRoot对象、View对象以及WindowManager.LayoutParams对象。这三个对象的对应关系是由WindowManagerImpl类来维护的。具体来说,就是由WindowManagerImpl类的成员变量mRoots、mViews和mParams所描述的三个数组来维护的。例如,假设一个应用程序进程运行有两个Activity组件,那么WindowManagerImpl类的成员变量mRoots、mViews和mParams所描述的三个数组的大小就等于2,其中,mRoots[0]、mViews[0]和mParams[0]对应于第一个启动的Activity组件,而mRoots[1]、mViews[1]和mParams[1]对应于第二个启动的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对象是多对一的关系。

相关推荐
心怀梦想的咸鱼34 分钟前
UE5 第一人称射击项目学习(四)
学习·ue5
AI完全体37 分钟前
【AI日记】24.11.22 学习谷歌数据分析初级课程-第2/3课
学习·数据分析
Mephisto.java1 小时前
【大数据学习 | Spark-Core】Spark提交及运行流程
大数据·学习·spark
大白要努力!1 小时前
Android opencv使用Core.hconcat 进行图像拼接
android·opencv
PandaCave2 小时前
vue工程运行、构建、引用环境参数学习记录
javascript·vue.js·学习
yuwinter2 小时前
鸿蒙HarmonyOS学习笔记(2)
笔记·学习·harmonyos
red_redemption2 小时前
自由学习记录(23)
学习·unity·lua·ab包
天空中的野鸟2 小时前
Android音频采集
android·音视频
幽兰的天空3 小时前
默语博主的推荐:探索技术世界的旅程
学习·程序人生·生活·美食·交友·美女·帅哥
沐泽Mu3 小时前
嵌入式学习-C嘎嘎-Day05
开发语言·c++·学习