SystemUI启动的时候启动各个SERVICE,这些Service不是四大组件的service,这个SERVICE继承SystemUI,实现了start()和onBootComplete方法.其中StatusBar加载了SystemUI几乎全部的界面,其中包括锁屏界面, 其中Bouncer是安全锁屏界面,实现类是KeyguardBouncer.

锁屏加载KeyguardBouncer过程:
(1)SystemUIApplication启动Statusbar,这里通过createAndAddWindows加载主要的界面,然后调用startKeyguard
(2)在startKeyguard中,调用KeyguardViewMediator的registerStatusbar方法,KeyguardViewMediator是整个待机解/锁屏业务的调度器,负责调度锁屏界面的相关动作及查询解锁屏状态,然后进入StatusBarKeyguardViewManager
(3)(4)StatusBarKeyguardViewManager管理KeyguardBouncer,KeyguardBouncer里面是安全锁界面,它把所有的锁封装起来,然后通过判断当前是什么锁,然后把对应的锁视图显示出来
(5)当滑动锁屏,如果用户设置了锁屏,那么就让安全锁屏界面显示出来
(6)(7)(8)显示锁屏界面
(9)是PhoeWindowmamanegr通过binder调用到KeyguardViewMediator的,这里不研究

顶级布局:keyguard_status_view.xml 锁id:lock_icon_container
锁屏布局:keyguard_status_area.xml
时间类:keyguard_clock_switch.xml 外层布局:status_view_container
时间id:default_clock_view style:<style name="widget_big">
原字体大小:widget_big_font_size
日期id:default_clock_view_bold style:<style name="widget_title_bold">
原字体大小:widget_title_font_size
关键类:KeyguardIndicationTextView KeyguardIndicationController
充电剩余时间:KeyguardBottomAreaView keyguard_bottom_area.xml
充电文字:keyguard_indication_text
充电时间高度:<dimen name="keyguard_indication_margin_bottom">
充电字体大小(类):
KeyguardBottomAreaView TextView:mEnterpriseDisclosure,keyguard_indication_text
原来大小:text_size_small_material
Android系统UI启动与锁屏加载流程解析
本文详细介绍了Android系统UI在启动时如何加载各个Service,特别是StatusBar如何启动KeyguardBouncer来呈现锁屏界面。启动流程涉及SystemUIApplication、KeyguardViewMediator和StatusBarKeyguardViewManager等关键组件,KeyguardBouncer作为安全锁屏界面的管理者,根据用户设置显示相应的锁屏视图。此外,还提到了锁屏界面的时间和日期显示样式以及充电信息的呈现方式。
176





