2015 年,谷歌推出了 Android Auto,这是一个允许用户将 Android 智能手机上的某些应用投射到汽车信息娱乐显示屏上的系统。Android Auto 友好的驾驶员界面,具有更大的触摸屏按钮和语音命令,旨在让驾驶员在保持目光注视前方道路的同时,更轻松、更安全地控制导航、音乐、播客、广播、电话等功能。Android Auto 也可以作为应用程序在 Android 智能手机上运行,使没有现代车载主机显示屏的旧款车型车主也能利用这些功能。
虽然 Android Auto 有许多 应用 可用,但开发者们正在努力扩充其目录。一个名为 OpenAuto 的新型开源工具希望通过为开发者提供在树莓派上模拟 Android Auto 的方法,使这一过程变得更容易。借助 OpenAuto,开发者可以在类似于应用在实际车载主机上运行的条件下测试他们的应用程序。
OpenAuto 的创建者 Michal Szwaj 回答了 Opensource.com 关于他的项目的一些问题。一些回答为了简洁和清晰度进行了编辑。
什么是 OpenAuto?
简而言之,OpenAuto 是 Android Auto 车载主机的模拟器。它模拟车载主机软件,并允许你在 PC 或任何其他嵌入式平台(如树莓派 3)上使用 Android Auto。
车载主机软件是 Android Auto 投射的前端。所有与 Android Auto 相关的“魔法”,如导航、谷歌语音助手或音乐播放,都在 Android 设备上完成。Android Auto 在车载主机上的投射是使用 H.264 编解码器进行视频和 PCM 编解码器进行音频流传输来实现的。这就是车载主机软件主要做的事情——它解码 H.264 视频流和 PCM 音频流,并将它们一起播放。车载主机的另一个功能是提供用户输入。OpenAuto 同时支持触摸事件和硬按键。
OpenAuto 在哪些平台上运行?
OpenAuto 的目标部署平台是树莓派 3 计算机。为了成功部署,我需要实现使用树莓派 3 GPU (VideoCore 4) 的视频硬件加速支持。 благодаря этому, 即使使用 1080p@60 fps 分辨率,也可以处理树莓派 3 计算机上的 Android Auto 投射。我使用了 OpenMAX IL 和与树莓派固件一起交付的 IL 客户端库来实现视频硬件加速。
利用树莓派操作系统是基于 Debian Linux 的 Raspbian 这一事实,OpenAuto 也可以为任何其他提供硬件视频解码支持的基于 Linux 的平台构建。大多数基于 Linux 的平台直接在 GStreamer 中提供硬件视频解码支持。得益于 Boost 和 Qt 等高度可移植的库,OpenAuto 可以在 Windows 平台上构建和运行。MacOS 的支持正在由社区实施,应该很快就会推出。
该项目使用哪些软件库?
OpenAuto 的核心是 aasdk 库,它为所有 Android Auto 功能提供支持。aasdk 库构建在 Boost、libusb 和 OpenSSL 库之上。libusb 实现了车载主机和 Android 设备之间(通过 USB 总线)的通信。Boost 为通信的异步机制提供支持。这对于车载主机软件的高效率和可扩展性是必需的。OpenSSL 用于加密通信。
aasdk 库被设计为完全可重用的,可用于与车载主机软件实现相关的任何目的。你可以使用它为你的目标平台构建你自己的车载主机软件。
OpenAuto 中使用的另一个非常重要的库是 Qt。它为 OpenAuto 的多媒体、用户输入和图形界面提供支持。而 OpenAuto 使用的构建系统是 CMake。
注意:Android Auto 协议取自另一个出色的 Android Auto 车载主机项目,名为 HeadUnit。在这个项目上工作的人员在逆向工程 AndroidAuto 协议和创建结构化所有消息的协议缓冲区方面做得非常出色。
在树莓派上运行 OpenAuto 需要哪些设备?
除了树莓派 3 计算机和 Android 设备外,你还需要
- USB 声卡: 树莓派 3 没有麦克风输入,这是使用谷歌语音助手所必需的
- 视频输出设备: 你可以使用触摸屏或连接到 HDMI 或复合输出 (RCA) 的任何其他视频输出设备
- 输入设备: 例如,触摸屏或 USB 键盘
还需要什么才能开始?
为了使用 OpenAuto,你必须首先构建它。在 OpenAuto 的 wiki 页面上,你可以找到关于如何为树莓派 3 平台构建它的 详细说明。在其他基于 Linux 的平台上,构建过程将非常相似。
在 wiki 页面上,你还可以找到其他有用的说明,例如如何配置蓝牙免提协议 (HFP) 和高级音频分发协议 (A2DP) 以及 PulseAudio。
关于 OpenAuto,我们还应该了解什么?
OpenAuto 允许任何人基于树莓派 3 硬件创建车载主机。然而,你应该始终注意安全,并记住 OpenAuto 只是一个模拟器。它没有经过任何权威机构的认证,也没有在驾驶环境中进行测试,因此不建议在汽车中使用它。
OpenAuto 在 GPLv3 许可下获得许可。有关更多信息,请访问 项目的 GitHub 页面,你可以在那里找到其源代码和其他信息。
1 条评论