android 11 SystemUI 状态栏打开之后的界面层级关系说明之一

news2024/11/17 11:49:32

在这里插入图片描述

比如WiFi 图标的父layout为:

Class Name: ButtonRelativeLayout
Class Name: QSTileView
Class Name: TilePage
Class Name: PagedTileLayout
Class Name: QSPanel
Class Name: NonInterceptingScrollView
Class Name: QSContainerImpl
Class Name: FrameLayout
Class Name: NotificationsQuickSettingsContainer
Class Name: NotificationPanelView
Class Name: NotificationShadeWindowView
定义在文件:

QSTileView 是如何创建的?

QSPanel.addTile 被调用的流程:

在这里插入图片描述
在 QSFragment 的 onViewCreated 方法被调用 。

系统何时创建QSTileHost

在 QSTileHost 的 getDefaultSpecs 方法中加载系统默认的 tiles.

点击方法是如何指定的?

每一个都是 QSTileImpl 的子类 ,有定义点击方法.

QSTileHost 来自与dagger的注入

调用 QSTileHost 的 getTiles方法

QSTileHost 的Tiles来自哪里?

何时创建一个WifiTile

1 QSFactoryImpl 的 createTile 方法中.

2 在 QSTileHost.java的 createTile 方法调用 QSFactoryImpl 的 createTile 方法

在这里插入图片描述

public void onTuningChanged(String key, String newValue)

newValue 的内容为: wifi,bt,dnd,flashlight,battery,cell,airplane,cast,screenrecord,dbg:mem

当前用户的 tiles 通过调用 Settings.Secure.putStringForUser 被保存在 sysui_qs_tiles 字段下 。

TunerServiceImpl 的方法 addTunable 的被调用方法堆栈:

加载tiles的顺序: 先去Settings.Secure 下查找 sysui_qs_tiles ,如果没有则使用系统默认的: quick_settings_tiles_default
代码是在QSTileHost 的 loadTileSpecs 方法

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1550526.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Docker搭建LNMP环境实战(06):Docker及Docker-compose常用命令

Docker搭建LNMP环境实战(06):Docker及Docker-compose常用命令 此处列举了docker及docker-compose的常用命令,一方面可以做个了解,另一方面可以在需要的时候进行查阅。不一定要强行记忆,用多了就熟悉了。 1、…

Qt扫盲-QAssisant 集成其他qch帮助文档

QAssisant 集成其他qch帮助文档 一、概述二、Cmake qch例子1. 下载 Cmake.qch2. 添加qch1. 直接放置于Qt 帮助的目录下2. 在 QAssisant中添加 一、概述 QAssisant是一个很好的帮助文档,他提供了供我们在外部添加新的 qch帮助文档的功能接口,一般有两中添…

无人机+AI平安校园系统在天津大学成功运行

8月17日,北方天途航空联合天津大学,运用天途平安校园管理平台和大疆无人机场,开展无人机智能监控试点任务,协助学校保卫处监控人员和车辆情况,进行安全疏导和分流。 观看天途平安校园系统演示 现场工程师把天途平安校园…

[Linux_IMX6ULL驱动开发]-基础驱动

驱动的含义 如何理解嵌入式的驱动呢,我个人认为,驱动就是嵌入式上层应用操控底层硬件的桥梁。因为上层应用是在用户态,是无法直接操控底层的硬件的。我们需要利用系统调用(open、read、write等),进入内核态…

48 div 下面包含 el-radio, 点击 div 事件被触发多次

前言 这是一个最近碰到的一个很奇怪的问题 情况如下一个 div 下面有一个 el-radio, 然后 div 上面配置了 click 的回调为 handleClick 然后 但是点击 div 的时候, handleClick 触发了两次 然后 这里 来模拟一下, 并解决一下 这个问题 这里的知识主要是 设计到 label 和 …

机器人深度学习IMU和图像数据实现焊接精细操作

在双电极气体保护金属弧焊 (DE-GMAW) 中,对焊枪和旁路电极位置的精确控制是至关重要的。为了这一过程,科研团队提出了安装微型惯性测量单元(IMU)传感器和摄像头,来记录焊工控制焊枪的移动和微调…

来了!小学生Python创意编程(视频教学版)

目录 写在前面 推荐图书 推荐理由 写在最后 写在前面 在最好的年纪,一起来学Python吧!本期博主给大家推荐一本适合小学生阅读的书籍,一起来看看吧~ 推荐图书 小学生Python创意编程(视频教学版) 直达链接&#x…

SOLIDWORKS 2024新功能之钣金和结构系统

