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 → 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

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



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

S1的主要时间是activityStart到connectDevice

S0: AppLaunch_dispatchPtr:Up --> activityStart

S1: activityStart --> connectDevice

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和多媒体耗时,有待研究

mtk相机冷启动拆解的更多相关文章

  1. 关于android MTK相机L版本,切换屏幕比例后,分辨率随之改变,但重新进入相机后原有分辨率不再生效问题

    BUG详细:比如4:3的时候是200W,切成全屏变400W,重新切回4:3为300W,退出相机后,重新进入又变成200W. 原因分析:这个版本的设计如此,当你点选屏幕比例的时候,程序设计是把这个比例值 ...

  2. MTK Android 默认值修改笔记

    1.设置菜单: 1.1位置信息(Location)默认关闭: 请将 alps\frameworks\base\packages\SettingsProvider\res\values\default. ...

  3. 论山寨手机与Android联姻 【6】MTK手机的基带芯片

    MTK的硬件技术的核心,在于它的基带芯片.为了降低成本,同时缩减手机主板的面积,基带芯片中除了CPU以外,还集成了很多外设控制器.Feature Phone的功能,基本上取决于基带芯片所支持的外设功能 ...

  4. 论山寨手机与Android联姻 【5】MTK颠覆手机产业链

    MTK一站式解决方案(Turn-Key)模式出现以前,手机设计开发流程大约可以分成以下6步. 第1步,Design House从芯片厂商那里拿到参考设计. 芯片厂商根据自己的市场部门对手机市场的预测, ...

  5. MTK Camera相关的Makefile Option详解

    列举了所有Camera相关的MakefileOption,并对其功能含义和OptionValues做了详细的解释.[KEYWORD]Others[SOLUTION]YUVCAM_INTERPOLATI ...

  6. MTK Camera驱动移植

    对于MTK Camera驱动移植一般分为四部分: 1.硬件IO口配置: 2.Camera驱动移植: 3.上电时序. 4.改动i2c控制器: 硬件电路: 1.GPIO配置 打开 mediatek\dct ...

  7. Android9.0 MTK 平板横屏方案修改(强制app横屏 + 开机logo/动画+关机充电横屏 + RecoveryUI 横屏)

    文章较长建议先收藏再看 拆解步骤 1.app 强制横屏显示,无视 android:screenOrientation="portrait" 属性 2.屏幕触摸坐标修改为横屏 3.开 ...

  8. 【VS开发】【图像处理】相机中白平衡的算法模拟实现

    相机主要技术点为3A算法. 而3A算法主要指的是自动对焦(AF).自动曝光(AE)及自动白平衡(AWB).自动白平衡:根据光源条件调整图片颜色的保真程度. 网上时常有类似招聘如下的招聘信息: ---- ...

  9. 【硬核摄影2.0】用线性CCD器件制作扫描相机

    本文参考资料:[1] (Strongly Recommend!) Fundamentals and Experiments of Line Scan Camera: http://www.elm-ch ...

随机推荐

  1. hdu5432Rikka with Array (数位dp+十进制转化为二进制)

    Problem Description As we know, Rikka is poor at math. Yuta is worrying about this situation, so he ...

  2. Codeforces Round #570 (Div. 3) G. Candy Box (hard version) (贪心,优先队列)

    题意:你有\(n\)个礼物,礼物有自己的种类,你想将它们按种类打包送人,但是打包的礼物数量必须不同(数量,与种类无关),同时,有些礼物你想自己留着,\(0\)表示你不想送人,问你在送出的礼物数量最大的 ...

  3. 国产smartbits版本-minismb测试高恪路由器IP限速

    Minismb测试仪表是复刻smartbits的国产版本,是一款专门用于测试智能路由器,网络交换机的性能和稳定性的软硬件相结合的工具.可以通过此工具测试任何ip网络设备的端口吞吐率,带宽,并发连接数和 ...

  4. K8s Deployment YAML 名词解释

    Deployment 简述 Deployment 为 Pod 和 ReplicaSet 提供了一个声明式定义 (declarative) 方法,用来替代以前的 ReplicationControlle ...

  5. Automatic merge failed; fix conflicts and then commit the result.解决方法

    产生原因: git pull 的时候会分为两步,第一步先从远程服务器上拉下代码,第二步进行merge.当你merge时候失败了就会产生Automatic merge failed; fix confl ...

  6. 2021-2-16:请问你知道分布式设计模式中的Quorum思想么?

    有效个数(Quorum) 有效个数(Quorum)这个设计模式一般是指分布式系统的每一次修改都要在大多数实例上通过来确定修改通过. 问题背景 在一个分布式存储系统中,用户请求会发到一个实例上.通常在一 ...

  7. asp.net 从Excel表导入数据到数据库中

    http://www.cnblogs.com/hfzsjz/archive/2010/12/31/1922901.html http://hi.baidu.com/ctguyg/item/ebc857 ...

  8. vue watcher errors

    vue watcher errors Error in callback for watcher TypeError: Cannot set property of undefined" n ...

  9. how to input special symbol in macOS

    how to input special symbol in macOS 如何在 macOS 中输入特殊符号 1024 ≈ 1000 2^10 == 1024 约等于 1000, 方便用来表示 Opt ...

  10. Xcode show whitespace

    Xcode show whitespace Xcode 11.5 how to config Xcode show whitespace 如何配置 Xcode 显示空白字符 Editor -> ...