高通 Android10/12 4 6dof Camera+2RGBCamera异常处理经验总结
1 背景:此需求apk距离之前更改时间将近9个月,我们这边原来跟驱动那边对接指令和角度 后续没有改过,测试部说apk cameaid提示信息不正确。
2 原因:因为之前用的1.0基线(Android 10) 后面由于客户功能需求变更,还有包括硬件功能升级为1.2基线(Android 12),驱动也用比较工具对比之前1.0基线(Android 10) ,但是没有发现有什么异常?说是一样的?这里我先留个疑问哈?
3、question :如果您作为几年职场开发老鸟你会怎么做接下来?评论区可以留下你们的足迹。
我下面说出我的猜想思路
猜想1、对比之前所有板子 1.0基线(Android 10) 点击进入6 camera(4 6dof+2 RGB 摄像头) apk的抓取一份正常的日志 和一份异常的日志 进行对比!
猜想2、现有的板子抓取一份1.0基线(Android 10)和1.2基线(Android 12)正常打开camera和异常提示camerid异常信息各抓取一份!
猜想3、排查之前6camera apk和测试部用的apk是否保持一致!
4、 验证猜想1 正常验证cameraid adb shell dumpsys media.camera 可以看到当前读取几个camera设备
1.0基线 正常日志

1.0基线异常日志

验证猜想 2
1.2基线 异常的日志

验证猜想 3:
对比apk的MD5 值测试部与我的一致 所以 猜想 3也是没有问题
5、于是得出结论 驱动需要检查 1.0基线与1.2 基线 camera配置xml参数为什么不一致 发生了什么变化? 因为apk是没有改动东西 apk对应指令与驱动那边角度要保持一致(之前联调的时候协商好) 否则就会出现异常cameraid 提示信息不正确 就ok了
6、驱动修改之后 编译固件 验证不管是1.0还是1.2基线正常提示id信息已经保持一致 只要保持1.2基线camera角度与上层apk应用指令保持一致 就ok 如下图所示


