1. 概念

1.1 快速倒车

Android系统完全起来(各种service初始化、app初始化等)需要22秒左右的时间,所以当车机刚刚启动时(22秒之前),驾驶员挂R档进入倒车时Android 的倒车应用是无法响应的,此阶段的倒车需求称之为“快速倒车”。

快速倒车的实现方式有很多种,小编所知的有两种,一种是在kernel 中直接调用camera和frame buffer的接口实现快速倒车功能,kernel启动2秒左右的时间就可以相应倒车;第二种是SOC内置一块MCU 来运行一个RTOS,在Android系统未完全起来之前,倒车影像的获取和显示由该RTOS实现。

系统完全起来之前,kernel 通过倒车引脚的电平变化,进入快速倒车,显示倒车画面。

1.2 正常倒车

Android系统起来后,kernel 通过倒车引脚的电平变化,发送uevent到用户空间,用户空间有个device服务一直监听该 uevent,然后在用户空间启动倒车程序,显示倒车画面。

1.3 差异

正常倒车可以使用图形系统绘制动态倒车轨迹线,而快速倒车只有固定倒车线。

2. 实现思路

2.1 快速倒车

摄像头数据获取、显示屏图层叠加都由kernel 完成,此时Android应用还没启动起来,所以倒车相关的所有策略都由内核来做。

2.2 正常倒车

Android应用直接打开设备文件,通过ioctl获取摄像头数据,显示屏图层叠加,即通过驱动提供的接口进行倒车操作,内核不做任何策略,所有倒车相关的策略都由Android应用来做。

3. 流程图

4. 进入快速倒车

MCU收到了倒车的CAN信号以后会将某个GPIO 电平拉高以通知SOC进入倒车,但是有的时候手头可能没有CAN板之类的CAN信号模拟器,此时可以使用DEVICE_ATTR 添加一个属性,来控制是否进入倒车,实现也很简单,就是在倒车判断条件处添加一个flag,该属性控制flag 的值即可。注意:该属性只能控制是否进入快速倒车,也就是说,Android完全启动以后再操控该属性是无效的,不会进入倒车界面。

5. 倒车信息处理

倒车过程中方向盘的角度大小、速度大小、雷达检测到的距离以及雷达音量等信息都是由MCU通过串口发送给SOC的,可以定义一个通知链A,SOC 串口驱动在处理MCU发送过来的信息时,调用通知链A上所有感兴趣的模块函数。

譬如,快速倒车模块可以注册一个通知块到通知链A,当SOC串口进行DMA搬运时通知通知链A上所有感兴趣的模块函数,此时快速倒车模块的通知块就可以获取串口信息中倒车相关的数据。

注:不知到通知链用法的可以看我的博客《Linux通知链机制》。

6. 其它

快速倒车的UI界面都是图片形式的,为了加快读取图片的速度,可以将png、jpg等格式的图片转化为二进制格式(bin格式)以提升图片加载的速度,因为二进制格式的图片不用解码。

