和你一起终身学 习,这里是程序员Android
经典好文推荐,通过阅读本文,您将收获以下知识点:
一、启动阶段拆解概览
1. 启动阶段拆解表格
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 启动
点击事件处理
S1 Camera app 启动到 下发openCamera
Camera activitystart
S2 Camera HAL 开始 opencamera
camera 下发open camera
S3 open Camera 结束,到配流开始
获取Camera 数,配流
S4 Camera HAL 配流并初始化usecase
Camera 配流并初始化usecase
S5 配流结束到提交预览请求
提交预览请求
S6 提交预览请求到返回第一帧
第一帧callback
S7 APP 处理第一帧并送给SurfaceFlinger
APP 处理第一帧送给SurfaceFlinger
S8 vsync-SF 信息到来,SF 处理并送显示
vsync-SF 信息到来,SF 处理并送显示
三、Trace 中的其他信息
1. 帧率
Camera HAL 出图帧率 以及 屏幕显示帧率
2. CPU 负载 ,CPU频率
CPU 负载
CPU 频率 1.9GHZ 2.4G HZ
VIEngine-Main 预览帧处理
VivoCamera 预览引擎
预览帧处理
预览请求帧 与预览callback 帧处理
Camera 第0帧 预览请求流程
Camera 第 0帧 Callback流程
preivew 帧callback
perflock 提频相关
perflock 提频相关
四、log分析
配流信息:
go
行 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
参考文献:
【腾讯文档】Camera学习知识库
https://docs.qq.com/doc/DSWZ6dUlNemtUWndv
至此,本篇已结束。转载网络的文章,小编觉得很优秀,欢迎点击阅读原文,支持原创作者,如有侵权,恳请联系小编删除,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!
点个在看,为大佬点赞!