Keyguard显示流程介绍

本文详细介绍了Android系统中Keyguard的解锁流程,包括关键组件KeyguardBouncer的加载时机及过程,不同解锁模式对应的布局加载方式,以及LockPatternView如何捕捉用户触摸动画。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

     Keyguard显示流程介绍:Keyguard是作为一个java lib库供SystemUI使用

      系统解屏流程:

       PhoneStatusBar的方法makeStatusBarView加载布局super_status_bar,此布局包含三个部分:1、PhoneStatusBarView;2、PanelHolder ;3、ScrimView  其中还有keyguard_bouncer,不是直接在layout布局加入,只有用户设置锁屏保护后才可见,PhoneStatusBarView 主要用来显示最上面那一栏,即系统状态等,PanelHolder是用户下拉后得到的view,keyguard_bouncer是解锁界面,无论哪种解锁模式,都是在KeyguardBouncer类中加载进来的

现在分析keyguard_bouncer在什么时候被加载,加载的具体过程

在StatusBarKeyguardViewManager的showBouncerOrKeyguard方法中加载KeyguardBouncer,调用了KeyguardBouncer的prepare的方法,加载了keyguard_bouncer布局,include了keyguard_host_view 布局,在这个布局中包含了KeyguardSecurityContainer,在这个类中getSecurityView根据不同的SecurityMode(KeyguardSecurityModel的getSecurityMode方法控制)返回不同的layout布局文件,KeyguardSecurityViewFlipper加载了这个布局返回的view,假设我们加载的是KeyguardPatternView,在布局keyguard_pattern_view中就会加载LockPatternView

systemReady showkeyguard大致流程:

screen off show keyguard大致流程:

keyguard_bouncer的加载流程
keyguard_bouncer include KeyguardHostView;
keyguard_host_view include KeyguardSecurityContainer
KeyguardSecurityContainer include KeyguardSecurityViewFlipper
KeyguardSecurityViewFlipper 方法getSecurityView()返回当前展示的view
假设当前view是 KeyguardPatternView
keyguard_pattern_view.xml:
part 1,keyguard_message_area
part 2,LockPatternView
part 3,keyguard_eca
LockPatternView 捕捉用户触摸动画
KeyguardPatternView 定义了回调在LockPatternView 去匹配图案


   

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

BlueGoDisplay

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值