第20讲 从trace统计预览buffer path各层帧率 -凯发k8手机登录

本讲是android camera性能分析专题的第20讲,我们介绍从trace统计预览buffer path各层帧率,包括如下内容:

  1. camera provider预览帧率统计
  2. camera server预览帧率统计
  3. camera app预览帧率统计
  4. 如何分析预览帧率不足问题
资源 描述
在线课程
知识星球 星球名称:深入浅出android camera
星球id: 17296815
wechat 极客笔记圈

camera provider预览帧率统计

基于android 13模拟器抓的trace,我们来分析google camera hal送给framework的帧率。

下图圈起来的7623ms,总共发生452次processresult, 帧率为29.6fps(更多细节参阅视频讲解)。

camera provider预览帧率统计

camera server预览帧率统计

基于android 13模拟器抓的trace,camera server送给camera app的帧率,分两种情况:surfacetexture和surfaceview。

surfacetexture

previewspacer在7540ms内送了223帧,帧率为29.57fps

camera server预览帧率统计

surfaceview

统计processcaptureresult可以看到queuebuffer的次数,帧率为29.66fps。

camera server预览帧率统计

也可以直接看cam2_frame的帧率统计,比如如下9.5fps.

cam2_frame的帧率统计

camera app预览帧率统计

基于android 13模拟器抓的trace,camera app送给surfaceflinger的帧率,分两种情况:surfacetexture和surfaceview。

surfaceview

统计surfaceview的脉冲个数(也可以统计onframeavailable – surfaceview个数),如下图帧率为29.66fps。

camera app预览帧率统计

使用surfaceview时,app不参与预览buffer的处理,所以我们这里可以简单以surfaceview的脉冲个数作为帧率统计。

textureview

textureview是通过renderthread将camera预览buffer和ui buffer合并在一起的,从trace中很难统计出真实帧率,我们这里通过sql语句来分析是否有发生丢帧现象(具体参考视频讲解)

如何分析预览帧率不足问题

surfaceview

  • 大概率是camera hal送的帧率不够,因为camera app不参与buffer处理
  • 从cameraserver角度看做第一手分析(详见视频讲解)

surfacetexture

  • 从camera app角度做第一手分析,看是hal送的帧率问题,还是app处理buffer导致的问题

帧率需要考虑的其他因素

如定位到是camera hal送图帧率慢,还需要进一步考虑其他因素,比如

  • app设置的fps range是否导致限制了帧率
  • 测试环境明亮程度或ae限制sensor出图帧率,导致帧率不足

camera课程

python教程

java教程

web教程

数据库教程

图形图像教程

办公软件教程

linux教程

计算机教程

大数据教程

开发工具教程

android camera性能分析

网站地图