达索系统SOLIDWORKS钣金和结构系统是大家比较熟悉的模块了,在SOLIDWORKS 2024版本中钣金和结构系统功能也做了很大的提升。接下来微辰三维带大家一起看看如何使用达索系统SOLIDWORKS 2024钣金和结构系统的一些新功能快速完成相应的设计。 达索系统SOLIDWORKS 2024的…

bugku-web-GET

这里很明显是让用get请求传递一个名为what的参数,这个参数如果为flag,就会输出flag

HBase的Python API(happybase)操作

一、Windows下安装Python库:happybase pip install happybase -i https://pypi.tuna.tsinghua.edu.cn/simple 二、 开启HBase的Thrift服务 想要使用Python API连接HBase,需要开启HBase的Thrift服务。所以,在Linux服务器上,执行如…

(4)(4.3) Kogger Sonar

文章目录 前言 1 推荐硬件 2 配置回声探测仪模块 3 连接ArduPilot硬件 4 参数说明 前言 KOGGER 声纳(KOGGER Sonar)是一款结构紧凑、成本低廉的水下回声测深仪模块,带有 UART 接口,电源电压为 5-14v。 1 推荐硬件 CP210x USB->UART 转换器和安装…

其实StartAI也是一款修图工具 用StartAI修图之“去除背景”

其实StartAI不仅仅是一款AI绘画插件,更是一款可以对我们的摄影图片、广告海报进行修图的AI修图工具。StartAI包含了AI绘画、AI修图等多种复合型AI智能实用工具。 用【背景移除】功能对图片一个背景修图 1.实体广告图片 我们可以通过【背景移除】将广告图中的实体…

在 Windows 11 上安装 MongoDB

MongoDB 是一个流行的 NoSQL 数据库,它提供了灵活的数据存储方案,而 MongoDB Compass 则是一个可视化管理工具,可以更轻松地与 MongoDB 数据库交互和管理。在本文中,我们将介绍如何在 Windows 11 上安装 MongoDB,并配置…

好看又好用,这 10 个宝藏 App 免费拿走不谢!

目录 1. 综合AI工具箱——HuluAI 2. 文本视频生成工具——Jujilu 3.翻译软件 —— TTime 4.专业录屏和直播软件 —— OBS Studio 5.开源跨平台轻量计时软件 —— wnr 6.开源跨平台绘图 —— Drawio 7.开源三维建模动画渲染 —— Blender 8.跨平台的多功能软件 —— Pear…

C 语言贪吃蛇源码解析

贪吃蛇是一款经典的电子游戏,玩家控制一条不断成长的蛇,需要避免撞到自己的身体或者游戏边界,同时吃掉出现在屏幕上的食物以增长身体长度。 下面是一个简单的贪吃蛇游戏的C语言实现,使用了标准输入输出库conio.h和时间库windows.h…

【C++】1323. 扩建花圃问题

问题:1323. 扩建花圃问题 类型:整数运算 题目描述: 梅山小学有一块长方形花圃(花圃的长宽都是整数),长 m 米,宽未知。 在修建校园时,花圃的长增加了 n 米,此时发现增加…

Mybatis-获取参数值的两种方式

1. ${ } 和 #{ } MyBatis获取参数值的两种方式:${ } 和 #{ } 对于初学者来说,理解MyBatis中获取参数值的两种方式——#{}和${},关键在于明白它们如何影响SQL语句的构建以及为何在安全性、灵活性上有显著差异。下面我将用简单易懂的语言来解…

SpringBoot+Prometheus+Grafana实现应用监控和报警

一、背景 SpringBoot的应用监控方案比较多&#xff0c;SpringBootPrometheusGrafana是目前比较常用的方案之一。它们三者之间的关系大概如下图&#xff1a; 关系图 二、开发SpringBoot应用 首先&#xff0c;创建一个SpringBoot项目&#xff0c;pom文件如下&#xff1a; <…

java数据结构与算法刷题-----LeetCode540. 有序数组中的单一元素

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 文章目录 1. 异或运算2. 全数组二分查找异或奇偶3. 偶数下标二分查找 1. 异…

Python学习之-正则表达式

目录 前言&#xff1a;1.re.serach1.1例子&#xff1a; 2.re.match2.1示例1&#xff1a;2.2 示例2&#xff1a; 3.re.findall3.1 示例 4.re.fullmatch4.1 示例1&#xff1a;4.2 示例2: 5.re.split5.1 示例1:5.2 示例2&#xff1a;5.3 示例3&#xff1a; 6.re.sub6.1 示例&#…