人脸解锁流程
- 1. 点击Power 键开始人脸解锁流程
- 2. 人脸解锁Service开始下发打开相机动作
- 3. 人脸解锁Service 开始为配流做准备
- 4. 底层完成配流并callback给人脸解锁Service
- 5. 人脸解锁Service开启请求出图
- 6. 底层第一帧callback给Camera Framework
- 7. 人脸解锁Service ImageReader 开始收帧
- 8. Trace 拆解总览
- 9. 人脸解锁Trace 拆机关键字
1. 点击Power 键开始人脸解锁流程
System_server InputReader 读取input事件,然后分发事件给PowerMangerService开始唤醒系统。
2. 人脸解锁Service开始下发打开相机动作
3. 人脸解锁Service 开始为配流做准备
成功打开camera sensor后,人脸解锁Service开始为配流进行准备工作,比如需要配置流的size格式等等。
app 开始为配流做准备
4. 底层完成配流并callback给人脸解锁Service
5. 人脸解锁Service开启请求出图
人脸解锁Service收到配流结束后, 开启请求出图。
6. 底层第一帧callback给Camera Framework
trace中:first full buffer,代表Camera Framework已经收到第一帧返回buffer 了。
7. 人脸解锁Service ImageReader 开始收帧
8. Trace 拆解总览
9. 人脸解锁Trace 拆机关键字
1.InputDispatcher :按Power键事件分发
2.PowerManagerService.WakeLocks :PowerMS 唤醒系统
3.CameraHal::openSession:打开camera Sensor
4.CameraHal::configureStreams:配流
5.submitRequestList:预览请求
6.Stream 0: first full buffer:首帧返回
7.ImageReader:APP buffer 收帧
8.onAuthenticationSucceeded:人脸算法认证成功
9.KeyGuardUpdateMonitor#onFaceAuthenticated:SystemUI 响应人脸算法认证,此时可以解锁了。