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对象是多对一的关系。

相关推荐
DKPT2 分钟前
Java组合模式实现方式与测试方法
java·笔记·学习·设计模式·组合模式
zhangphil24 分钟前
Android理解onTrimMemory中ComponentCallbacks2的内存警戒水位线值
android
你过来啊你34 分钟前
Android View的绘制原理详解
android
菜菜why2 小时前
MSPM0G3507学习笔记(一) 重置版:适配逐飞库的ti板环境配置
笔记·学习·电赛·嵌入式软件·mspm0
夜阑卧听风吹雨,铁马冰河入梦来3 小时前
Spring AI 阿里巴巴学习
人工智能·学习·spring
移动开发者1号3 小时前
使用 Android App Bundle 极致压缩应用体积
android·kotlin
板栗焖小鸡3 小时前
STM32-PWM驱动无源蜂鸣器
stm32·学习
开开心心就好3 小时前
批量PDF转换工具,一键转换Word Excel
开发语言·前端·学习·pdf·电脑·word·excel
移动开发者1号4 小时前
构建高可用线上性能监控体系:从原理到实战
android·kotlin
Code季风4 小时前
Gin 中间件详解与实践
学习·中间件·golang·go·gin