Window 和windowManager源码分析

Android 9.0系统源码_窗口管理(三)WindowManagerService对窗口的管理过程 通过Android9系统源码分析WindowManagerService对窗口的管理过程 阅读详情

所有需要显示在屏幕上的内容都要通过windowManager

windowManager 是一个接口 三个方法 add remove update

他的具体实现类是windowManagerImpl类(桥接模式)
具体的实现是交给了windowManagerGlobal处理

WindowManagerGlobal Addview的过程
(每个window 都有对应的 VIEW VR )

  1. 检查参数是否合法
  2. 创建ViewRootImpl 并将 view添加到列表中 在其中有几个列表
    ArrayList mviews window 对应view ArrayList
    mRoots window 对应的 VR ArrayList mDyingview
    被删除的view对象 ArrayList<> mParams window 对应的参数布局
  3. 通过viewRootImpl 的SetView方法完成 SetView通过requestLayout 完成异步请求 接着通过windowSession 完成最终的window添加过程 mWindowSession
    是IwindowSession一个Binder对象 实现类是session (IPC调用)
    Session内部通过WMS来实现window 的添加 wms会为每一个应用保留一个session 由此进入到framework层

Activity 中window 的创建过程
1. Activty 所属的window 对象是同过PolicyManager的makenewWindow方法实现的
2. 策略类 真正的实现类是policy 而policy中makeNewWindow方法返回的是phoneWindow
由此可见window的具体实现是phoneWindow
至此Activity 的window已经创建完成
那么Activity 的视图是如何附属在window 上的呢?
1.看setContentView 方法
2.转移至Phonewindow 的setContentView 方法上
1.创建DecorView 顶级布局
2.将view 添加至mContentParent 上
3.回调Activity的onContentChanged 方法通知视图已经改变。

Android 9.0系统源码_SystemUI(九)PhoneWindowManager构建状态栏和导航栏视图窗口区域坐标的流程解析 通过Android9.0的系统源码梳理PhoneWindowManager构建状态栏和导航栏占位视图窗口区域坐标的流程 阅读详情

相关推荐

PhoneWindowManager.java

修改源码:PhoneWindowManager.java---------frameworks\base\policy\src\com\android\internal\policy\impl 长按Menu键的监听

Android源码分析之理解Window和WindowManager

Window和WindowManager概述Window是一个抽象类,它的具体实现是PhoneWindow,创建一个Window通过WindowManager 就可以完成。WindowManager是外界访问Window的入口,它的具体实现在WindowManagerService中,WindowManager和WindowManagerService的交互是一个IPC的过程。Android中所有的

一个码农的博客 1万+

scRNA-seq的fastq文件处理流程——持续更新

获得了一批新的scRNA-seq的fastq.gz文件,每个样本的数据形式为: 我打算使用10X cellranger处理fastq.gz文件,下载及安装方式在官网:https://support.10xgenomics.com/single-cell-gene-expression/software/downloads/2.0这个网址写了10X cellranger处理fastq.gz文件的命名规则https://support.10xgenomics.com/single-cell-gene-expr

watermel__的博客 3198

简述Android中Window Manager的源码解读

请注意,这只是一个非常简化的示例,实际的 Android 系统 Window Manager 源码非常复杂,涉及到多个类和模块的协同工作,并且与其他系统组件(如 View 系统、Activity 管理器等)紧密耦合。在分析实际的源码时,需要深入了解 Android 系统的架构和各个组件之间的交互关系。它协调应用程序窗口与系统窗口(如状态栏、导航栏等)的显示,确保各个窗口能够正确地呈现给用户,并处理窗口之间的层次关系、触摸事件分发等。

challenge51all的专栏 785

RK3588 EVB开发板原理图讲解【六】

该原理图展示了eMMC Flash与主控芯片之间的连接关系,以及相关的电源、信号线路和去耦电容等。

weixin_48721556的博客 1165

高斯投影坐标正反算算法(python)

高斯坐标正反算算法,在正算的时候,y的第一个数字表示是用几度带换算的,第二个数字和第三个数字表示带号。该程序是根据武汉大学出版社出版的第三版的《大地测量学基础》编写, 用于课程实验学习。

weixin_64338372的博客 4586

WindowManagerService

1

yzpbright的博客 490

Android BluetoothSocket

BluetoothSocket是Android中用于在蓝牙设备之间进行数据传输的一种Socket。它提供了一种类似于TCP/IP协议的数据传输方式,可以在两个设备之间建立一个虚拟的通信管道,使得两个设备之间可以进行数据的传输和接收。BluetoothSocket可以用于客户端和服务端之间的通信,通过BluetoothSocket可以实现数据的双向传输。

liuning1985622的博客 1477

Window和WindowManager知识点总结

