Android8.0 Keyguard解锁流程

本文详细分析了Android8.0中Keyguard解锁的流程,从按键事件响应开始,经PhoneWindowManager,再到KeyguardViewMediator,重点讨论了Keyguard的加载、状态变化、解锁界面的显示与绘制,以及如何处理不同锁屏方式的切换。
摘要由CSDN通过智能技术生成

概述

Keyguard锁屏的加载可能和我们想象的不一样,它是在灭屏的时候加载,这样可以确保的屏幕亮起来的时候,用户能第一时间看到锁屏界面。灭屏存在多种方式,例如按power键、屏幕超时等,这些灭屏的方式虽然不一样,但是殊途同归,我们主要分析按power键时,Keyguard的加载流程。

时序图

这里写图片描述

流程分析

按键事件的响应是在InputManagerService中,经过一系列的处理和转换最终将会传递到PhoneWindowManager(PWM)的interceptKeyBeforeQueueing()来做具体的业务逻辑,这里我们不分析前面的过程,主要是从PWM开始分析。

Keyguard的加载从finishedGoingToSleep()开始,依次传递,期间还经过IPC过程调用IKeyguardService,最后传到KeyguardViewMediator这里。KeyguardViewMediator这个类是解锁屏模块的中介者,以中介的身份处理keyguard状态变化,处理event、power管理、PhoneWindowManager通知等请求,并作为回调对象供解锁屏模块的其它类回调。

继续往前执行,通过Handler跨线程调用StatusBarKeyguardViewManager

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值