Android JellyBean Keyguard鎖屏

來源:互聯網
上載者:User

 

  Android Keyguard 4.1 的鎖屏在/frameworks/base/policy/src/com/android/internal/policy/impl中,第一次全模組的讀Framework,有很多都看不懂,希望大家可以指教!

  1.AccountUnlockScreen.java

  當使用者忘記他們密碼的時候就會調用這個函數使用他們的帳號密碼解鎖並且重設鎖,這裡面代碼很簡單就不細說了。最終判斷成功的方法為:postOnCheckPasswordResult();

  2.BiometricSensorUnlock.java

  生物識別技術感應器解鎖?不知道怎麼翻譯,這是一個介面,從名字上分析感覺是為了面部解鎖/指紋解鎖或其他跟生物體有關的解鎖方式預留的一個介面。

  3.FaceUnlock.java

  面部解鎖, 其中有個布爾變數叫mServiceRunning,說是為了判斷一個Service是否正在啟動並執行。現在還不知道Service是什麼Service,可能是解鎖模組後台跑的主Service.代碼看到後面發現在start()的時候會綁定一個叫IFaceLockInterface的Service.IFaceLockInterface是一個aidl檔案,我不知道這意味著什麼,可能是底層C/C++實現的一個Service?這個檔案裡面大部分都是關於FaceUnlock View的邏輯處理,什麼顯示消失阿,並沒有看到面部解鎖的原理,不知道跑哪裡去了,很可能在那個Service中。但是那個Service是在哪裡呢?大大指導一下。

  4.GlobalActions.java

  全域行為,這段代碼就是處理鎖定畫面長按Power鍵彈出的Dialog。關於靜音/飛航模式和關機的。

  5.IconUtilities.java

  表徵圖工具,好像就是一個圖片處理的工具類,提供了一個drawable轉bitmap的方法,還有個繪製bitmap按下的方法

  6.KeyguardScreen.java

  鍵盤鎖介面.

  7.KeyguardScreenCallback.java

  鍵盤鎖介面回調.

  8.KeyguardStatusViewManager.java

  鍵盤鎖狀態視圖管理,SIM卡狀態/電池狀態/鬧鈴/時鐘等等的管理

  9.KeyguardUpdateMonitor.java

  鍵盤鎖更新監視器,該類的主要功能就是根據監視系統狀態值的改變(例如:時間、SIM卡狀態、電池電量;使用廣播監聽),根據這種狀態值的改變回調監聽了該狀態資訊的對象執行個體。當其接收到狀態改變的廣播之後會通知KeyguardStatusViewManager修改介面上顯示的狀態。

  10.KeyguardViewBase.java

  鍵盤鎖基礎視圖,為LockPatternKeyguardView提供了一組通用的方法 。需要值得注意的方法就是他對某些KeyEvent的監聽,當他消費監聽到這些KeyEvent,我們的App就監聽不到這些KeyEvent了 。常用的有KEYEVENT_VOLUME_UP/DOWN等。

  11.KeyguardViewCallback.java

  鍵盤鎖視圖回調,提供了一些介面用來接受使用者操作Screen的結果。

  12.KeyguardViewManager.java

  鍵盤鎖視圖管理,封裝了WindowManager功能了,提供了添加、刪除鎖定畫面的功能。

  13.KeyguardViewMediator.java

  核心類 ,該類是唯一實現了KeyguardViewCallback的類。功能:該類提供了一些介面,由PhoneWindowManager)去存取控制Keyguard....該類的初始化是在PolicyWindowManager的建構函式中建立的。按電源鍵之後就是通過該類處理鎖屏事件的。

  14.KeyguardViewProperties.java

  鍵盤鎖屬性,提供了建立介面的通用方法。

  15.KeyguardWindowController.java

  鍵盤鎖表單控制者,提供通用介面,判斷該介面是否需要顯示IME視窗。

  16.LockPatternKeyguardView.java

  圖形鍵盤鎖視圖,作為LockScreen和UnLockScreen介面的載體,控制顯示哪個介面。這裡有個疑問是無法看出來解鎖的Mode儲存方式,不知道是資料庫,還是xml還是別的什麼,不知道那位大大知道?

  17.LockPatternKeyguardViewProperties.java

  感覺就是用來處理某些解鎖介面需要顯示鍵盤的。

  18.LockScreen.java

  鎖定畫面,好吧,我沒有看懂。。。那個拖拽鎖的方法在那裡。。。?

  19.PasswordUnlockScreen.java

  密碼解鎖介面,這段很簡單就不說了。

  20.PatternUnlockScreen.java

  圖形解鎖介面。

  21.PhoneFallbackEventHandler.java

  手機回退事件處理,這段代碼應該是鎖定畫面選擇的一些事件處理,比如拖動解鎖框至電話表徵圖就開啟電話介面。

  22.PhoneLayoutInflater.java

  手機布局過濾,沒看明白。

  23.PhoneWindow.java

  手機表單。

  24.PhoneWindowManager.java

  手機表單管理。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.