总结:
1、遇到问题不要慌 最好每次调试将一些调试笔记记录清楚(logcat) 不然时间久了谁都会忘记 加上代码没有注释基本无解 好记性不如烂笔记哈
2、基本所有问题都可以从logcat里面找到你要的正常流程或者异常流程信息
3、对于一个功能跨基线比如(Android 10升级到Android 12肯定发生了很大的改变 里面的camera 摄像头一些信息 提前去Google开发者官网了解更新的一些release note信息 知己知彼 方能百战百胜哈
4、要有耐心 包括对比分析 交叉验证(多拿几台机器进行验证) 这些都是一些常用调试手段
5、如果后面提示其他cameraid互换顺序 验证手段基本类似
到这里基本结束 大家也可以根据自己需求 对比其他的平台进行验证 这里只是参考 抛砖引玉,写的不够充分,还请大家谅解哈。
转载请注明出处 谢谢 高通 Android10/12 4 6dof Camera+2RGBCamera异常处理经验总结_KdanMin的博客-CSDN博客
相关文章:
高通 Android10/12 4 6dof Camera+2RGBCamera异常处理经验总结
1 背景:此需求apk距离之前更改时间将近9个月,我们这边原来跟驱动那边对接指令和角度 后续没有改过,测试部说apk cameaid提示信息不正确。 2 原因:因为之前用的1.0基线(Android 10) 后面由于客户功能需求变更ÿ…...
项目实战典型案例17——环境混用来带的影响
环境混用来带的影响一:背景介绍背景出现的事故二:思路&方案环境混用的危害如何彻底避免环境混用的问题四:总结五:升华一:背景介绍 本篇博客是对对项目开发中出现的环境混用来带的影响进行的总结并进行的改进。目的…...
Linux【进程理解】
文章目录Linux【进程理解】一、冯诺依曼体系结构二、操作系统OS1.深入理解操作系统2.深入理解系统调用和库函数四、 进程(一)描述进程-PCB(二)组织进程和查看进程(三)通过系统调用创建进程-fork初识&#x…...
【华为OD机试2023】数组的中心位置 C++ Java Python
【华为OD机试2023】数组的中心位置 C++ Java Python 前言 如果您在准备华为的面试,期间有想了解的可以私信我,我会尽可能帮您解答,也可以给您一些建议! 本文解法非最优解(即非性能最优),不能保证通过率。 Tips1:机试为ACM 模式 你的代码需要处理输入输出,input/cin接收…...
“大数据时代下的地理信息可视化:ECharts地图和数据面板实践“
数据可视化是一种数据分析技术,它通过将数据转化为图形或图表等可视化方式,以便更好地理解和解释数据。在实际应用中,数据可视化被广泛用于数据监控、业务分析、决策支持等领域。而ECharts是一款优秀的数据可视化工具,它具有丰富的…...
MySQL数据库基础
目录 数据库介绍 什么是数据库 数据库的分类 1. 数据库的操作 创建数据库 显示数据库 使用数据库 删除数据库 2. 表的操作 创建表 删除表 3. 常用数据类型 插入数据 查询数据 从本篇起就又要开始新的篇章了,数据结构初级阶段的就告一段落了࿰…...
近自由电子近似
假设 potential 的变化是非常小的 我们可以找到一条平均线 代表的就是我们的平均值 这样我们用原来的 就可以得到一个 和平均的这条线相比,上下变化不大,这个对我们薛定谔方程求解能带来很大的便利 我们就可以得到一个平均势场 这样的话,…...
【JavaWeb】从输入URL到展示出页面的过程
目录 DNS域名解析 检查hosts文件 查询缓存 查询本地DNS服务器 编辑查询根域名服务器等 三次握手建立连接 发送请求 响应请求 页面渲染 断开连接 这些过程简单的理解为先找到某人地址,给他发送消息可以去他家拿东西吗?他同意后拿到他的东西在…...
华为OD机试真题Java实现【数字涂色】真题+解题思路+代码(20222023)
数字涂色 题目 疫情过后,希望小学终于又重新开学了,三年二班开学第一天的任务是将后面的黑板报重新制作。黑板上已经写上了N个正整数,同学们需要给这每个数分别上一种颜色。为了让黑板报既美观又有学习意义,老师要求同种颜色的所有数都可以被这种颜色中最小的那个数整除。…...
Log Structure Merge Tree
LSM是一种基于日志追加写的数据结构,非常适合为具有高写入数据提供索引访问 LSM基于以下前提 内存读写速度远高于磁盘,但内存有限磁盘顺序读写速度远高于随机读写 结构 WAL WAL(write-ahead log)是用于在系统错误时提供持久化,在写入数据…...
Python QT5设计UI界面教程
简介:PyQT5开发常用知识,零基础上手,需配合我之前写的博文,配置好QT设计工具和ui文件转py文件的工具。博文为:使用Python PyQt5实现一个简单的图像识别软件;页面效果如下: 1.设计菜单栏 Contai…...
uniapp系列-图文并茂手把手教你hbuilder进行uniapp云端打包 - 安心打包
什么是安心打包 提交App的模块配置信息到云端,在云端打包机生成原生代码包 为什么使用云打包 更安全:打包时不提交应用代码、证书等信息更快速:非首次打包时不用提交云端打包机排队等待,本地直接出包省流量:减少了打…...
【精品】SpringBoot中基于拦截器实现登录验证功能
拦截器简介 拦截器是属于springmvc体系的,只能拦截controller的请求。拦截器(Interceptor)是一种动态拦截方法调用的机制,在SpringMVC中动态拦截控制器方法的执行。 Interceptor 作用 日志记录:记录请求信息的日志&…...
哈工大服务科学与工程第一章作业
服务的概念服务是个非常广义的概念——涉及到经济、管理、业务、IT领域以下是一些各方对服务的定义:服务是一方向另一方提供的任意活动和好处。它是不可触知的,不形成任何所有权问题,其生产可能与物质产品有关,也可能无关。服务是…...
SpringMVC源码:参数解析、方法调用与返回值处理
参考资料: 《SpringMVC源码解析系列》 《SpringMVC源码分析》 《Spring MVC源码》 写在开头:本文为个人学习笔记,内容比较随意,夹杂个人理解,如有错误,欢迎指正。 前文: 《SpringMVC源码&a…...
【MySQL】表的数据处理
哈喽,大家好!我是保护小周ღ,本期为大家带来的是 MySQL 数据表中数据的基本处理的操作,数据表的增删改查,更多相关知识敬请期待:保护小周ღ *★,*:.☆( ̄▽ ̄)/$:*.★*一、 添加数据&a…...
反思当下所处的环境,有没有让你停滞不前、随波逐流
环境对人的影响真的很大,小时候的环境、长大后的环境、工作环境、生活环境、好的环境、差的环境......我们都生活在一定的环境中所以既是环境的产物,又是环境的创造者与改造者。我们与环境的关系是相辅相成的我们的生活和工作当中接触到的人或事或物&…...
小程序(十四)后端-签到成功
文章目录一、持久层1、CheckinMapper.xml2、CheckinMapper.java3、TbHolidaysDao.xml4、TbHolidaysDao.java5、TbWorkdayDao.xml6、TbWorkdayDao.java二、业务层1、 CheckinService.java三、conroller层1、编写 TbUserDao.xml 文件,查询员工的入职日期。2、编写 TbU…...
X264简介-Android使用(一)
X264 简介及使用 1、简介 2、环境搭建 3、使用 4、小结 简介 官网连接:https://www.videolan.org/developers/x264.html 官方文档:https://wiki.videolan.org/Category:X264/ x264是用于编码H.264/MPEG-4 AVC视频流的免费软件库。它世界上最流行的…...
DetectGPT:使用概率曲率的零样本机器生成文本检测
DetectGPT的目的是确定一段文本是否由特定的llm生成,例如GPT-3。为了对段落 x 进行分类,DetectGPT 首先使用通用的预训练模型(例如 T5)对段落 ~xi 生成较小的扰动。然后DetectGPT将原始样本x的对数概率与每个扰动样本~xi进行比较。…...
深度学习在微纳光子学中的应用
深度学习在微纳光子学中的主要应用方向 深度学习与微纳光子学的结合主要集中在以下几个方向: 逆向设计 通过神经网络快速预测微纳结构的光学响应,替代传统耗时的数值模拟方法。例如设计超表面、光子晶体等结构。 特征提取与优化 从复杂的光学数据中自…...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
盘古信息PCB行业解决方案:以全域场景重构,激活智造新未来
一、破局:PCB行业的时代之问 在数字经济蓬勃发展的浪潮中,PCB(印制电路板)作为 “电子产品之母”,其重要性愈发凸显。随着 5G、人工智能等新兴技术的加速渗透,PCB行业面临着前所未有的挑战与机遇。产品迭代…...
遍历 Map 类型集合的方法汇总
1 方法一 先用方法 keySet() 获取集合中的所有键。再通过 gey(key) 方法用对应键获取值 import java.util.HashMap; import java.util.Set;public class Test {public static void main(String[] args) {HashMap hashMap new HashMap();hashMap.put("语文",99);has…...
【大模型RAG】Docker 一键部署 Milvus 完整攻略
本文概要 Milvus 2.5 Stand-alone 版可通过 Docker 在几分钟内完成安装;只需暴露 19530(gRPC)与 9091(HTTP/WebUI)两个端口,即可让本地电脑通过 PyMilvus 或浏览器访问远程 Linux 服务器上的 Milvus。下面…...
2021-03-15 iview一些问题
1.iview 在使用tree组件时,发现没有set类的方法,只有get,那么要改变tree值,只能遍历treeData,递归修改treeData的checked,发现无法更改,原因在于check模式下,子元素的勾选状态跟父节…...
【Go】3、Go语言进阶与依赖管理
前言 本系列文章参考自稀土掘金上的 【字节内部课】公开课,做自我学习总结整理。 Go语言并发编程 Go语言原生支持并发编程,它的核心机制是 Goroutine 协程、Channel 通道,并基于CSP(Communicating Sequential Processes࿰…...
【C语言练习】080. 使用C语言实现简单的数据库操作
080. 使用C语言实现简单的数据库操作 080. 使用C语言实现简单的数据库操作使用原生APIODBC接口第三方库ORM框架文件模拟1. 安装SQLite2. 示例代码:使用SQLite创建数据库、表和插入数据3. 编译和运行4. 示例运行输出:5. 注意事项6. 总结080. 使用C语言实现简单的数据库操作 在…...
uniapp 字符包含的相关方法
在uniapp中,如果你想检查一个字符串是否包含另一个子字符串,你可以使用JavaScript中的includes()方法或者indexOf()方法。这两种方法都可以达到目的,但它们在处理方式和返回值上有所不同。 使用includes()方法 includes()方法用于判断一个字…...
django blank 与 null的区别
1.blank blank控制表单验证时是否允许字段为空 2.null null控制数据库层面是否为空 但是,要注意以下几点: Django的表单验证与null无关:null参数控制的是数据库层面字段是否可以为NULL,而blank参数控制的是Django表单验证时字…...
