指纹解锁亮屏时间 Log 分析

极力推荐Android 开发大总结文章:欢迎收藏
Android 开发技术文章大总结

本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

1.解锁指纹,发送指纹中断Log
2.认证指纹,计算指纹耗时
3.指纹认证成功,keyguard 响应解锁屏流程
4.keyguard 解锁结束,开启动Launcher至绘制工作
5.Launcher 绘制完成,隐藏Keyguard
6.点亮屏幕结束,统计亮屏时间

1. 解锁指纹,发送指纹中断Log

kernel log中可以查看指纹发送的中断log信息,信息如下:

    Line 1747: 737[03-22 16:04:05.934] <4>[ 1206.056374] c0   174 <blestech_fp>[bf_eint_handler:785]++++irq_handler netlink send+++++,1,0
    Line 1748: 738[03-22 16:04:05.934] <4>[ 1206.056392] c0   174 <blestech_fp>[bf_send_netlink_msg:665]enter, send command 102
    Line 1749: 739[03-22 16:04:05.934] <4>[ 1206.056445] c0   174 <blestech_fp>[bf_send_netlink_msg:707]send done, data length is 32
    Line 1750: 740[03-22 16:04:05.934] <4>[ 1206.056458] c0   174 <blestech_fp>[bf_eint_handler:794]-----irq_handler netlink -----
    Line 1762: 752[03-22 16:04:05.935] <4>[ 1206.057683] c1   612 <blestech_fp>[bf_open:1023] Success to open device.
    Line 1763: 753[03-22 16:04:05.935] <4>[ 1206.057718] c1   612 <blestech_fp>[bf_ioctl:843]BF_IOCTL_ENABLE_INTERRUPT:  command,0

2. 认证指纹,计算指纹耗时

指纹解锁耗时计算
指纹解锁耗时:既从指纹中断(16:04:05.934)到指纹认证成功(16:04:06.003)。
指纹耗时=1003-934 = 96ms

system log中可以看到 指纹认证onAuthenticated),以及认证成功onAuthenticationSucceeded

//指纹认证
00F359 03-22 16:04:06.002   715   715 V FingerprintService: onAuthenticated(owner=com.android.systemui, id=111, gp=0)
//指纹认证成功
00F35A 03-22 16:04:06.003   715   715 V FingerprintService:  onAuthenticationSucceeded by keyguard,may need send launchapp msg
00F35C 03-22 16:04:06.007   715   715 V FingerprintService: Done with client: com.android.systemui

3. 指纹认证成功,keyguard 响应解锁屏流程

指纹 认证成功后,system log 中可以查看到以下信息,Keyguard 开始解锁流程,流程如下:

00F35C 03-22 16:04:06.007   715   715 V FingerprintService: Done with client: com.android.systemui
// SystemUI 唤醒CPU
00F363 03-22 16:04:06.022   715  4341 I PowerManagerService: Waking up from sleep due tocom.android.systemui android.policy:FINGERPRINT (uid=10040 reason=android.policy:FINGERPRINT)...
00F364 03-22 16:04:06.022   715   715 W UsageStatsService: Event reported without a package name
00F36D 03-22 16:04:06.032   715   740 I DisplayPowerController: Blocking screen on until initial contents have been drawn.
//开始准备打开屏幕,进行唤醒操作
00F36E 03-22 16:04:06.032   715   740 I WindowManager: Screen turning on...
00F370 03-22 16:04:06.044   715   715 I WindowManager: Started waking up...
00F370 03-22 16:04:06.044   715   715 I WindowManager: Started waking up...
00F381 03-22 16:04:06.046   715  4341 D PowerManagerService: userActivityNoUpdateLocked: Scene not defined, event:0
00F383 03-22 16:04:06.047   715   738 I DisplayManagerService: Display device changed state: "Built-in Screen", ON
//广播队列添加亮屏广播
00F386 03-22 16:04:06.048   715   715 D BroadcastQueue: Add broadcast <BroadcastRecord{9e27478 u-1 android.intent.action.SCREEN_ON}> into [ordered | foreground], pending size 0

main logKeyguardViewMediator 这个调节器类开始进行亮屏时候是否显示锁屏界面等流程。
比如:notifyScreenOnkeyguardDone()handleHidekeyguardGoingAway


