文章目录

  • 1 概述
  • 2 S0+S1
  • 3 S2
  • 4 S3
  • 5 S4
  • 6 S5
  • 7 S6
  • 8 S7

1 概述

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

S0 (system) 主要是 Activity 的创建耗时(从 Touch up,即 ptr:up 开始) ptr:up
S1 App 从 Activity 创建成功,到下 open camera 的时间(对应 CameraService::connect); Note:我习惯把 S0 和 S1 算成一大阶段;
S2 HAL open camera 到 onOpened(即 connect 调用完成)回调上去的时间;
S3 App onOpened 回调后,到 App 去 creatSession 的时间;
S4 HAL creatSession 的耗时(对应整个endConfigure);
S5 App creatSession 完成到 setRepeatingRequest 的时间;
S6 HAL setRepeatingRequest 后到底层抛出第一帧(cameraserver 会有一个 first full buffer 的记录)的时间;
S7 App+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 → ActivityStartS1:ActivityStart → open camera | startS2:Open cameraS3:Open camera | end → Configure streams | startS4:Configure streamsS5:Configure streams | end → SetRepeatingRequestsS6:SetRepeatingRequests → 1st frame out from halS7:1st frame out from hal → Display show 1st frame

2 S0+S1

system+app耗时
搜索关键字ptr:up

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

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

S1的主要时间是activityStart到connectDevice

S0: AppLaunch_dispatchPtr:Up --> activityStart

S1: activityStart --> connectDevice

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-jbcqITt4-1614505806413)(https://i.loli.net/2021/02/13/vJPn9CIAjFhYcKe.png)]

3 S2

hal耗时

搜索connectDevice

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

4 S3

app耗时

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

5 S4

hal 耗时
endConfigure的持续时间

6 S5

app耗时

从endConfigure的结尾到setRepeatingRequest返回完成


7 S6

hal耗时

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

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

8 S7

app和多媒体耗时

【camera】Mtk相机冷启动的拆解笔记相关推荐

  1. Camera和Image sensor技术基础笔记(5) -- HDR相关技术

    动态范围(Dynamic Range) 动态范围最早是信号系统的概念,一种信号系统的动态范围定义为:最大的信号不失真的电平和噪声电平的差,在实际场景中,多用分贝(dB)为单位来衡量一个信号系统的动态范 ...

  2. Camera Calibration 相机标定

    Camera Calibration 相机标定 一.相机标定方法 在opencv中提供了一组函数用于实现相机的标定,标定返回的值包括:相机内参矩阵(fx fy xc yc).相机外参矩阵(R t)以及 ...

  3. 关于qcom camera cpp driver 的buf分析笔记(msm8996)

    关于qcom camera cpp driver 的buf分析笔记(msm8996) tags : linux camera 文章目录 关于qcom camera cpp driver 的buf分析笔 ...

  4. mtk+android+之mt6577驱动笔记,MTK6577+Android之音频(audio)移植

    MTK6577+Android之音频(audio)移植 备注:audio PA音频功放(power amplifier) 先借用<Y1MT6577 design notice V0.1>关 ...

  5. RGB-D Camera深度相机主流方案对比

    RGB-D Camera深度相机主流方案对比         视觉方案 RGB双目 结构光 TOF 测距方式 被动式 主动式 主动式 工作原理 双目匹配,三角测量 激光散斑编码 发射与反射信号时间差 ...

  6. 28、Intel RealSense Depth Camera D415相机使用教程

    基本思想:手中有一块微软的深度相机,结合手册和逻辑写个代码测试一下 注意:深度相机实际与实例分隔模型相结合是效果最佳的,基本思路就是分隔出目标,然后将深度图和RGB图进行对其,然后对实例的图像去关键点 ...

  7. android 画中画camera,PIP Camera(画中画相机)

    PIP Camera是一款关于相机的应用多款特效效果任你挑,pip camera官方版拥有丰富的滤镜,是朋友圈装逼图片必备的特效相机. PIP Camera(画中画相机)软件介绍: 朋友圈晒图必备,自 ...

  8. [笔记分享] [Camera] MTK Camera基础知识二

    Platform: MediaTek 色再现流程: 弥散圆: 在焦点前后,光线开始聚集和扩散,点的影像变成模糊的一个扩大的圆,就是弥散圆. 人眼能够最小扁人的圆成为容许弥散圆. 焦深: 焦点前后各有一 ...

  9. [笔记分享] [Camera] 各种相机种类及区别

    之前工作笔记,分享给大家! 成像原理:

最新文章

  1. InnoDB和MyISAM区别
  2. python变量详解_Python 变量详解[学习 Python 必备基础知识][看此一篇就够了]
  3. 成功的自动化测试实施的5大支柱(译)
  4. python编译exe文件太大了_python编译windows下可执行的exe文件
  5. mysql分析表命令_MySql分析整理命令
  6. 豪鹫闲谈--什么因素影响了我们的工资
  7. python列表常用方法_第24p,必须掌握,列表的常用方法
  8. Java web表单异步提交,javaweb系统,我的电脑浏览器可以正常异步提交操作参数给后台,但是同事电脑今天却不知道怎么了,提交给后台的参数为空...
  9. 微信小程序+TP5——token令牌生成
  10. Angular实现悬浮球组件
  11. 重磅!TensorFlow 2.0 来了!
  12. MySQL级联复制(A-B-C) —log-slave-updates = 1
  13. 使用IB时设置textView属性崩溃
  14. nacos注册中心demo
  15. “strcmp”不能将参数从“LPWSTR”转换为“const char *”
  16. iOS:栈、堆、字符串常量区、全局区
  17. 基于Springboot的在线音乐网站开发与实现
  18. 【论文精读】A view-free image stitching network based on global homography-基于全局单应的无视图图像拼接网络
  19. Is not configured
  20. my soft_macsoft

热门文章

  1. RK3568-SARADC
  2. VMware vsphere和VMware vsphere Hypervisor有什么不同
  3. im4java 水印_app后端设计(13)--IM4JAVA+GraphicsMagick实现中文水印
  4. 【adcdn优化案例】某工具类app广告优化收益增长275%经验分享
  5. 阿里云,百度云等云服务器中搭建gitblit-1.8.0时,报java.net.BindException: Cannot assign requested address: bind
  6. 嵌入式系统硬件设计与实践(学习方法)
  7. 一个IT人才的精彩故事
  8. spring报MySQLSyntaxErrorException: Unknown error 1146
  9. DebugView在win7下没有输出内核信息解决办法
  10. 盘点最常见的5个编程语言排行榜、排名逻辑最新榜单。