<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          高通Camx 相機(jī)冷啟動(dòng)trace 分解

          共 5002字,需瀏覽 11分鐘

           ·

          2021-01-19 13:29

          和你一起終身學(xué)習(xí),這里是程序員Android

          經(jīng)典好文推薦,通過閱讀本文,您將收獲以下知識點(diǎn):

          一、Camx trace 調(diào)試開關(guān)設(shè)置
          二、Camx 調(diào)試開關(guān)設(shè)置懶人腳本
          三、Camera 冷啟動(dòng)階段分解分析

          一、Camx trace 調(diào)試開關(guān)設(shè)置

          1.設(shè)置 camxoverridesettings trace開關(guān)

              adb  root
          adb remount
          adb shell "echo traceGroupsEnable=0x10080 >> /vendor/etc/camera/camxoverridesettings.txt"
          adb shell "echo traceErrorEnable=TRUE >> /vendor/etc/camera/camxoverridesettings.txt"
          adb shell "echo traceOutputEnable=0x10080 >> /vendor/etc/camera/camxoverridesettings.txt"
          adb reboot

          2. 重啟后設(shè)置開啟camx trace 開關(guān)

          因?yàn)?camxoverridesettings 只有重啟之后可以生效,所以重啟完成后需要開啟trace 開關(guān),既可以開始抓取Camera的 Systrace。

           adb shell "echo 1 > d/tracing/events/camera/enable"

          二、Camx 調(diào)試開關(guān)設(shè)置懶人腳本

          下面腳本主要用來設(shè)置Camx debug trace 開關(guān)的,內(nèi)容如下:

          #bin/bash

          # setting camxoverridesettings prop
          funSetCamxoverridesettings(){

          adb shell "echo traceGroupsEnable=0x10080 >> /vendor/etc/camera/camxoverridesettings.txt"
          adb shell "echo traceErrorEnable=TRUE >> /vendor/etc/camera/camxoverridesettings.txt"
          adb shell "echo traceOutputEnable=0x10080 >> /vendor/etc/camera/camxoverridesettings.txt"
          }

          # setting CameraTrace prop
          funEnableCameraTrace(){

          adb shell "echo 1 > d/tracing/events/camera/enable"
          }

          # cat setting result
          funCatCameraProp(){
          echo "--------------------------------------------"
          echo "please check Camera trace prop is set sucess"
          echo "--------------------------------------------"
          echo "camxoverridesettings prop :*****************"
          adb shell cat /vendor/etc/camera/camxoverridesettings.txt
          echo "tracing prop :******************************"
          adb shell cat d/tracing/events/camera/enable
          }

          # it's only used in debug version
          funRemountDevice(){
          adb root
          adb remount

          if [ $? -eq 0 ]; then

          echo "remount success"
          funSetCamxoverridesettings
          adb shell cat /vendor/etc/camera/camxoverridesettings.txt

          for((i=0;$i<=10;i++))
          do
          sleep 1
          echo "waring !!! the phone will reboot after $i s"
          done

          adb reboot

          for((i=0;$i<=50;i++))
          do
          sleep 1
          echo "waiting phone is reboot after $i s "
          done
          adb root
          adb remount
          funEnableCameraTrace
          funCatCameraProp
          else

          echo "remount failed,please remount the devices"

          fi
          }


          # main
          funRemountDevice
          echo "input any num exit "
          read num

          查看Camera 相關(guān)進(jìn)程

          測試后查看下Camera 相關(guān)進(jìn)程,有助于后續(xù)Systrace 有選擇的分析查看。

          C:\Users\ProgramAndroid>adb shell  ps | findstr camera
          cameraserver 810 1 4396356 124740 0 0 S android.hardware.camera.provider@2.4-service_64
          cameraserver 807 1 37792 3240 0 0 S vendor.oneplus.hardware.camera@1.0-service
          cameraserver 1418 1 69628 11096 0 0 S cameraserver
          system 6519 683 5221532 33168 0 0 S com.oneplus.camera.service
          u0_a130 9163 683 6052676 46388 0 0 S com.oneplus.camera.pictureprocessing
          system 10641 683 5594508 84672 0 0 S com.wingtech.cameraCalibration
          u0_a138 12467 683 7046152 135544 0 0 S com.oneplus.camera

          三、Camera 冷啟動(dòng)階段分解分析

          1. 從 TouchUp 到 ActivityStart 耗時(shí)

          從Touch UP 到 ActivityStart 階段,系統(tǒng)創(chuàng)建App進(jìn)程耗時(shí):

          • 1.PostFork 耗時(shí)需要排查 Zygote.java 代碼

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

          • 2.ZygoteInit 耗時(shí)需要排查ZygoteInit.java 代碼

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

          • 3.ActivityThreadMain耗時(shí)需要排查ActivityThread.java代碼

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

          • 4.bindApplication 耗時(shí)需要排查ActivityThread.java代碼,同上

          2. 從 ActivityStart 到 App 層 OpenCamera 耗時(shí)

          1. App 開始執(zhí)行 MainActivity 一系列 onCreate,onStart,onResume,openCamera等操作

          2.Framework層 cameraserver 開始響應(yīng)App getCameraCharacteristics 、connectDevice 等操作。

          camera Server 在此期間的行為

          • 1.activityStart 耗時(shí)需要排查 LaunchActivityItem.java 代碼

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

          • 2.ResumeActivityItem耗時(shí)需要排查 ResumeActivityItem.java 代碼

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

          • 3.Choreographer#doFrame 耗時(shí)需要排查 Choreographer.java 代碼

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

          3.HAL 層 OpenCamera耗時(shí)

          HAL 層開始響應(yīng) APP OpenCamera的操作,并返回 open狀態(tài) 給APP。


          Camera HAL OpenCamera 耗時(shí)

          • 1.camera_module->open 耗時(shí)需要排查hal 層 CameraModule.cpp open 方法中的耗時(shí)

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

          4.APP 層 OpenCameraDone 到ConfigureStreams

          5.HAL 層 ConfigureStreams 耗時(shí)

          6. APP 層 ConfigureStreams Done 到 SetRepeatingRequests

          7.SetRepeatingRequests 到 第一幀HAL3ProcessCaptureResult

          8.HAL3ProcessCaptureResult 到第一幀Preview

          9.Camera APP冷啟動(dòng)總耗時(shí)

          友情推薦:

          Android 開發(fā)干貨集錦

          至此,本篇已結(jié)束。轉(zhuǎn)載網(wǎng)絡(luò)的文章,小編覺得很優(yōu)秀,歡迎點(diǎn)擊閱讀原文,支持原創(chuàng)作者,如有侵權(quán),懇請聯(lián)系小編刪除,歡迎您的建議與指正。同時(shí)期待您的關(guān)注,感謝您的閱讀,謝謝!

          點(diǎn)個(gè)在看,方便您使用時(shí)快速查找!

          瀏覽 145
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          評論
          圖片
          表情
          推薦
          點(diǎn)贊
          評論
          收藏
          分享

          手機(jī)掃一掃分享

          分享
          舉報(bào)
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  91久久电影 | 俺去电影院 | 在线观看亚洲视频 | 男人天堂新地址 | 国产成人麻豆免费观看 |