高通相机启动,切换,拍照,人脸解锁等systrace拆解

2025-04-27  本文已影响0人  程序员Android1

和你一起终身学习,这里是程序员Android

经典好文推荐,通过阅读本文,您将收获以下知识点:

一、Camera 启动流程trace关键字
二、相机 模式切换流程trace 关键字
三、退出相机Trace 关键字
四、相机拍照 Trace 关键字
五、人脸解锁Trace 关键字拆解
六、Camx trace 开关
七、手机自带抓去systrace 方法

一、Camera 启动流程trace关键字

S1 . deliverInputEvent(AppLaunch_dispatchPtr:Up ) ⇒ activityStart
S2 . activityStart ⇒ CameraHal::openSession
S3 . CameraHal::openSession
S4 . CameraHal::openSession end ⇒ CameraHal::configureStreams start
S5 . CameraHal::configureStreams
S6 . CameraHal::configureStreams end ⇒ setRepeatingRequest start
S7 . setRepeatingRequest start ⇒ first full buffer
S8 . first full buffer ⇒ 第一帧显示(onPreviewOk)

二、相机 模式切换流程trace 关键字

S1 . deliverInputEvent ⇒ abortCaptures start
S2 . abortCaptures( FWK : CameraHal::flush)
S3 . abortCaptures end ⇒ CameraHal::close start
S4 . CameraHal::close
S5 . CameraHal::close end ⇒ CameraHal::openSession start
S6 . CameraHal::openSession
S7 . CameraHal::openSession end ⇒ CameraHal::configureStreams start
S8 . CameraHal::configureStreams
S9 . CameraHal::configureStreams end ⇒ setRepeatingRequest start
S10 . setRepeatingRequest start ⇒ first full buffer
S11 . first full buffer ⇒ 第一帧显示(onPreviewOk)

三、 退出相机Trace 关键字

S1 . deliverInputEvent ⇒ abortCaptures start
S2 . abortCaptures( FWK : CameraHal::flush)
S3 . abortCaptures end ⇒ CameraHal::close start
S4 . CameraHal::close
S5 . CameraHal::close end ⇒ launher 显示

四、相机拍照 Trace 关键字

S1 . deliverInputEvent ⇒ submitRequestList start
S2 . submitRequestList start ⇒ processCaptureRequest_3_4 start
S3 . processCaptureRequest_3_4 start ⇒ P2_Capture:enque start
S4 . P2_Capture:enque start ⇒ p2a:finish end
S5 . mf:process
S6 . mdp:process
S7 . hardwareOps_encode (onProcessRequest)
S8 . hardwareOps_encode end ⇒ 大图显示

五、 人脸解锁Trace 关键字拆解

S1 . mPowerKeyWakeLock start ⇒ Biometric.Face.openCamera start Power 键
S2 . Biometric.Face.openCamera start ⇒ CameraHal::openSession start准备开相机
S3 . CameraHal::openSession开相机
S4 . CameraHal::openSession end ⇒ CameraHal::configureStreams start 准备配流
S5 . CameraHal::configureStreams 实施配流
S6 . CameraHal::configureStreams end ⇒ setRepeatingRequest start 准备请求获图
S7 . setRepeatingRequest start ⇒ Camera2-CallbackConsumer:0 end(processNewCallback end) 返回请求图
S8 . Camera2-CallbackConsumer:0 end ⇒ TetrasEngine start 准备算法比对
S9 . TetrasEngine start ⇒ IBiometricsFaceClientCallback::onFilterFailedAcquired::client 算法比对失败
S10 . IBiometricsFaceClientCallback::onFilterFailedAcquired::client ⇒ processNewCallback end 重新请求并获图
S11 . processNewCallback end ⇒ TetrasEngine start 准备算法比对
S12 . TetrasEngine start ⇒ Biometric.Face.onAuthenticated_Success 算法比对成功
S13 . Biometric.Face.onAuthenticated_Success ⇒
KeyguardViewMediator.mViewMediatorCallback#keyguardGone
或者 (KeyguardViewMediator#handleStartKeyguardExitAnimation ) 锁屏动画消失

六、 Camx trace 开关

抓取方法必读

1.如果手机已经解锁,请跳过 1,2,3 这3个步骤,直接执行 4,5 两个步骤。
2.camx trace 开关参考 高通文档

        C:\Users\>adb reboot bootloader
        C:\Users\>fastboot  flashing unlock
                                                       OKAY [  0.036s]
        Finished. Total time: 0.049s
        C:\Users\>
        C:\Users\>adb root
        adbd is already running as root

        C:\Users\>adb remount
         ... ...
        Now reboot your device for settings to take effect

        C:\Users\>adb disable-verity
        verity is already disabled

        C:\Users\>adb reboot
     adb root
     adb remount
     adb shell mkdir /vendor/etc/camera
     adb shell rm -rf  /vendor/etc/camera/camxoverridesettings.txt
     adb shell touch  /vendor/etc/camera/camxoverridesettings.txt
     adb shell "echo traceGroupsEnable=0x10080 >> /vendor/etc/camera/camxoverridesettings.txt"
     adb shell "echo traceErrorEnable=TRUE >> /vendor/etc/camera/camxoverridesettings.txt"
     adb shell "echo traceOutputEnable=0x10080 >> /vendor/etc/camera/camxoverridesettings.txt"
     adb shell cat /vendor/etc/camera/camxoverridesettings.txt
     adb reboot
       adb root
       adb remount
       adb shell "echo 1 > /sys/kernel/tracing/events/camera/enable"    
  1. 抓取trace
    操作步骤:
    可以使用命令或者 trace 工具抓取

python systrace.py --time=10 camera sched hal freq video gfx -b 20480 -o filename.html

七、手机自带抓去systrace 方法

手机自带抓取Systrace 方法如下:

系统跟踪最下面的

至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

上一篇 下一篇

猜你喜欢

热点阅读