Fork me on GitHub

Camera 冷启动阶段分解

一、Camx trace 调试开关设置

1.设置 camxoverridesettings trace开关

    adb  root
    adb  remount
    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 reboot

2. 重启后设置开启camx trace 开关

因为 camxoverridesettings 只有重启之后可以生效,所以重启完成后需要开启trace 开关,既可以开始抓取Camera的 Systrace。

 adb shell "echo 1 > d/tracing/events/camera/enable"

二、Camera 冷启动阶段分解分析

1. 从 TouchUp 到 ActivityStart 耗时

从Touch UP 到 ActivityStart 阶段,系统创建App进程耗时:

image

  • 1.PostFork 耗时需要排查 Zygote.java 代码

Zygote.java frameworks\base\core\java\com\android\internal\os

    1. ZygoteInit 耗时需要排查ZygoteInit.java 代码

ZygoteInit.java frameworks\base\core\java\com\android\internal\os

  • 3.ActivityThreadMain耗时需要排查ActivityThread.java代码

ActivityThread.java frameworks\base\core\java\android\app

    1. bindApplication 耗时需要排查ActivityThread.java代码,同上

2. 从 ActivityStart 到 App 层 OpenCamera 耗时

1. App 开始执行 MainActivity 一系列 onCreate,onStart,onResume,openCamera等操作

image

2.Framework层 cameraserver 开始响应App getCameraCharacteristics 、connectDevice 等操作。

image

    1. activityStart 耗时需要排查 LaunchActivityItem.java 代码

LaunchActivityItem.java frameworks\base\core\java\android\app\servertransaction

    1. ResumeActivityItem耗时需要排查 ResumeActivityItem.java 代码

ResumeActivityItem.java frameworks\base\core\java\android\app\servertransaction

    1. Choreographer#doFrame 耗时需要排查 Choreographer.java 代码

Choreographer.java frameworks\base\core\java\android\view

3.HAL 层 OpenCamera耗时

image

HAL 层开始响应 APP OpenCamera的操作,并返回 open状态 给APP。

camera_module->open 耗时需要排查hal 层 CameraModule.cpp open 方法中的耗时

CameraModule.cpp hardware\interface\camera\common\1.0\default

4.APP 层 OpenCameraDone 到ConfigureStreams

image

5.HAL 层 ConfigureStreams 耗时

image

6. APP 层 ConfigureStreams Done 到 SetRepeatingRequests

image

7.SetRepeatingRequests 到 第一帧HAL3ProcessCaptureResult

image

8.HAL3ProcessCaptureResult 到第一帧Preview

image

9.Camera APP冷启动总耗时

image

posted @ 2024-07-18 23:15  yooooooo  阅读(4)  评论(0编辑  收藏  举报