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通知等请求,并作为回调对象供解锁屏模块的其它类回调。

 

posted @   宋者为王  阅读(1811)  评论(0编辑  收藏  举报
编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 三行代码完成国际化适配,妙~啊~
· .NET Core 中如何实现缓存的预热?
点击右上角即可分享
微信分享提示