//keyguard 调节器通知screen on
00F372 03-22 16:04:06.045  1351  9065 D KeyguardViewMediator: notifyScreenOn
00F373 03-22 16:04:06.045   374   374 D PowerHAL: Enter power_set_interactive: 1
00F374 03-22 16:04:06.045  1351  9065 D KeyguardViewMediator: onStartedWakingUp, seq = 34
00F375 03-22 16:04:06.045  1351  9065 D KeyguardViewMediator: notifyStartedWakingUp
00F37D 03-22 16:04:06.046   374   374 D PowerHAL: ###Exit screen_off scene end###
00F37E 03-22 16:04:06.046   374   374 D PowerHAL: Exit power_set_interactive: 1
//keyguard 调节器执行完成
00F37F 03-22 16:04:06.046  1351  1351 D KeyguardViewMediator: keyguardDone()
00F3AE 03-22 16:04:06.057  1351  1351 D KeyguardViewMediator: handleNotifyScreenTurningOn
00F3BC 03-22 16:04:06.061  1351  1351 D KeyguardViewMediator: handleNotifyWakingUp
00F3BF 03-22 16:04:06.061  1351  1351 D KeyguardUpdateMonitor: FaceLock handleStartedWakingUp
00F458 03-22 16:04:06.077  1351  1351 V KeyguardUpdateMonitor: stopListeningForFaceLock()
//keyguard 结束并因此,开始进入Launcher
00F459 03-22 16:04:06.077  1351  1351 D KeyguardViewMediator: handleKeyguardDone
00F45A 03-22 16:04:06.077  1351  1351 D KeyguardViewMediator: handleHide
//keyguardGoingAway  等待下一个界面绘制完成
00F45B 03-22 16:04:06.077  1351  1351 D KeyguardViewMediator: keyguardGoingAway

4.keyguard 解锁结束,开启动Launcher至绘制工作

event log中可以看到keyguard 解锁结束后开始启动Launcher

//开启启动Launcher
00F466 03-22 16:04:06.079   715  2015 I am_set_resumed_activity: [0,com.android.launcher3/com.android.searchlauncher.SearchLauncher,resumeTopActivityInnerLocked]
00F48F 03-22 16:04:06.085   715  2015 I am_resume_activity: [0,77745185,3,com.android.launcher3/com.android.searchlauncher.SearchLauncher]

main log中可以看到Launcher 绘制完成。

//SurfaceFlinger 完成Launcher 绘制
00F54A 03-22 16:04:06.534  1351  1351 D KeyguardUpdateMonitor: handleBatteryUpdate
00F54D 03-22 16:04:06.535   380   380 D SurfaceFlinger: duplicate layer name: changing com.android.launcher3/com.android.searchlauncher.SearchLauncher to com.android.launcher3/com.android.searchlauncher.SearchLauncher#1

Launcher 绘制耗时计算
Launcher绘制耗时计算=绘制完成(16:04:06.535)- 开始启动(16:04:06.079)=458ms(535ms-79ms)

5.Launcher 绘制完成,隐藏Keyguard

system log中可以看到Launcher 绘制完成后,keyguard收到回调,隐藏keygaurd

//keyguard收到回调,隐藏keygaurd
00F577 03-22 16:04:06.588  1351  1351 D KeyguardViewMediator: handleStartKeyguardExitAnimation startTime=1206710 fadeoutDuration=0
00F578 03-22 16:04:06.588  1351  1351 D KeyguardViewMediator: isSimPinOrPuk =false
00F579 03-22 16:04:06.588   715  6388 D WindowManager: mKeyguardDelegate.ShowListener.onDrawn.
// KeyguardDrawComplete 结束后并隐藏
00F57A 03-22 16:04:06.589   715   730 W WindowManager: Setting mKeyguardDrawComplete
00F592 03-22 16:04:06.604  1351  1351 V KeyguardDisplayManager: hide
//窗口焦点在 Launcher上
00F5BE 03-22 16:04:06.621   715  1590 D WindowManager: Input focus has changed to Window{3393c4a u0 com.android.launcher3/com.android.searchlauncher.SearchLauncher}
0

6.电量屏幕结束,统计亮屏时间

system log中搜索关键字 Screen on took, 即可查看总亮屏耗时。

总亮屏耗时
总亮屏耗时(798ms)= 亮屏结束Finished waking up(16:04:06.820)- 屏幕开始打开Screen turning on...(03-22 16:04:06.032)

// 绘制结束,显示所有窗口
00F68B 03-22 16:04:06.816   715   738 I WindowManager: All windows ready for display!
00F68C 03-22 16:04:06.817   715   730 W WindowManager: Setting mWindowManagerDrawComplete
00F692 03-22 16:04:06.819   715   730 D WindowManager: finishScreenTurningOn: mAwake=true, mScreenOnEarly=true, mScreenOnFully=false, mKeyguardDrawComplete=true, mWindowManagerDrawComplete=true
//结束亮屏流程,统计 亮屏时间
00F693 03-22 16:04:06.819   715   730 I WindowManager: Finished screen turning on...
00F695 03-22 16:04:06.819   715   740 I DisplayPowerController: Unblocked screen on after 787 ms
00F69A 03-22 16:04:06.820   715   740 W PowerManagerService: Screen on took 798 ms(now:1206942 mLastWakeTime:1206144)
//结束wake up 流程
00F69B 03-22 16:04:06.821   715   715 I WindowManager: Finished waking up...

至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

原文地址:https://www.cnblogs.com/wangjie1990/p/11327111.html

