SystemUI

1、Status bars(状态栏)

2、Navigation bars(导航栏)

3、Notification(通知)

4、Keyguard(锁屏)

5、Quick settings(快速设置)

6、Recent task panel(最近任务面板)

7、VolumeUI(音量UI)

8、Screenshot(截屏)

9、PowerUI(电量UI)

10、RingtonePlayer(铃声播放器)

11、StackDivider(分屏)

12、PipUI(画中画UI)

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

上一篇:利用js对象的特性,去掉数组中的重复项


下一篇:jQuery过滤选择器:not()方法使用介绍