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

比如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 方法
相关文章:
android 11 SystemUI 状态栏打开之后的界面层级关系说明之一
比如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 Cl…...
C#___锁(lock)
lock是一种语言级别的关键字,用于实现线程同步和互斥。它提供了一种简单的方式来确保多个线程不会同时访问共享资源,从而避免竞争条件和数据不一致的问题。 作用: 1、避免并行运算中,共享数据的的读写安全问题; 2、并…...
JAVA的sort用法详解(二维数组排序,List<>排序,lambada表达式,自定义类型排序)
目录 前言: 一维数组降序: 方法1.Comparator接口: 代码实现: 方法2.Collections.reverseOrder(): 代码实现: 二维数组排序: 代码如下: List<>排序: 代码…...
数据分析能力模型分析与展示
具体内容: 专业素质 专业素质-01 数据处理 能力定义•能通过各种数据处理工具及数据处理方法,对内外部海量数据进行清洗和运用,提供统一数据标准,为业务分析做好数据支持工作。 L1•掌握一…...
BUG未解之谜01-指针引用之谜
在leetcode里面刷题出现的问题,当我在sortedArrayToBST里面给root赋予初始值NULL之后,问题得到解决! 理论上root是未初始化的变量,然后我进入insert函数之后,root引用的内容也是未知值,因此无法给原来的二叉…...
数据库事务编程
事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态到另一种一致性状态。事务是逻辑上的一组操作,要么都执行,要么都不执行。 事务的 4 大特性 ACID 原子性 Atomicit…...
专题二_滑动窗口(1)
目录 209. 长度最小的子数组 解析 题解 3. 无重复字符的最长子串 解析 题解 1004. 最大连续1的个数 III 解析 题解 209. 长度最小的子数组 209. 长度最小的子数组 - 力扣(LeetCode) 解析 题解 class Solution { public:int minSubArrayLen(int…...
把本地文件上传到HDFS上操作步骤
因为条件有限,我这里以虚拟机centos为例 实验条件:我在虚拟机上创建了三台节点,部署了hadoop,把笔记本上的数据上传到hdfs中 数据打包上传到虚拟机节点上 采用的是rz命令,可以帮我们上传数据 没有的话可以使用命令安装…...
Leo赠书活动-21期 《一篇讲明白 Hadoop 生态的三大部件》
✅作者简介:大家好,我是Leo,热爱Java后端开发者,一个想要与大家共同进步的男人😉😉 🍎个人主页:Leo的博客 💞当前专栏: 赠书活动专栏 ✨特色专栏:…...
【Redis】Redis 介绍Redis 为什么这么快?Redis数据结构Redis 和Memcache区别 ?为何Redis单线程效率也高?
目录 Redis 介绍 Redis 为什么这么快? Redis数据结构 Redis 和Memcache区别 ? 为何Redis单线程效率也高? Redis 介绍 Redis 是一个开源(BSD 许可)、基于内存、支持多种数据结构的存储系统,可以作为数据…...
ArrayList和LinkedList有什么区别?
ArrayList和LinkedList的区别 ArrayList 和 LinkedList 是 Java 中常用的两种集合类,它们都实现了 List 接口,但在内部实现和性能上有一些区别。 内部实现: ArrayList 使用数组实现,它的元素在内存中是连续存储的,每…...
离线数仓(八)【DWD 层开发】
前言 1、DWD 层开发 DWD层设计要点: (1)DWD层的设计依据是维度建模理论(主体是事务型事实表(选择业务过程 -> 声明粒度 -> 确定维度 -> 确定事实),另外两种周期型快照事实表和累积型…...
Jenkins用户角色权限管理
Jenkins作为一款强大的自动化构建与持续集成工具,用户角色权限管理是其功能体系中不可或缺的一环。有效的权限管理能确保项目的安全稳定,避免敏感信息泄露。 1、安装插件:Role-based Authorization Strategy 系统管理 > 插件管理 > 可…...
简明conan教程
简明conan教程 1 关于conan1.1 来源1.2 作用 2 安装conan2.1 ubuntu2.1.1 安装python32.1.2 安装conan 2.2 Windows2.2.1 安装python32.2.2 安装conan 2.3 验证conan是否成功2.4 命令解释2.4.1 Consumer commands2.4.2 Creator commands2.4.3 Package development commands2.4.…...
LeetCode刷题--- 等差数列划分 II - 子序列
个人主页:元清加油_【C】,【C语言】,【数据结构与算法】-CSDN博客 个人专栏 力扣递归题 http://t.csdnimg.cn/yUl2I 【C】 http://t.csdnimg.cn/6AbpV 数据结构 http://t.csdnimg.cn/hKh2l 前言:这个专栏主要讲述动态规划算…...
kubectl 启用shell自动补全功能
官网手册参考:https://kubernetes.io/zh-cn/docs/tasks/tools/install-kubectl-linux/ 系统:centos7 补全脚本依赖于工具 bash-completion, 所以要先安装它(可以用命令 type _init_completion 检查 bash-completion 是否已安装&a…...
极简wordpress网站模板
Pithy设计师wordpress网站模板 精练简洁的wordpress模板,设计师或设计工作室展示型网站模板。 https://www.jianzhanpress.com/?p6329...
【python】(16)python的字典dict按照key或value排序的不同方法
系列文章回顾 【python】(01)初识装饰器Decorator 【python】(02)初识迭代器Iterator 【python】(03)初识生成器Generator 【python】(04)python中实现多任务并发和并行的区别 【python】(05)如何使用python中的logging模块记录日志信息 【python】(06)理解Python中的 lambda 、…...
微服务篇-C 深入理解第一代微服务(SpringCloud)_VI 深入理解Zuul服务网关
原创作者:田超凡(程序员田宝宝) 版权所有,引用请注明原作者,严禁复制转载 Part 1 理论部分 1 网关类别有哪些? 常见的网关类别有三种:开放API(Open API)网关、微服务…...
web CSS笔记1
CSS(Cascading Style Sheets) 美化样式 CSS通常称为CSS样式表或层叠样式表(级联样式表),主要用于设置HTML页面中的文本内容(字体、大小、对齐方式等)、图片的外形(宽高、边框样式、边距等)以及…...
OpenLayers 可视化之热力图
注:当前使用的是 ol 5.3.0 版本,天地图使用的key请到天地图官网申请,并替换为自己的key 热力图(Heatmap)又叫热点图,是一种通过特殊高亮显示事物密度分布、变化趋势的数据可视化技术。采用颜色的深浅来显示…...
2025年能源电力系统与流体力学国际会议 (EPSFD 2025)
2025年能源电力系统与流体力学国际会议(EPSFD 2025)将于本年度在美丽的杭州盛大召开。作为全球能源、电力系统以及流体力学领域的顶级盛会,EPSFD 2025旨在为来自世界各地的科学家、工程师和研究人员提供一个展示最新研究成果、分享实践经验及…...
ios苹果系统,js 滑动屏幕、锚定无效
现象:window.addEventListener监听touch无效,划不动屏幕,但是代码逻辑都有执行到。 scrollIntoView也无效。 原因:这是因为 iOS 的触摸事件处理机制和 touch-action: none 的设置有关。ios有太多得交互动作,从而会影响…...
GC1808高性能24位立体声音频ADC芯片解析
1. 芯片概述 GC1808是一款24位立体声音频模数转换器(ADC),支持8kHz~96kHz采样率,集成Δ-Σ调制器、数字抗混叠滤波器和高通滤波器,适用于高保真音频采集场景。 2. 核心特性 高精度:24位分辨率,…...
鸿蒙DevEco Studio HarmonyOS 5跑酷小游戏实现指南
1. 项目概述 本跑酷小游戏基于鸿蒙HarmonyOS 5开发,使用DevEco Studio作为开发工具,采用Java语言实现,包含角色控制、障碍物生成和分数计算系统。 2. 项目结构 /src/main/java/com/example/runner/├── MainAbilitySlice.java // 主界…...
基于Java Swing的电子通讯录设计与实现:附系统托盘功能代码详解
JAVASQL电子通讯录带系统托盘 一、系统概述 本电子通讯录系统采用Java Swing开发桌面应用,结合SQLite数据库实现联系人管理功能,并集成系统托盘功能提升用户体验。系统支持联系人的增删改查、分组管理、搜索过滤等功能,同时可以最小化到系统…...
MySQL JOIN 表过多的优化思路
当 MySQL 查询涉及大量表 JOIN 时,性能会显著下降。以下是优化思路和简易实现方法: 一、核心优化思路 减少 JOIN 数量 数据冗余:添加必要的冗余字段(如订单表直接存储用户名)合并表:将频繁关联的小表合并成…...
提升移动端网页调试效率:WebDebugX 与常见工具组合实践
在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...
AxureRP-Pro-Beta-Setup_114413.exe (6.0.0.2887)
Name:3ddown Serial:FiCGEezgdGoYILo8U/2MFyCWj0jZoJc/sziRRj2/ENvtEq7w1RH97k5MWctqVHA 注册用户名:Axure 序列号:8t3Yk/zu4cX601/seX6wBZgYRVj/lkC2PICCdO4sFKCCLx8mcCnccoylVb40lP...
客户案例 | 短视频点播企业海外视频加速与成本优化:MediaPackage+Cloudfront 技术重构实践
01技术背景与业务挑战 某短视频点播企业深耕国内用户市场,但其后台应用系统部署于东南亚印尼 IDC 机房。 随着业务规模扩大,传统架构已较难满足当前企业发展的需求,企业面临着三重挑战: ① 业务:国内用户访问海外服…...
