SystemUI模块
StatusBar:通知消息提示和状态展现
NavigationBar:返回,HOME,Recent
KeyGuard:锁屏模块可以看做单独的应用(包括息屏与亮屏),提供基本的手机个人隐私保护
Recents:近期应用管理,以堆叠栈的形式展现。
Notification Panel:展示系统或应用通知内容。提供快速系统设置开关。
VolumeUI:来用展示或控制音量的变化:媒体音量、铃声音量与闹钟音量
截屏界面:长按电源键+音量下键后截屏,用以展示截取的屏幕照片/内容
PowerUI:主要处理和Power相关的事件,比如省电模式切换、电池电量变化和开关屏事件等。
RingtonePlayer:铃声播放
StackDivider:控制管理分屏
PipUI:提供对于画中画模式的管理
StatusBar
StatusBar系统图标显示流程
1. 显示流程图
2. 各结点调用函数解释
(1)MobileSignalController.java
notifyListeners函数:监听系统状态,若监听到SignalCallBack反馈(即启动蓝牙了),则调用callback.setMobileDataIndicator函数;
(2)CallbackHandler.java
setMobileDataIndicator函数:将状态值传递到 StatusBarSignalPolicy类中解析显示;
(3)StatusBarSignalPolicy.java
setMobileDataIndicator函数:对图标状态进行赋值;
(4)StatusBarIconControllerImpl.java
setMobileIcons函数:设置手机状态图标(例如:蓝牙)
(5)StatusBarIconController.java
applyMobileState函数:将设置好的图标应用到状态栏
(6)StatusBarMobileView.java
updateState函数:更新当前状态栏的显示效果
自动亮度调节快捷设置
内容:三方apk中如何在下拉状态栏中添加自动亮度调节快捷设置
参考:
QS亮度调节初始化流程
StatusBar(状态栏)显示界面
- config_showOperatorNameInStatusBar属性
状态栏显示运营商信息:将该属性设置为true;
2. include标签
使用include显示悬浮式通知布局
状态栏主要控件
系统图标控件
1. 定义图标的资源文件
Notification通知栏
1. 管理流程-SystemServer进程
在SystemServer进程中对Notification处理流程如下: