当前位置: 萬仟网 > IT编程>移动开发>Android > 洞悉Android Keyguard

洞悉Android Keyguard

2018年08月12日 04:17  | 萬仟网IT编程  | 我要评论

      Android Keyguard自Android L以来一直没有多大变化。在Android L之前, Keyguard有自己独立的进程,KeyguardService自开机时启动并常驻。Android L之后到Android P,Keyguard和SystemUI共同享有一个进程。process id为com.android.systemui, Keyguard可以看做是SystemUI的一个lib库。可表示为如下:

                           

Keyguard架构有较大变化,同时Keyguard UI界面也有很大变化, 包含两个主界面,一个是显示Notification的主界面,称为Notification Keyguard, 另一个是在系统锁屏方式为安全锁时用来用户输入密码解锁的界面,称为Bouncer界面。如下图所示(下面左图为Notification Keyguard界面, 上滑之后进入第二个界面,即Bouncer界面)。

                                                                                      

        一、System boot Create Keyguard Flow

        KeyguardService在System boot ready时开始bind, 同时会根据用户设置的锁屏方式去create对应keyguard, 锁屏方式可以分为None(无,即没有锁屏), Swipe(滑动,即滑动解锁),Pattern(图案,输入图案解锁,密码长度至少连接四个点), Password(密码,输入密码解锁,密码由数字和字母组合组成,密码长度至少为4),PIN(PIN, 密码只包含数字, 密码长度至少为4)。System boot时create keyguard flow如下:

 

 

 

 

 下面log是对应flow的关键log, 可以从log check create flow跑到了哪个阶段,可以迅速的debug出问题。

 

      二、系统灭屏时Create Keyguard Flow

      在系统灭屏时,也会去create keyguard, 默认在power key灭屏之后会去立即create keyguard, 但如果没有勾选"power key立即锁屏",或者是timeout灭屏(即系统无操作,隔一段时间后自动熄屏),则默认会在灭屏之后隔5s才去create keyguard. 灭屏去create keyguard的flow与boot 时去create keyguard flow差不多,只是触发条件不同而已,如下:

 

 下面log是对应灭屏create keyguard flow的关键log。

 

      三、Power Key亮屏Flow

      在系统亮屏时,会等keyguard画好之后再亮屏(如果user有设置keyguard的话),即亮屏时会被keyguard block住,等keyguard画完之后会通知PowerManagerService去亮屏。亮屏flow相对简单,如下:

     

 

  下面log是对应power key亮屏 flow的关键log。

 

 

      四、Dismiss Keyguard Flow

      然后除了create keyguard外,另一重要的flow就是解锁了,用户滑动或者输入密码之后会去解锁。由于Keyguard和SystemUI同属一个进程,并与StatusBar共用一个window的关系,解锁flow比前面稍微复杂一点。下面是以pattern锁为例解锁flow图:

    

   下面log是对应pattern锁屏解锁 flow的关键log。

 

 

      至此,Keyguard几个重要的flow都已介绍完毕,除了常规的锁屏方式外,Android也支持人脸解锁,语音解锁,指纹解锁。这些生物识别的解锁方式也是需要Keyguard的配合才能完成,Android厂商如要开发自己的Keyguard, 不使用Android default Keyguard, 在接入这些生物识别的解锁方式时,需要做一些修改来和自己的Keyguard适配。Hardware -> kernel -> HAL -> framework -> keyguard.

 

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

◎已有 0 人评论

Copyright © 2019  萬仟网 保留所有权利. 粤ICP备17035492号-1
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com