1.建立aoa通道
可以通过libusb直接打开手机端的aoa模式,发送百度CarLife描述信息。此后会重新枚举aoa设备,手机端会提示是否需要下载carlife。
也可以通过内核来建立一个aoa驱动节点,通过节点来读写数据。
节点侦测程序参考linux设备节点侦测
注意接口的独立性封装,这样在其它方案如Android Auto、Android 手机镜像时复用。
2.建立socket
通过aoa虚拟六个CarLife socket通道,注意需要在转换后去掉aoa包头。
3.交叉编译google protobuf
protobuf编译需要分为两步,先使用主机编译器,生成电脑端的proto程序,再通过proto程序交叉编译目标机的protobuf库。
4.移植CarLife包
通过google protobuf移植编译CarLife包,之后可以和手机建立CarLife层通信。
5.接入音视频
根据CarLife接口带入音视频解码和录音接口,将CarLife的音视频数据进行解码。
6.控制接口引出
定义UI级的封装,引出UI输入接口,音视频控制接口等。