Android学习——Keyguard之解锁屏

本文介绍了Android中Keyguard的相关概念,包括处理锁屏、解锁方式以及锁屏下显示通知的管理。重点讨论了KeyguardService、KeyguardViewMediator和StatusBarKeyguardViewManager的角色,详细解析了onKeyguardLocked()、showLocked()、handleShow()、reset()和showBouncerOrKeyguard()等关键方法在锁屏和解锁流程中的作用。
摘要由CSDN通过智能技术生成

Keyguard:即Android 中处理锁屏(电源键按下、屏幕显示时间超时)、解锁(滑动、图案、指纹、声音、人脸、虹膜等)、锁屏下显示通知管理者。

闲言少叙来看一下涉及Keyguard的部分:

1、SystemUI

       \frameworks\base\packages\SystemUI

       

2、Keyguard

      \frameworks\base\packages\Keyguard


3、\frameworks\base\services\core\java\com\android\server\policy

      

一些重要文件大意:

      PhoneWindowManger:管理系统的准备工作等

      KeyguardViewMediator:涉及到keyguard的协调请求,包含了关于keyguard的状态、电源管理事件是否影响keyguard当被展示或者重启,回调手机窗口管理器通知其什么时候展示,从keyguard视图事件本身叙述这个keyguard成功解锁等问题。

      KeyguardService:继承自Service,处理Keyguard的系统服务。

      StatusBarKeyuardViewManger:管理、创建、显示、隐藏和重置状态栏中的Keyguard。

      KeyguardBouncer:用于管理锁屏的措施。

      

      

      


画的序列图实在“”吃藕“”,借鉴一下前人的锁屏流程时序图

keyguard


直接从framework的锁屏入口阅读代码;

     KeyguardService.java  

     /frameworks/base/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardService.java

public void onSystemReady() {
            checkPermission();//避免死锁并检查系统权限
            mKeyguardViewMediator.onSystemReady();//进入锁屏入口
        }
    

     KeyguardViewMediator.java

   /frameworks/base/packages/SystemUI/src/com/android/systemui/keyguard/KeyguardViewMediator.java

public void onSystemReady() {
        mSearchManager = (SearchManager) mContext.getSystemService(Context.SEARCH_SERVICE);
        synchronized (this) {
            if (DEBUG) Log.d(TAG, "onSystemReady");
            AntiTheftManager.checkPplStatus();//检查手机是否加密(是否加了手机隐私锁)
            mSystemReady = true;
            doKeyguardLocked(null);// 进行锁屏预处理判断等操作
            mUpdateMonitor.registerCallback(mUpdateCallback);
            mPowerOffAlarmManager.onSystemReady();
        }
        // Most services aren't available until the system reaches the ready state, so we
        // send it here when the device first boots.
        maybeSendUserPresentBroadcast();
    }

onKeyguardLocked()

<
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值