SystemUI StatusBar状态栏部分功能记录

📅 2026/7/15 13:42:01
SystemUI StatusBar状态栏部分功能记录
目录一、SystemUI启动过程二、SystemUI plugin机制三、核心类:四、部分界面布局文件Android13 状态栏最下方的设置、电源按钮等;五、滑动和点击事件:快捷设置长按点击事件六、通知的通知显示过程七、长按电源键八、锁屏界面启动流程抽离设置密码和清除密码功能给第三方一、SystemUI启动过程①在SystemServer 中启动的SystemUI,调用SystemUIApplication中的startServicesIfNeeded方法②startServicesIfNeeded方法通过Dagger获取到创建好的SystemUI的功能组件,并依据包名、类名进行排序。③依次调用SystemUI功能组件的start()方法,并记录耗时。④当接收到BOOT_COMPLETED广播或检查SystemProperty中已经完成开机,则依次调用SystemUI功能组件的onBootCompleted()完成SystemUI的初始化。链接:启动过程参考链接Android 13以后增加了一个新的vendorComponent,vendorComponent 是一个字符串,它的值是:com.android.systemui.VendorServices。VendorServices继承自CoreStartable但是内部没有任何实现,google的设计目的是,在SysUI启动时,可以用来启动一些第三方服务。Android 13以前每个SystemUI服务还会依赖于Dependency类提供的自定义依赖注入,来获取一些跨越SystemUI生命周期的对象。但是Android 13之后,SystemUI功能组件的创建和依赖注入都是Dagger自动完成。其他资料:SystemUI 启动过程初始化的组件清单以Android9为例。组件类名职责依赖注入入口DependencySysUI 内部 DI 容器(旧版)通知渠道NotificationChannels注册系统级通知 channel,最早 initCommandQueue 启动CommandQueue.CommandQueueStart与StatusBarManagerService的 AIDL 桥梁锁屏中介KeyguardViewMediator锁屏显示/解锁/生物识别回调最近任务Recents多任务卡片音量面板VolumeUI音量调节弹窗分屏Divider分屏分隔条状态栏+导航栏SystemBars内部再createStatusBarFromConfig()拉StatusBar存储通知StorageNotificationUSB/存储挂载通知电源 UIPowerUI低电量、充电、省电模式提示铃声播放RingtonePlayer系统铃声(in-call 铃声等)键盘 UIKeyboardUI物理键盘检测画中画PipUIPiP 模式管理快捷键分发ShortcutKeyDispatcher系统快捷键厂商注入VendorServicesOEM 自己塞的扩展内存监控GarbageMonitor.Service泄漏监测延迟测试LatencyTesteruserdebug 才生效全局电源菜单GlobalActionsComponent长按电源键菜单圆角/屏装饰RoundedCorners/ScreenDecorations刘海、圆角遮罩Android13使用drager后,可在SystemUI/src/com/android/systemui/dagger/S