关闭

Keyguard显示流程介绍

816人阅读 评论(1) 收藏 举报
     Keyguard显示流程介绍:Keyguard是作为一个java lib库供SystemUI使用


      系统解屏流程:

       PhoneStatusBar的方法makeStatusBarView加载布局super_status_bar,此布局包含三个部分:1、PhoneStatusBarView;2、PanelHolder ;3、ScrimView  其中还有keyguard_bouncer,不是直接在layout布局加入,只有用户设置锁屏保护后才可见,PhoneStatusBarView 主要用来显示最上面那一栏,即系统状态等,PanelHolder是用户下拉后得到的view,keyguard_bouncer是解锁界面,无论哪种解锁模式,都是在KeyguardBouncer类中加载进来的

现在分析keyguard_bouncer在什么时候被加载,加载的具体过程

在StatusBarKeyguardViewManager的showBouncerOrKeyguard方法中加载KeyguardBouncer,调用了KeyguardBouncer的prepare的方法,加载了keyguard_bouncer布局,include了keyguard_host_view 布局,
在这个布局中包含了KeyguardSecurityContainer,在这个类中getSecurityView根据不同的SecurityMode(KeyguardSecurityModel的getSecurityMode方法控制)返回不同的layout布局文件,KeyguardSecurityViewFlipper加载了这个布局返回的view,假设我们加载的是KeyguardPatternView,在布局keyguard_pattern_view中就会加载LockPatternView


systemReady showkeyguard大致流程:


screen off show keyguard大致流程:





keyguard_bouncer的加载流程
keyguard_bouncer include KeyguardHostView;
keyguard_host_view include KeyguardSecurityContainer
KeyguardSecurityContainer include KeyguardSecurityViewFlipper
KeyguardSecurityViewFlipper 方法getSecurityView()返回当前展示的view
假设当前view是 KeyguardPatternView
keyguard_pattern_view.xml:
part 1,keyguard_message_area
part 2,LockPatternView
part 3,keyguard_eca
LockPatternView 捕捉用户触摸动画
KeyguardPatternView 定义了回调在LockPatternView 去匹配图案



   





个人联系方式:15010399702@163.com

1
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:17405次
    • 积分:369
    • 等级:
    • 排名:千里之外
    • 原创:19篇
    • 转载:1篇
    • 译文:0篇
    • 评论:10条
    文章分类
    最新评论