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