标签:技术分享 base security classes statusbar splay bar complete nes
从Android 6.0开始,位于frameworks/bases/packages/Keyguard的Keyguard开始被编译为一个jar包,被SystemUI静态导入,相当于SystemUI的一个界面。
Keyguard分为两个界面,不用输入密码的一级锁屏界面(SystemUI认为是PhoneStatusBar)与相应源码文件包含Security字样的二级锁屏界面(SystemUI认为是Bouncer)。
各个部件调用关系是下边这张图
可以看到,Keyguard第一个涉及到的是KeyguardDisplayManager,其由KeyguardViewMediator调用。
KeyguardViewMediator是SystemUIApplication名为SERVICES数组里的一员,这个数组的东西都是SystemUI要load的Service的class,在bootcompleted的时候启动这些服务。
1 /** 2 44 * The classes of the stuff to start. 3 45 */ 4 46 private final Class<?>[] SERVICES = new Class[] { 5 47 com.android.systemui.tuner.TunerService.class, 6 48 com.android.systemui.keyguard.KeyguardViewMediator.class, 7 49 com.android.systemui.recents.Recents.class, 8 50 com.android.systemui.volume.VolumeUI.class, 9 51 Divider.class, 10 52 com.android.systemui.statusbar.SystemBars.class, 11 53 com.android.systemui.usb.StorageNotification.class, 12 54 com.android.systemui.power.PowerUI.class, 13 55 com.android.systemui.media.RingtonePlayer.class, 14 56 com.android.systemui.keyboard.KeyboardUI.class, 15 57 com.android.systemui.tv.pip.PipUI.class, 16 58 com.android.systemui.shortcut.ShortcutKeyDispatcher.class, 17 59 com.android.systemui.VendorServices.class 18 60 };
标签:技术分享 base security classes statusbar splay bar complete nes
原文地址:http://www.cnblogs.com/cascle/p/7053688.html