Keyguard顯示流程介紹

     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 去匹配圖案



   





個人聯繫方式:[email protected]

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章