时间: 2024-10-04 20:46:23

指纹解锁亮屏时间 Log 分析的相关文章

检测手机屏幕是否亮屏解锁

通过adb命令获取手机是否锁屏状态,可以通过下面指令:1.adb shell dumpsys window policy^|grep isStatusBarKeyguard2.adb shell dumpsys window policy^|grep mShowingLockscreen 运行第1条命令,获取到结果,如下: isStatusBarKeyguard=false mFocusedWindow=Window{3c2b801 u0 com.tencent.mm/com.tencent.m

iOS 关于TouchID指纹解锁的实现

一直想玩玩指纹解锁,近期时间比较闲,就研究了一下这个指纹解锁.这个功能实现起来还是很简单的,虽然看起来比较高大上,但是对于开发来说,越是高大上的东西一般都有封装好的,我们只需要调用就可以实现相当秀的功能. 废话少说,直接贴教程. 苹果公司推出的指纹识别,提供的功能很少,只要注意这两个功能即可(验证是否支持指纹以及指纹是否正确). 第一步:导入解锁必须的头文件 #import <LocalAuthentication/LocalAuthentication.h> 第二步:(这一步主要是了解使用的

安卓手机来电亮屏流程分析

来电亮屏流程分析 本文档是针对手机来电时候自主点亮屏幕这一流程的分析,很自然的就将其分为2个阶段,第一个是来电,第二个是点亮屏幕. 来电的流程: 来电消息是从RIL层接收到的,然后才开始传递上来. AT      : RING AT      : AT< RING AT      : RIL_URC_READER:RING AT      : RIL_URC_READER Enter processLine use-Rlog/RLOG-RIL: Nw URC:RING use-Rlog/RLOG

通过adb操作安卓亮屏、设置背光亮度、解锁、打开app

亮屏 adb shell inputkeyevent 26 keyevent 26表示点击power Android adb 点亮和关闭屏幕的命令 # kernel休眠 echo mem > /sys/power/state # kernel唤醒 echo on > /sys/power/state 设置背光: echo 255 >/ sys/class/leds/lcd-backlight/brightness       ///==>最亮 echo 0 >/ sys/cl

AndroidKK4.4 Power key电量屏幕时button light先亮LCD后亮的卡顿问题分析

一.问题现象 按下Power key点亮屏幕时,很大概率出现先亮button light,然后再亮屏的现象,明显感觉到卡顿. 线索1.快速按下Power key熄灭和唤醒基本不会出现以上问题现象 线索2.长按Power key会同时亮LCD和button light 线索3.插入2G sdcard基本没有出现过以上问题,换成32G的class 10的sdcard之后就很大概率出现以上问题 Platform:MT6732 Android版本:4.4.4KK BuildType:user 系统软件版

Log中&#39;main&#39;, &#39;system&#39;, &#39;radio&#39;, &#39;events&#39;以及android log分析

在Android中不同的log写到不同的设备中,共有/dev/log/system, /dev/log/main, /dev/log/radion, /dev/log/events四中类型.其中默认Log.v等写入/dev/log/main中.Slog写入/dev/log/system中. 我们在使用logcat 抓去日至的时候, 可以指定buffer,来请求不同的环形缓冲区 ('main', 'system', 'radio', 'events',默认为"-b main -b system&q

android 常见死机问题--log分析

http://blog.csdn.net/fangchongbory/article/details/7645815 android 常见死机问题--log分析=================================================================================================== 一般在平时工作中,基本上很多代码可以在eclipse+ndk进行调试,但如果需要用到具体的硬件设备,如媒体播放设备无法模拟的情况下,只能上硬

Android4.4KK下遮盖p-sensor拨打电话无法自动灭屏的问题分析

一.问题现象 先遮盖P-Sensor,然后拨打电话,90%的情况下屏幕无法自动关闭背光显示.关闭Settings->Display->Brightness->Auto,然后再执行以上操作则100%能够正常关闭背光显示. Platform:MT6732 Android版本:4.4KK BuildType:user 系统软件版本:SWA1H+UM 系统RAM:1GB 参考机行为:参考机1正常,参考机2正常 二.MTK平台Android的Sensor流程框架 整个流程框架主要分为6个部分: 1

首屏,白屏时间如何计算??

做移动web页面,受移动网络网速和终端性能影响,我们经常要关注首屏内容展示时间(以下简称首屏时间)这个指标,它衡量着我们的页面是否能在用户耐心消磨完之前展示出来,很大程度影响着用户的使用满意度. 怎么获取首屏时间呢? 我们经常要先问自己:页面是怎么加载数据? A:加载完静态资源后通过ajax请求去后台获取数据,数据回来后渲染内容 在每个点打上一个时间戳,首屏时间 = 点8 – 点1: B:使用后台直出,返回的html已经带上内容了 此时首屏时间 = 点4 – 点1. 注:1. 打了这么多个点,是