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