前言 本文为《Android开发艺术探索》(下面简称“艺术探索”)第八章读书笔记。现在应届生真的好强,比如这位的简书minmin_1123的简书,对《艺术探索》各章节的内容总结的有条有理。 Activity,Window,WindowManager有什么联系 Window表示一个窗口的概念,在日常开发中直接接触Window的机会并不多,但是在某些特殊时候我们需要在桌面上显示一个类似悬浮窗的东西,那么这种效果就需要用到Window来实现。Window的具体实现位于WindowManagerService

zjy764219923的专栏 765

微信小程序消息推送实战:从模板消息到订阅消息的进阶指南

本文详细解析了微信小程序消息推送的核心机制,重点对比了模板消息与订阅消息的差异与应用场景。模板消息适用于支付成功等强即时性业务回执,而订阅消息则需用户授权,更适合物流提醒等可预期通知。文章提供了从授权、配置到发送的完整实战指南,并分享了常见的避坑技巧与性能优化建议,帮助开发者构建高效、合规的用户触达体系。

weixin_29231027的博客 593

芒果YOLOv7改进48:主干篇:独家首发改进:目标检测新范式骨干PPHGNetv2改进版,充分融合信息特征,提升YOLOv7检测能力

YOLOv7代码改进实践 | 独家首发改进 PPHGNetv2 改进版结构

包括YOLOv5、YOLOv7、YOLOv8等模型改进 1847

android中window和windowManager源码分析(android-api-23)

android dialog实现原理 window和windowManager原理 window的添加和删除 addView() removeView()

lv1317039693的博客 914

ShowDoc item_id 未授权SQL注入漏洞复现

2024年6月,ShowDoc官方发布新版本修复了一个SQL注入漏洞。鉴于该漏洞无前置条件,易于利用,且默认情况下可暴破用户token获取系统后台权限,建议所有使用该系统的企业尽快升级修复,以确保系统安全。

0xSec 2357

Android解析WindowManager(一)WindowManager体系

前言 WindowManagerService(WMS)和AMS一样,都是Android开发需要掌握的知识点,同样的,WMS也很复杂,需要多篇文章来进行讲解,为何更好的理解WMS,首先要了解Windo...

zzz19的博客 152

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Android Window和WindowManager

文章目录1 Window和WindowManager2 Window的内部机制2.1 Window的添加过程2.2 Window的删除过程2.3 Window的更新过程2.4 总结操作Window的流程走向3 Window的创建过程3.1 Activity的Window创建过程3.2 Dialog的Window创建过程3.3 Toast的Window创建过程 Window 是一个抽象类,它的具体实...

Vincent的博客 700

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Android窗口机制(三)Window和WindowManager的创建与Activity

前两篇文章跟大家介绍了Window,PhoneWindow,DecorView他们间的联系,以及他们之间的理解。讲到Window大家肯定会想到常见的WindowManager,两者肯定是发生过关系的。此外对于Window和WindowManager的创建问题,正是下面要介绍的。 了解他们前,我们先来看个结构ViewManager/** Interface to let you add and rem

HoHohong的博客 1641

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

深入理解Window、WindowManager

本篇主要分为3个部分: 1、通过官方文档注释,来理解Window、WindowManager; 2、通过分析Activity中setContentView()源码,来理解Window在Activity中的工作流程; 3、通过分析Dialog源码,来理解Window在Dialog中的工作流程; 源码角度理解Window、WindowManager Window相关的主要有以下几个类、接口:

super_wk的博客 1199

Android面试题-Window和WindowManager(26题)

Android面试题之Window和WindowManager,包括View的事件分发、三大流程、滑动、滑动冲突等内容。 本文是我一点点归纳总结的干货,但是难免有疏忽和遗漏,希望不吝赐教。 转载请注明链接: 有帮助的话请点个赞!万分感谢! Android面试题-Window和WindowManager(26题) 版本:2018/8/5-1(23:0) Andro...

feather(猎羽) 1966

android layoutparams设置坐标位置_直面底层:探索 Android 中的 Window

本文作者作者:HiDhl链接:https://juejin.im/post/6844904180306411528本文由作者授权发布。直面底层系列文章上期:直面底层:Android 渲染机制, Choreographer 必须得了解1引言这是 Android 10 源码分析系列分支:android-10.0.0_r14全文阅读大概 10 分钟在之前的文章 0xA06 Android 10...

weixin_39882589的博客 980

理解Window和WindowManager

本章重点: indow是一个抽象类,具体实现是 PhoneWindow 。不管是 Activity 、 Dialog 、 Toast 它们的视图都是附加在Window上的,因此Window实际上是View的直接管理者。WindowManager 是外界访问Window的入口,通过WindowManager可以创建Window,而Window的具体实现位于 WindowManagerSer...

qq_20967339的博客 400

Android Window源码分析

window的添加 通过WindowManager的addView实现添加过程 @Override public void addView(@NonNull View view, @NonNull ViewGroup.LayoutParams params) { applyDefaultToken(params); mGlobal.addView(v...

hesheng1024的博客 653
上一篇: Activity启动过程分析
下一篇: (一)启动进程Init
Nela
博客等级 码龄11年 9粉丝 71原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值