Android P Auto版本evs_app解析之二:evs_app启动和运行

2024-02-22 00:58

本文主要是介绍Android P Auto版本evs_app解析之二:evs_app启动和运行,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近在调试Android Auto版本的evs_app程序。

evs_app相关参考:
《Android P Auto版本evs_app解析之一:evs_app代码架构和通信机制》
《Android P Auto版本evs_app解析之二:evs_app启动和运行》

一、检查摄像头设备

驱动层生成的摄像头设备节点在dev下面查看。adb进入系统目录dev下,ls -l查看摄像头;
生成的摄像头为:dev/video0,dev/video1,dev/video2,dev/video3;
我做实验这里有四个摄像头。

二、运行evs_app程序报错

evs_app是可执行的二进制文件,在system/bin目录下。
adb shell进入系统目录,执行start evs_app启动evs_app.

1、驱动层代码报错

看下面的打印,没有权限对video*设备进行访问。所以没有找到有效的摄像头设备

2019-06-13 18:14:16.420 1909-1963/? I/EvsDriver: Starting dev/video* enumeration
2019-06-13 18:14:16.428 1909-1909/? W/VideoFile-Poll-: type=1400 audit(0.0:2044): avc: denied { read write } for name="video3" dev="tmpfs" ino=9980 scontext=u:r:hal_evs_driver:s0 tcontext=u:object_r:ad_camera_device:s0 tclass=chr_file permissive=0
2019-06-13 18:14:16.428 1909-1909/? W/VideoFile-Poll-: type=1400 audit(0.0:2045): avc: denied { read write } for name="video2" dev="tmpfs" ino=9979 scontext=u:r:hal_evs_driver:s0 tcontext=u:object_r:ad_camera_device:s0 tclass=chr_file permissive=0
2019-06-13 18:14:16.428 1909-1909/? W/VideoFile-Poll-: type=1400 audit(0.0:2046): avc: denied { read write } for name="video1" dev="tmpfs" ino=9978 scontext=u:r:hal_evs_driver:s0 tcontext=u:object_r:ad_camera_device:s0 tclass=chr_file permissive=0
2019-06-13 18:14:16.428 1909-1909/? W/VideoFile-Poll-: type=1400 audit(0.0:2047): avc: denied { read write } for name="video0" dev="tmpfs" ino=20016 scontext=u:r:hal_evs_driver:s0 tcontext=u:object_r:ad_camera_device:s0 tclass=chr_file permissive=0
2019-06-13 18:14:16.431 1909-1963/? I/EvsDriver: enum name:mxc_isi.0.m2mpath:/dev/video4
2019-06-13 18:14:16.434 1909-1963/? I/EvsDriver: Found 1 qualified video capture devices of 7 checked
2、evs_app应用层也报错提示没有找到摄像头
2019-06-13 18:53:38.331 1909-1909/? D/EvsDriver: openCamera
2019-06-13 18:53:38.331 1909-1909/? E/EvsDriver: Requested camera mxc_isi.0.capture not found
2019-06-13 18:53:38.332 3272-3274/? E/EvsApp: Failed to allocate new EVS Camera interface for mxc_isi.0.capture
2019-06-13 18:53:38.332 3272-3274/? E/EvsApp: Failed to set up video texture for mxc_isi.0.capture (reverse,park)
2019-06-13 18:53:38.332 3272-3274/? E/EvsApp: New renderer failed to activate
2019-06-13 18:53:38.332 

这篇关于Android P Auto版本evs_app解析之二:evs_app启动和运行的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/733646

相关文章

线上Java OOM问题定位与解决方案超详细解析

《线上JavaOOM问题定位与解决方案超详细解析》OOM是JVM抛出的错误,表示内存分配失败,:本文主要介绍线上JavaOOM问题定位与解决方案的相关资料,文中通过代码介绍的非常详细,需要的朋... 目录一、OOM问题核心认知1.1 OOM定义与技术定位1.2 OOM常见类型及技术特征二、OOM问题定位工具

Python一次性将指定版本所有包上传PyPI镜像解决方案

《Python一次性将指定版本所有包上传PyPI镜像解决方案》本文主要介绍了一个安全、完整、可离线部署的解决方案,用于一次性准备指定Python版本的所有包,然后导出到内网环境,感兴趣的小伙伴可以跟随... 目录为什么需要这个方案完整解决方案1. 项目目录结构2. 创建智能下载脚本3. 创建包清单生成脚本4

深度解析Python中递归下降解析器的原理与实现

《深度解析Python中递归下降解析器的原理与实现》在编译器设计、配置文件处理和数据转换领域,递归下降解析器是最常用且最直观的解析技术,本文将详细介绍递归下降解析器的原理与实现,感兴趣的小伙伴可以跟随... 目录引言:解析器的核心价值一、递归下降解析器基础1.1 核心概念解析1.2 基本架构二、简单算术表达

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java MCP 的鉴权深度解析

《JavaMCP的鉴权深度解析》文章介绍JavaMCP鉴权的实现方式,指出客户端可通过queryString、header或env传递鉴权信息,服务器端支持工具单独鉴权、过滤器集中鉴权及启动时鉴权... 目录一、MCP Client 侧(负责传递,比较简单)(1)常见的 mcpServers json 配置

从原理到实战解析Java Stream 的并行流性能优化

《从原理到实战解析JavaStream的并行流性能优化》本文给大家介绍JavaStream的并行流性能优化:从原理到实战的全攻略,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的... 目录一、并行流的核心原理与适用场景二、性能优化的核心策略1. 合理设置并行度:打破默认阈值2. 避免装箱

Ubuntu如何升级Python版本

《Ubuntu如何升级Python版本》Ubuntu22.04Docker中,安装Python3.11后,使用update-alternatives设置为默认版本,最后用python3-V验证... 目China编程录问题描述前提环境解决方法总结问题描述Ubuntu22.04系统自带python3.10,想升级

Maven中生命周期深度解析与实战指南

《Maven中生命周期深度解析与实战指南》这篇文章主要为大家详细介绍了Maven生命周期实战指南,包含核心概念、阶段详解、SpringBoot特化场景及企业级实践建议,希望对大家有一定的帮助... 目录一、Maven 生命周期哲学二、default生命周期核心阶段详解(高频使用)三、clean生命周期核心阶

Android协程高级用法大全

《Android协程高级用法大全》这篇文章给大家介绍Android协程高级用法大全,本文结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友跟随小编一起学习吧... 目录1️⃣ 协程作用域(CoroutineScope)与生命周期绑定Activity/Fragment 中手

深入解析C++ 中std::map内存管理

《深入解析C++中std::map内存管理》文章详解C++std::map内存管理,指出clear()仅删除元素可能不释放底层内存,建议用swap()与空map交换以彻底释放,针对指针类型需手动de... 目录1️、基本清空std::map2️、使用 swap 彻底释放内存3️、map 中存储指针类型的对象