鏈接:【系統解讀】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通知等請求,並作為回調對象供解鎖屏模塊的其它類回調。