【MTK camera 相机冷启动的拆解笔记】

1 概述

冷启动大致可以分成以下几块内容:

S0(system)主要是 Activity 的创建耗时(从 Touch up,即 ptr:up 开始)
S1App从 Activity 创建成功,到下 open camera 的时间(对应 CameraService::connect); Note:我习惯把 S0 和 S1 算成一大阶段;
S2HALopen camera 到 onOpened(即 connect 调用完成)回调上去的时间;
S3ApponOpened 回调后,到 App 去 creatSession 的时间;
S4HALcreatSession 的耗时(对应整个endConfigure);
S5AppcreatSession 完成到 setRepeatingRequest 的时间;
S6HALsetRepeatingRequest 后到底层抛出第一帧(cameraserver 会有一个 first full buffer 的记录)的时间;
S7App+MultiMedia底层出第一帧后,到 App 真正第一次开始 draw 数据,数据送到 surfaceFlinger 显示出来(第二次 onMessageReceived 完成)的时间。
adb shell setprop service.adb.root 1
开发者模式关闭再打开
sched/freq/idle  #这三个tag是cpu 信息,无论如何必须带上
gfx/view/input  #测试列表滑动.桌面滑动.这种流畅性问题
gfx/view/imput/hwui  #绘图问题
gfx/view/input/res/am/wm #测试app启动
gfx/view/input/dalvik/disk  #GC或者IO导致卡顿
gfx/view/input/res/am/wm/power #亮屏,电量相关
python systrace.py gfx camera view input sched freq video disk dalvik res am wm -b 20480 -t 5 -o trace.html
S0:Touch Up → ActivityStart

S1:ActivityStart → open camera | start

S2:Open camera

S3:Open camera | end → Configure streams | start

S4:Configure streams

S5:Configure streams | end → SetRepeatingRequests

S6:SetRepeatingRequests → 1st frame out from hal

S7:1st frame out from hal → Display show 1st frame

2 S0+S1

system+app耗时

搜索关键字ptr:up

1
可以看到如下的内容:这是按下相机按钮并且抬起的操作
2

从 这里开始计时到connectDevice结束是S0+S1的时间.

S1的主要时间是activityStart到connectDevice

S0: AppLaunch_dispatchPtr:Up --> activityStart

S1: activityStart --> connectDevice

3 S2

hal耗时

搜索connectDevice

3

可以看到 connectDevice的持续时间.这就是S2的耗时

4

4 S3

app耗时

从下图可以看到是从 connectDevice 的结尾到 endConfigure 的开始

5

5 S4

hal 耗时

endConfigure的持续时间

6

6 S5

app耗时

从endConfigure的结尾到setRepeatingRequest返回完成

7
8

7 S6

hal 耗时

直接搜索 first full buffer . 有的 apk 会返回多个.一般都是以最后一个收尾为主.
这个一般都是和captureRequest返回在一起的.

耗时是从 setRepeatingRequest 计算到 first full buffer 返回

8 S7

app和多媒体耗时

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值