最近研究了下Android Auto版本的evs_app应用,是Android Auto提供的一个倒车功能;
evs_app相关参考:
《Android P Auto版本evs_app解析之一:evs_app代码架构和通信机制》
《Android P Auto版本evs_app解析之二:evs_app启动和运行》
代码结构:
evs app层实现源码位于:packages\services\Car\evs\
|——– Android.mk
|——– app
|——– manager
|——– sampleDriver
|——– sepolicy
evs HAL层实现源码位于:hardware\interfaces\automotive\evs\1.0\
|——– default
|——– vts
|——– IEvsCamera.hal
|——– IEvsCameraStream.hal
|——– IEvsDisplay.hal
|——– IEvsEnumerator.hal
|——– types.hal
evs app层提供了三个模块:
- app:evs应用层,负责初始化操作,监听倒车状态,倒车UI更新等逻辑处理;
- manager:evs管理器,负责与HAL层的交互,实现HAL层的一些接口,例如openDisplay(),openCamera()等操作;
- sampleDriver:驱动层实现,基于v4l2实现的一个驱动Demo程序,供HAL层调用,Camera操作和display操作核心,涉及到摄像头设备操作和display设备操作。注意:这是Android提供的Demo,具体驱动实现由具体厂商根据硬件去实现;
evs HAL层结构:
- default:提供一个模拟倒车测试,显示静态图片模拟倒车;用于测试功能逻辑,不是真实的倒车;
- hal文件:提供了hal接口,供驱动层实现;
功能实现:
1、编译运行:
evs_app编译出来的是一个名为evs_app的bin文件,运行在init进程中,所以evs是可以支持2s内快速倒车的。