Fingerprint 解锁流程

1.defect:7033783 指纹解锁太慢流程
ALPS03313857:
1)、指纹解锁的大致flow 如下:
sensor上报校验成功
。。。
//keyguard处理
==>FingerprintUnlockController.onFingerprintAuthenticated
==>KeyguardViewMediator.keyguardDone
==>KeyguardViewMediator.mKeyguardGoingAwayRunnable
==>ActivityManagerNative.getDefault().keyguardGoingAway(flags);
// Don't actually hide the Keyguard at the moment, wait for window
// manager until it tells us it's safe to do so with
// startKeyguardExitAnimation.
ActivityManagerNative.getDefault().keyguardGoingAway(flags);
==>AMS/WMS进行一系列处理操作
...
==>PhoneWindowManager.startKeyguardExitAnimation
==>KeyguardViewMediator.startKeyguardExitAnimation->handleStartKeyguardExitAnimation
==>mStatusBarKeyguardViewManager.hide(startTime, fadeoutDuration);
//hide方法中执行animateScrimControllerKeyguardFadingOut等操作
//之后进行一些状态刷新,收起NotificationPanel界面等操作。
//->StatusBarKeyguardViewManager.updateStates->updateMonitor.onKeyguardVisibilityChanged(showing && !occluded);-==>KeyguardUpdateMonitor.onKeyguardVisibilityChanged->updateFingerprintListeningState
==>mPhoneStatusBar.hideKeyguard();->instantCollapseNotificationPanel
==>PanelView.instantCollapse->notifyBarPanelExpansionChanged

 

建议是在关键时间点添加些log,看下是否有比较明显耗时的地方。
7033783
05-22 18:01:01.786076 1052 1052 I FingerprintController: releasing fp wakelock

//wms 这边准备好,通知锁屏可以退出
05-22 18:01:02.162578 889 936 D WindowManager: PWM.startKeyguardExitAnimation
//锁屏这边回调onDrawn
05-22 18:01:02.258416 889 1152 D WindowManager: mKeyguardDelegate.ShowListener.onDrawn.

05-22 18:01:02.258742 889 919 I WindowManager: Waiting for drawn Window{d5b908d u0 StatusBar}: removed=false visible=true mHasSurface=true drawState=1
。。。。//等待statusbar绘制完成
05-22 18:01:02.431158 889 936 I WindowManager: Waiting for drawn Window{d5b908d u0 StatusBar}: removed=false visible=true mHasSurface=true drawState=4
//等待所有window ready 才会去亮屏
05-22 18:01:02.473423 889 936 I WindowManager: All windows ready for display!
05-22 18:01:02.483838 889 943 I DisplayPowerController: Unblocked screen on after 718 ms

指纹解锁flow如下:
->FingerprintUnlockController.onFingerprintAuthenticated
->KeyguardViewMediator.onWakeAndUnlocking->keyguardDone->handleKeyguardDone
->KeyguardViewMediator.mKeyguardGoingAwayRunnable
->ActivityManagerNative.getDefault().keyguardGoingAway(flags);
// Don't actually hide the Keyguard at the moment, wait for window
// manager until it tells us it's safe to do so with
// startKeyguardExitAnimation.
ActivityManagerNative.getDefault().keyguardGoingAway(flags);
->AMS/WMS进行一系列处理操作
->PhoneWindowManager.startKeyguardExitAnimation
->KeyguardService.startKeyguardExitAnimation
->KeyguardViewMediator.startKeyguardExitAnimation->handleStartKeyguardExitAnimation
->PhoneWindowManager.mKeyguardDrawnCallback.onDrawn

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值