SystemUI QuickSettings流程梳理
SystemUI QuickSettings 流程梳理 SystemUI 中的 QuickSettings 流程梳理是指 SystemUI 中快捷设置区域的加载过程。下面对 QuickSettings 流程进行详细梳理。 一、布局构成 QuickSettings 区域的布局由 StatusBar.java 的 makeStatusBarView() 方法统一加载,通过方法 inflateStatusBarWindow 方法加载布局 super_notification_shade.xml。super_notification_shade.xml 中包含 status_bar_expanded.xml,status_bar_expanded.xml 中包含 qs_panel.xml,qs_panel.xml 即为 SystemUI 上的快捷设置区域控件id(</com.android.systemui.qs.QSContainerImpl>)。 status_bar_expanded.xml 是下拉菜单的布局文件,里面主要包含三个 View: 1. @layout/keyguard_status_view 锁屏界面的 View 2. @+id/qs_frame QS 快捷面板 3. @+id/notification_stack_scroller 通知栏 二、代码控制流程 2.1、下拉菜单创建流程 2.1.1、QSFragment 的创建 从 StatusBar.java 的 makeStatusBarView() 方法开始,这样 @+id/qs_frame(@layout/qs_panel) 的界面的控制就被转移到 QSFragment,相应的layout 也就变成了 qs_panel。 2.1.2、qs_panel @+id/quick_settings_panel 快捷面板容器,布局风格为 2.@layout/quick_status_bar_expanded_header,这个 layout 也包含了一个快捷面板(单行),布局风格为 2。 2.1.3、tiles 数据获取 首先先实例化一个 View (qs_frame 包含一个 QSPanel 视图)对象,然后再去创建 QSTileHost 对象,然后将 QSTileHost 对象与 QSPanel 视图对象进行绑定,看一下 QSTileHost 的构造方法。使用 TunerService 去 Settings 中查询 key 为 TILES_SETTING 的值,即查询快捷设置菜单项,查询到的结果通过 onTuningChanged() 方法回调返回,TunerService 的实现类是 TunerServiceImpl。 TunerServiceImpl.java 中的 onTuningChanged 方法的实现是在 QSTileHost 中,通过方法 loadTileSpecs 将 config.xml 中定义的标签内容 load 进来,通过 createTile 方法依次根据 xml 中的 String 生 成 对 应 的 Tile,并将 Tile 保 存 在 成 员 变 量 的 mTiles 集合中,最后回调 onTilesChanged() 方法,通知 QSPanel.java 对快捷设置选项显示更新。 SystemUI\src\com\android\systemui\qs\QSTileHost.java 中的 QSTileHost.onTuningChanged 方法和 QSTileHost.loadTileSpecs 方法,QSFactoryImpl.createTile 方法等都是关键的实现方法。 2.1.4、数据获取后 titles 加载到页面 QuickQSPanelController.setTiles() --> QSPanelControllerBase.setTiles --> addTile --> mView.addTile --> QSPanel.addTile --> mTileLayout.addTile 加载到页面,完成快捷设置区域的加载过程。 SystemUI 中的 QuickSettings 流程梳理主要包括布局构成、代码控制流程两部分。布局构成部分主要介绍了 QuickSettings 区域的布局结构,而代码控制流程部分则详细介绍了 QuickSettings 流程的创建流程、tiles 数据获取和数据加载到页面的过程。


剩余8页未读,继续阅读
- 粉丝: 30
我的内容管理
展开
我的资源
快来上传第一个资源
我的收益 登录查看自己的收益
我的积分
登录查看自己的积分
我的C币
登录后查看C币余额
我的收藏
我的下载
下载帮助
前往需求广场,查看用户热搜最新资源
- 基于混合粒子群的虚拟网络映射算法.docx
- FIR数字滤波器的MATLAB设计与TMSFDSP处理器的与实现.doc
- 大数据时代下职业教育面临的挑战及发展对策.docx
- 新时期计算机信息化技术应用及发展分析.docx
- 虚拟技术在计算机组装与维护中的应用分析.docx
- 电子商务物流管理习题.doc
- 人力资源的项目管理DOC.doc
- 航运枢纽的信息化建设与发展.docx
- 4G网络安全问题探究.docx
- 单片机的步进电机(带汇编程序).doc
- 会计继续教育-企业会计信息化工作规范考试及标准答案.doc
- 论信息化工程的条件.docx
- 试分析无线移动通信基站维护的措施.docx
- 基于 KNN 算法的手写数字数据集应用研究
- 深度解析微软互联网布局.ppt
- 论大数据时代的企业财务风险预警.docx


信息提交成功