SystemUI
链接:【系统解读】SystemUI篇(一)SystemUI启动流程详解
https://www.cnblogs.com/andy-songwei/p/11471355.html
四、Keyguard分析
KeyguardService.java类
完整路径:frameworks/base/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java
该类是一个Service,主要有如下功能(1)SystemUI启动时的入口。在系统启动的时候SystemServer.java类,会启动该service来启动并初始化SystemUI。onCreate()方法中有一行代码"((SystemUI)getApplication()).startServicesIfNeeded()",一步步跟踪方法详情可以发现,该方法就是开启SystemUI必要的功能。(2)通过AIDL的方式,接收框架部分远程调用,处理一些重要事件。在实例化IKeyguardService.Stub()时,可以看到实现了很多方法,这些方法就是在框架中IKeyguardService.aidl(完整路径frameworks/base/core/java/com/android/internal/policy/IKeyguardService.aidl)中定义的,和解锁相关的方法onFinishedGoingToSleep(...)就在其中。
KeyguardViewMedia.java
完整路径:frameworks/base/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java
这个类是解锁屏模块的中介者,以中介的省份处理keyguard状态变化,处理event、power管理、PhoneWindowManager通知等请求,并作为回调对象供解锁屏模块的其它类回调。