Keyguard分析

    从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    };
时间: 2024-08-05 20:34:23

Keyguard分析的相关文章

Android之SystemUI载入流程和NavigationBar的分析

Android之SystemUI载入流程和NavigationBar的分析 本篇仅仅分析SystemUI的载入过程和SystemUI的当中的一个模块StatusBar的小模块NavigationBar,以Android6.0代码进行分析 AndroidManifest.xml <application android:name=".SystemUIApplication" android:persistent="true" android:allowClear

Android之SystemUI加载流程和NavigationBar的分析

Android之SystemUI加载流程和NavigationBar的分析 本篇只分析SystemUI的加载过程和SystemUI的其中的一个模块StatusBar的小模块NavigationBar,以Android6.0代码进行分析 AndroidManifest.xml <application android:name=".SystemUIApplication" android:persistent="true" android:allowClearU

android4.4的Keyguard心得

在总结锁屏代码之前,有两个中心思想要铭记于心 A) KeyguardHostView就是我们最终所要展示的界面,所以不论用什么方法手段,都要将这个KeyguardHostView添加到窗口中,后续填充它,都是细节问题 B) 那么问题来了,通常我们将一个view添加到窗口中会用什么方法呢? 答案有两种 1 WindowManager.addView()  2 LayoutInflater.inflate(resID, parentView, true): 而在锁屏代码中这两种方法都有用到 ----

Android框架浅析之锁屏(Keyguard)机制原理

最近终于成功的摆脱了FM收音机,迈向了新的模块:锁屏.状态栏.Launcher---姑且称之为"IDLE"小组,或许叫手机 美容小组,要是能施展下周星星同学的还我漂漂拳,岂不快哉. OK,闲话打住,咱开始正文. 本文主要内容: 1.分析锁屏界面的组成 : 2.基于源代码分析锁屏相关类 : 3.提出一种在框架取消锁屏的方法 . 花了一些时间研究Android原生的锁屏框架---Keyguard,今天就慢慢的讲解下我自己对这个模块的总结,因为目前还处于 理论学习的状况,很多细节以及功能上的

android 6.0 SystemUI源码分析(1)-SystemUI介绍 转

1. SystemUI介绍 SystemUI是一个系统应用,主要功能有: 1)状态栏信息显示,比如电池,wifi信号,3G/4G等icon显示 2)通知面板,比如系统消息,第三方应用消息,都是在通知面板显示. 3)近期任务栏显示面板.比如长按主页或近期任务快捷键,可以显示近期使用的应用. 4)提供截图服务.比如电源+音量加可以截图. 5)提供壁纸服务.比如壁纸的显示. 6)提供屏保服务. 7)系统UI显示.比如系统事件到来时,显示系统UI提示用户. SystemUI源码路径: framework

Android4.4 Keyguard

这阵子由于 Android KK开机按power键不能灭屏,须过会儿才能灭屏 问题看了下KK Keyguard代码,KK版本的Keyguard已独立为一个Keyguard.apk,具体流程分析,早就有大神BLOG: http://blog.csdn.net/aaa2832/article/details/22181505  流程分析得很详细,准确,清晰: http://blog.csdn.net/zhubin215130/article/details/26371531 对上面BLOG的补充和整

Android startActivity原理分析(基于Android 8.1 AOSP)

应用进程内 如何使用Intent做Activity的跳转 Intnet intent = new Intent(MainActivity.this,TestActivity.class); startActivity(intent); 我们通常会这样写,就能跳转到TestActivity中,但是你知道这简简单单的两行代码在我们庞大的安卓系统中经历了怎样的加工处理吗?接下来我带大家深入到系统内了解整个的启动过程 这里调用了startActivity的函数,这个函数被声明在了Context类中,然后

爱奇艺、优酷、腾讯视频竞品分析报告2016(一)

1 背景 1.1 行业背景 1.1.1 移动端网民规模过半,使用时长份额超PC端 2016年1月22日,中国互联网络信息中心 (CNNIC)发布第37次<中国互联网络发展状况统计报告>,报告显示,网民的上网设备正在向手机端集中,手机成为拉动网民规模增长的主要因素.截至2015年12月,我国手机网民规模达6.20亿,有90.1%的网民通过手机上网. 图 1  2013Q1~2015Q3在线视频移动端和PC端有效使用时长份额对比 根据艾瑞网民行为监测系统iUserTracker及mUserTrac

Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量)

原文:http://www.cnblogs.com/heshan664754022/archive/2013/03/27/2984357.html Tomcat启动分析(我们为什么要配置CATALINA_HOME环境变量) 用文本编辑工具打开用于启动Tomcat的批处理文件startup.bat,仔细阅读.在这个文件中,首先判断CATALINA_HOME环境变量是否为空,如果为空,就将当前目录设为CATALINA_HOME的值.接着判断当前目录下是否存在bin\catalina.bat,如果文件