车载Android系统快速倒车相关推荐

  1. 收藏向 | 车载Android系统开发学习专题,进军车载必备

    如今,智能手机已无处不在,移动操作系统开始向新的领域扩张,这其中,就有近段时间被苹果CarPlay催热的车载系统. 目前全球的汽车数量已经超过10亿辆,但车载系统却仍然有非常大的提升空间.汽车厂商们也 ...

  2. 【Android车载系统 News | Tech 1】News 谷歌开发车载Android系统 2014-12-19

    据外国媒体报道,Android和iOS两大操作系统在垄断手机和平板之后,开始向智能家居.智能汽车.客厅娱乐.物联网等领域扩张.谷歌和苹果此 前均推出了连接智能手机和车载信息系统的平台产品.2014年1 ...

  3. 车载android系统手机版下载地址,carlife官方下载-carlife车机端 安卓版v7.1.1-PC6安卓网...

    carlife车机端是一款由百度打造的手机车机智能互联产品,carlife安卓版只需在车内连接手机,即可将carlife汇集的车生活服务分享到车载屏幕上,享受驾驶中更安全便捷的车载体验. 软件介绍 百 ...

  4. 车载android系统最新版是多少,通用汽车宣布在2021年全面启用新版Android车载信息娱乐系统...

    (图自:GM,via SlashGear) 除中国市场外,通用将为旗下车载信息娱乐系统预装原生 Android Automotive OS .其基于 Android 9.0 Pie 打造,但不会立即出 ...

  5. Android系统快速编译方式ninja

    随着Android版本的更迭,尤其是Androd10和Android11源码的编译,单编模块的时间也特别慢,每次都需要半个小时甚至更长,因为每次单编都会重新加载所有mk文件,再生成ninja编译,此过 ...

  6. 更改车载android系统launcher界面

    1.首先在Launcher项目入口的Activity添加下面这段代码 <intent-filter><action android:name="android.intent ...

  7. android 动画实现倒车,一种快速实现Android车机冷启动全景倒车的方法与流程

    本发明涉及一种快速实现Android车机冷启动全景倒车的方法,属于车辆设备技术领域. 背景技术: 目前市场上的车机在解决倒车辅助系统的冷启动时存在时间较长的弊端,主要原因是由于虚拟机的运行及加载方式导 ...

  8. Android车载学习笔记1——车载整体系统简介

    一.汽车操作系统 汽车操作系统包括安全车载操作系统.智能驾驶操作系统和智能座舱操作系统. 1. 安全车载操作系统 安全车载操作系统主要面向经典车辆控制领域,如动力系统.底盘系统和车身系统等,该类操作系 ...

  9. 【视频文稿】车载Android应用开发与分析 - 走进车载操作系统

    本期内容的视频地址:https://www.bilibili.com/video/BV1rR4y1B7Qd/ Hello,各位好,我是一个做车载软件开发的软件工程师,之前在CSDN.稀土掘金这些平台上 ...

最新文章

  1. linux oracle 关闭防火墙,Linux 下关闭防火墙设置
  2. url传递中文的解决方案
  3. JAVA基础复习1:开始Java世界的第一个程序
  4. 【Android 启动过程】Activity 启动源码分析 ( AMS -> ActivityThread、AMS 线程阶段 )
  5. 2.1 《数据库系统概论》关系数据结构及形式化定义(关系、关系模式、关系数据库)
  6. Blend制作的下载动画
  7. 批量删除Marketing Cloud里的contact
  8. winform-日记
  9. Reversing.Kr replace题解
  10. Java数据结构:双向链表Double Linked List基础笔记
  11. ajax上传图片springmvc,springmvc ajax上传图片(jquery)
  12. 花菁染料(cas773041-79-5|cas427882-78-8|cas14134-81-7)结构图及合成路线图
  13. 与老公的情人同居一室很尴尬
  14. 用74ls90组成二十四进制计数器_一个厉害的芯片芯片74LS190同步计数器可以做加法也可以做减法...
  15. 用html写除法竖式代码,除法的竖式写法
  16. Python:snownlp中文文本情感分析
  17. 数据仓库、数据集市、数据湖,你的企业更适合哪种数据管理架构?
  18. 这4款网页书签管理工具,整理收藏夹更轻松
  19. CSAPP(深入理解计算机系统)
  20. docker安装rabbitMQ stomp插件

热门文章

  1. linux 安装wls_121200步骤,centos6.6安装weblogic12c注意问题
  2. java按位异或的运算是,深入理解按位异或运算符
  3. 拼多多app是原生还是html,拼多多上中下截图示例
  4. python从第二行开始写_Python第2课 - 第一个Python程序
  5. c语言用循环输出塔状五行,从键盘上输入一个正整数n,请按照以下五行杨辉三角形的显示方式, 输出杨辉三角形的前n行。请采用循环控制语句来实现。...
  6. linux基本功系列之uptime命令实战
  7. Enterprise Architect多人协作方法
  8. 初识Linux:第五篇
  9. 高效的JSON转换工具
  10. 微机化远动系统与计算机网络,【浅析】智能电网调度自动化现状与发展