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. E - E(最短路解决源点到多点,多点到源点的和(有向图))

    问从1号点到各个点的距离+各个点到1号点之间的距离和的最小值 详解键连接https://www.cnblogs.com/csx-zzh/p/13411588.html In the age of te ...

  2. Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version)(单调栈,递推)

    Codeforces Round #622 (Div. 2) C2. Skyscrapers (hard version) 题意: 你是一名建筑工程师,现给出 n 幢建筑的预计建设高度,你想建成峰状, ...

  3. AtCoder Beginner Contest 161

    比赛链接:https://atcoder.jp/contests/abc161/tasks AtCoder Beginner Contest 161 第一次打AtCoder的比赛,因为是日本的网站终于 ...

  4. poj 3468A Simple Problem with Integers

    Description You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. On ...

  5. hdu3516 Tree Construction

    Problem Description Consider a two-dimensional space with a set of points (xi, yi) that satisfy xi & ...

  6. Gome 高性能撮合引擎微服务

    Gome 高性能撮合引擎微服务 使用 Golang 做计算,gRPC 做服务,ProtoBuf 做数据交换,RabbitMQ 做队列,Redis 做缓存实现的高性能撮合引擎微服务 依赖 具体依赖信息可 ...

  7. Python爬虫全网搜索并下载音乐

    现在写一篇博客总是喜欢先谈需求或者本内容的应用场景,是的,如果写出来的东西没有任何应用价值,确实也没有实际意义.今天的最早的需求是来自于如何免费[白嫖]下载全网优质音乐,我去b站上面搜索到了一个大牛做 ...

  8. 1. mac 手动安装nodejs搭建vue环境

    为什么选择手动安装nodejs呢? 因为使用mac自动安装还要更新homebrew,还要安装xcode tool, 太费劲了,不如手动安装, 卸载起来也方便 再一个, 我是后台开发者, 对前端页面, ...

  9. certbot 获取数字证书失效问题

    title: certbot 获取数字证书失效问题 author: Narule date: 2021-02-18 10:45:00 +0800 categories: [Technology^技术, ...

  10. Sentry 高级使用教程

    Sentry 高级使用教程 Sentry versions https://github.com/getsentry/sentry-docs https://github.com/getsentry/ ...