当前位置: 移动技术网 > IT编程>移动开发>Android > android8.0 keyguard流程分析

android8.0 keyguard流程分析

2018年03月15日  | 移动技术网IT编程  | 我要评论

变色龙教案,我的野蛮皇后,破天传说下载

1.keygaurd 锁屏重要类分析

PhoneWindowManager.java?

此类主要涉及各种按键响应的事件

KeyguardServiceDelegate.java
和KeyguardServiceWrapper.java

分别对KeyguardService进行了代理和包装,代理类里面有一个Scrim视图在keyguard崩溃时显示。包装类就是对keyguardService的简单包装,最终把调度 都会传给keyguardService

keyguardService.java

其实它就是keyguard的入口,锁屏所有的往生都因它而起,这个类很简单,实例化了一个IKeyguardService.Stub供其他类bindservice时调用,需要特别注意的是整个keyguard的核心实力派 KeyguardViewMediator在这里诞生了。

KeyguardViewMediator.java

keyguard视图调度者,功能上是负责处理keyguard视图的事件,比如完成锁
屏和解锁这些动作的视图响应

KeyguardViewManager.java

它有一个类型为FrameLayout名叫ViewManager的内部类,用来作为keyguard的viewroot。在viewroot里添加了KeyguardHostView,我们叫它mKeyguardView。Keyguard里任何的view细节和问题都能通过它找到蛛丝迹。

KeyguardHostView.java ?

这里完成keyguardView布局,实例化。分析一个自定义的viewgroup,重点需要分析的是它的构造方法和onFinishInflate()方法

KeyguardUpdateMonitor.java?

监听系统状态值的改变如时间、SIM卡状态、电池电量等,状态值的改变会回调监听了该状态信息的对象实例。如果只是关注功能的话只需要看handle里面的每个消息调用的方法即可

KeyguardSecurityView.java

接口定义了各锁屏view最基本的方法

KeyguardUpdateMonitorCallback.java

由mCallbacks来保存所有的具体观察者角色,可以通过registerCallback和removeCallback方法来实现具体观察者角色添加和删除。

2.keyugard锁屏流程简介

Keyguard锁屏的加载在灭屏的时候绘制的,这样可以确保的屏幕亮起来的时候,用户能第一时间看到锁屏界面。

锁屏界面的加载通常在有三种方式触发:android系统开机和screenOff(灭屏)后,再screenOn,超时灭屏

power键灭屏流程

亮屏过程中涉及到两条关键的线程,分别是PowerManager Notifier Thread 与DisplayManager Thread。


如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网