Mtk相机冷启动--耗时

概述
冷启动分为

  • s0、s1、s2、s3、s4、s5、s6、s7

  • 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

  • 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+s1

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

在这里插入图片描述

  • 可以看到如下的内容:这是按下相机按钮并且抬起的操作
    在这里插入图片描述

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

  • S1的主要时间是activityStart到connectDevice

  • S0: AppLaunch_dispatchPtr:Up --> activityStart

  • S1: activityStart --> connectDevice

s2

  • hal耗时 搜索connectDevice

在这里插入图片描述

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

在这里插入图片描述

s3

  • app耗时 从下图可以看到是从connectDevice的结尾到 endConfigure的开始
    在这里插入图片描述

s4

  • hal 耗时 endConfigure的持续时间
    在这里插入图片描述

s5

  • app耗时 从endConfigure的结尾到setRepeatingRequest返回完成
    在这里插入图片描述
    在这里插入图片描述

s6

  • hal耗时

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

  • 这个一般都是和captureRequest返回在一起的.

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

s7

  • app和多媒体耗时

冷启动耗时补充:

  • 从TouchUp到ActivityStart耗时
    在这里插入图片描述

  • PostFork 耗时需要排查 Zygote.java 代码

  • Zygote.java frameworks\base\core\java\com\android\internal\os

  • ZygoteInit 耗时需要排查ZygoteInit.java 代码

  • ZygoteInit.java frameworks\base\core\java\com\android\internal\os

  • ActivityThreadMain耗时需要排查ActivityThread.java代码

  • ActivityThread.java frameworks\base\core\java\android\app

  • bindApplication 耗时需要排查ActivityThread.java代码,同上

从ActivityStart到App层OpenCamera耗时

  • App开始执行MainActivity一系列onCteate,onStart,onReusme,openCamera等操作

在这里插入图片描述

  • Framework层cameraserver开始相应App getCameraCharacteristics、connectDevice等操作。
    在这里插入图片描述

  • activityStart 耗时需要排查 LaunchActivityItem.java 代码

  • LaunchActivityItem.java frameworks\base\core\java\android\app\servertransaction

  • ResumeActivityItem耗时需要排查 ResumeActivityItem.java 代码

  • ResumeActivityItem.java frameworks\base\core\java\android\app\servertransaction

  • Choreographer#doFrame 耗时需要排查 Choreographer.java 代码

  • Choreographer.java frameworks\base\core\java\android\view

HAL 层 OpenCamera耗时

  • HAL 层开始响应 APP OpenCamera的操作,并返回 open状态 给APP。

在这里插入图片描述

  • camera_module->open 耗时需要排查hal 层 CameraModule.cpp open 方法中的耗时

  • CameraModule.cpp hardware\interface\camera\common\1.0\default

App层OpenCameraDone到ConfigureStreams在这里插入图片描述

HAL层configureStreams耗时在这里插入图片描述

  • APP 层 ConfigureStreams Done 到 SetRepeatingRequests

  • SetRepeatingRequests 到 第一帧HAL3ProcessCaptureResult
    在这里插入图片描述
    在这里插入图片描述

HAL3ProcessCaptureResult 到第一帧Preview在这里插入图片描述
在这里插入图片描述

Camera APP冷启动总耗时

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值