2024年10月29日 第20讲 从Trace统计预览Buffer Path各层帧率 极客笔记
本讲是Android Camera性能分析专题的第20讲,我们介绍从Trace统计预览Buffer Path各层帧率,包括如下内容:
资源 | 描述 |
---|---|
在线课程 | 极客笔记在线课程 |
知识星球 | 星球名称:深入浅出Android Camera 星球ID: 17296815 |
极客笔记圈 |
基于Android 13模拟器抓的Trace,我们来分析Google Camera HAL送给Framework的帧率。
下图圈起来的7623ms,总共发生452次ProcessResult, 帧率为29.6fps(更多细节参阅视频讲解)。
基于Android 13模拟器抓的Trace,Camera Server送给Camera App的帧率,分两种情况:SurfaceTexture和SurfaceView。
PreviewSpacer在7540ms内送了223帧,帧率为29.57fps
统计ProcessCaptureResult可以看到QueueBuffer的次数,帧率为29.66fps。
也可以直接看cam2_frame的帧率统计,比如如下9.5fps.
基于Android 13模拟器抓的Trace,Camera App送给SurfaceFlinger的帧率,分两种情况:SurfaceTexture和SurfaceView。
统计SurfaceView的脉冲个数(也可以统计onFrameAvailable – SurfaceView个数),如下图帧率为29.66fps。
TextureView是通过RenderThread将Camera预览Buffer和UI Buffer合并在一起的,从Trace中很难统计出真实帧率,我们这里通过SQL语句来分析是否有发生丢帧现象(具体参考视频讲解)
如定位到是Camera HAL送图帧率慢,还需要进一步考虑其他因素,比如
本文链接:http://so.lmcjl.com/news/16521/