当前位置: 首页 > article >正文

小蓝相机启动阶段trace学习笔记

daef1834fa07b7a11b2d6a4e364f446b.gif

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

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

一、启动阶段拆解概览

1. 启动阶段拆解表格

a3f167e2de23645b7c9cf499be1fb485.jpeg
Camera 启动阶段拆机表格

S0 :System

deliverInputEvent ===> activityStart 开始

S1 :Camera APP + Camera FWK

activityStart 开始 ===>CameraHal::openSession 开始

S2 :Camera HAL

CameraHal::openSession

S3 :Camera APP + Camera FWK

CameraHal::openSession 结束 ===>CameraHal::configureStreams 开始

S4 :Camera HAL

CameraHal::configureStreams

S5 :Camera APP + Camera FWK

CameraHal::configureStreams 结束===>submitRequestList 开始|

S6 :Camera HAL

submitRequestList 开始===>first full buffer

S7 :Camera APP

first full buffer ===>APP surfaceview

S8 :SurfaceFlinger

APP surfaceview===>SF HWC 屏显第一帧

二、 阶段拆解

S0 点击事件处理到Camera app 启动

7047c7fcb66380e9eb1507d9729c7301.jpeg
点击事件处理

S1 Camera app 启动到 下发openCamera

a9fe2f8e39938a24be2346598132ba1b.jpeg
Camera activitystart

S2 Camera HAL 开始 opencamera

e3d7dc16995fbbc0871b63a00fb5b2f4.jpeg
camera 下发open camera

S3 open Camera 结束,到配流开始

e2273a92701fca625a77476b72f9b086.jpeg
获取Camera 数,配流

S4 Camera HAL 配流并初始化usecase

706fb04f1565cf7e8d840fdd28c1d412.jpeg
Camera 配流并初始化usecase

S5 配流结束到提交预览请求

c11bcc978da70db14b60ef5cc8339be0.jpeg
提交预览请求

S6 提交预览请求到返回第一帧

963d8e5d7ccd0b47f5ca10d857d98cdf.jpeg
第一帧callback

S7 APP 处理第一帧并送给SurfaceFlinger

61ba2b74f21dd00d58abd73184168020.jpeg
APP 处理第一帧送给SurfaceFlinger

S8 vsync-SF 信息到来,SF 处理并送显示

be169c225a8ee5d46ed29cef32fb296c.jpeg
vsync-SF 信息到来,SF 处理并送显示

三、Trace 中的其他信息

1. 帧率

0215a029770283d8ae30dce7dc491dac.jpeg
Camera HAL 出图帧率 以及 屏幕显示帧率

2. CPU 负载 ,CPU频率

2e4e01e22f4d166895f24e6358dcbd1c.jpeg
CPU 负载

5887c18f16e06aafc8598cb40cfda98a.jpeg
CPU 频率 1.9GHZ 2.4G HZ

VIEngine-Main 预览帧处理

9ec9f1efe946e1fd9e20a2d5606a02b8.jpeg
VivoCamera 预览引擎

aaf671484ffea30ff0fc1df5eb085a8b.jpeg
预览帧处理

预览请求帧 与预览callback 帧处理

d58ca621492367048ba4f965a2c8bb4e.jpeg
Camera 第0帧 预览请求流程

6c2a2f77e75eb260866f6fe41d6347b3.jpeg
Camera 第 0帧 Callback流程
cb42c913e02a36c975e314293023ad97.jpeg
preivew 帧callback

perflock 提频相关

59637923e9a916ce168363e9db5966c4.jpeg
perflock 提频相关

四、log分析

配流信息:

行  163983: 08-22 16:14:46.219  1047  1537  7386 I CameraService: CameraService::connect call (PID 30560 "com.android.camera", camera ID 0) and Camera API version 2
    行  164229: 08-22 16:14:46.420  1047  1537  7386 I Camera3-Device: Camera 0: Creating new stream 0: 1440 x 1080, format 34, dataspace 0 rotation 0 consumer usage 0, isShared 0, physicalCameraId , isMultiResolution 0 dynamicRangeProfile 0x1, streamUseCase 0, timestampBase 0, mirrorMode 0, colorSpace -1, useReadoutTimestamp 0
    行  164237: 08-22 16:14:46.432  1047  1537  7386 I Camera3-Device: Camera 0: Creating new stream 1: 1440 x 1080, format 35, dataspace 146931712 rotation 0 consumer usage 0, isShared 0, physicalCameraId , isMultiResolution 0 dynamicRangeProfile 0x1, streamUseCase 0, timestampBase 0, mirrorMode 0, colorSpace -1, useReadoutTimestamp 0
    行  164246: 08-22 16:14:46.444  1047  1537  7386 I Camera3-Device: Camera 0: Creating new stream 2: 4080 x 3060, format 35, dataspace 146931712 rotation 0 consumer usage 0, isShared 0, physicalCameraId , isMultiResolution 0 dynamicRangeProfile 0x1, streamUseCase 0, timestampBase 0, mirrorMode 0, colorSpace -1, useReadoutTimestamp 0

参考文献:

【腾讯文档】Android Framework 知识库
https://docs.qq.com/doc/DSXBmSG9VbEROUXF5

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

cc8ec34efc9e0a2b997e736fa1af2e62.jpeg

点个在看,为大佬点赞!


http://www.kler.cn/a/543317.html

相关文章:

  • 用语言模型探索语音风格空间:无需情感标签的情 感TTS
  • Curser2_解除机器码限制
  • React 什么时候会触发重新渲染?
  • 7.推荐系统的评价与优化
  • 2025.2.11——一、[极客大挑战 2019]PHP wakeup绕过|备份文件|代码审计
  • 微信小程序分包异步化
  • 每日一题——括号生成
  • Selenium:网页frame与多窗口处理
  • 【大模型】阿里云百炼平台对接DeepSeek-R1大模型使用详解
  • Linux命名管道与共享内存
  • Linux之kernel(1)系统基础理论(2)
  • 51单片机俄罗斯方块整行消除函数
  • 数字人技术之LatentSync Win11本地部署
  • FPGA视频缩放转GTY光口传输,基于Aurora 8b/10b编解码架构,提供3套工程源码和技术支持
  • 数据结构 day02
  • 基于python sanic框架,使用Nacos进行微服务管理
  • elment-plus的表单的其中一项通过了验证再去走别的函数怎么写,不是全部内容通过验证
  • 银河麒麟kylin V10安装docker时出现的问题
  • 大数据学习之SparkStreaming、PB级百战出行网约车项目一
  • 数据可视化:让数据讲故事的力量
  • AI前端开发社区与资源:效率提升的秘密武器
  • 『哈哥赠书 - 55期』-『码农职场:IT人求职就业手册』
  • 使用 EMQX 接入 LwM2M 协议设备
  • GlusterFS 深度洞察:从架构原理到案例实践的全面解读(上)
  • Java(Springboot)
  • 使用Python爬虫获取淘宝搜索词推荐API接口