← 返回信息流
GitHub 热榜GitHub Trending · 日·1 小时前

Headunit Revived:Android Auto 车载显示应用

原标题:andreknieriem/headunit-revived
Kotlin1,361 stars+79 今日

速览

该项目允许用户在支持 Android Auto 的 Android 设备上运行车载界面,适用于希望将手机或平板转化为车载中控屏的场景。它通过模拟或桥接方式,让非原厂支持 Android Auto 的车载显示器也能使用其功能,扩展了 Android Auto 的硬件兼容性。

AI 深度解读

这是什么

Headunit Revived 是一款基于 Android 的开源应用程序(主语言 Kotlin,GitHub 星标数 1361+),旨在将普通的 Android 平板电脑或手机转化为功能完整的 Android Auto 车载接收端(Head Unit)。

该项目是原始 headunit 项目(由 Michael Reid 开发)的复兴版本。随着原厂 Android Auto 硬件的普及,许多车主希望利用现有的 Android 设备(如旧平板或备用手机)来替代原厂车机,以获得更灵活的界面定制和更低的硬件成本。Headunit Revived 通过模拟 Android Auto 的接收端协议,允许用户通过 USB 或无线方式将 Android 手机与运行该应用的平板连接,从而在平板屏幕上显示 Android Auto 的界面。

解决的问题

  1. 硬件成本与灵活性:原厂 Android Auto 车机通常价格昂贵且功能锁定。此项目让用户可以利用手中闲置的 Android 平板或手机,以极低的成本实现 Android Auto 体验。
  2. 无线连接稳定性:早期的头单元项目(Headunit)在无线连接上存在诸多 Bug,导致连接不稳定或延迟高。Headunit Revived 重构了连接逻辑,提供了更稳定的 USB 和无线连接方案。
  3. 兼容性问题:针对特定设备(如 Allwinner 芯片设备、Samsung 设备)的音频、视频解码及 USB 枚举问题进行了专门修复,解决了原生 Android Auto 协议在通用 Android 设备上运行时的兼容性痛点。
  4. 自动化与集成:解决了手动连接繁琐的问题,支持通过 ADB、Intent、Tasker 等自动化工具触发连接,并支持通过车辆灯光信号(ILL+)自动切换夜间模式。

核心功能

  • 多模式连接支持
    • USB 连接:最可靠的连接方式,支持 Host-Mode,通过 USB 线缆传输数据和视频信号。
    • 无线连接(Wireless)
      • Helper Mode:配合手机端的 "Wireless Helper" 应用,利用 NSD、Wi-Fi Direct 和蓝牙自动发现与连接。
      • Native Mode:利用 Android Auto 开发者设置中的原生 "Headunit Server"。
      • Wireless Launcher:支持使用 Emil Borconi 开发的原始无线启动器。
  • 音频与视频处理
    • Audio Mixer:允许混合不同的音频轨道,解决部分设备上的音频焦点丢失问题。
    • 视频优化:针对 Google Nearby 进行了优化,修复了 2 FPS 视频卡顿问题;支持自定义加载屏幕(图片/GIF/视频)。
  • 高级自定义与自动化
    • 按键映射(Keymap):支持方向盘按键映射、返回键路由、旋钮(Rotary Knob)映射,以及自定义按键事件去抖(Debounce)。
    • 麦克风增强:集成 NoiseSuppressor、AutomaticGainControl 和 AcousticEchoCanceler,提升语音通话质量。
    • 自动夜间模式:支持通过 ILL+ 信号或基于地理位置/时间的自动夜间模式切换。
    • 设置导入/导出:支持备份和恢复应用配置。
  • 系统级集成
    • 支持通过 URI Scheme (headunit://connect?ip=<PHONE_IP>) 和 ADB 命令触发连接,便于与 Tasker、MacroDroid 等自动化工具集成。
    • 支持 USB 白名单,防止 iPhone 或其他 USB 设备干扰连接。

亮点 / 与同类相比

  • 活跃的社区维护与快速响应:作为 "Revived" 项目,它继承了原始项目的理念并进行了大量代码重构。GitHub 上活跃的 PR 合并记录显示,开发者团队(如 @andrecuellar, @Anton111111, @JanRi3D 等)持续修复致命错误(Fatal Errors)、音频卡顿和连接断开问题。
  • 更完善的无线方案:相比早期项目,Headunit Revived 提供了 "Wireless Helper" 这一专用辅助应用,显著简化了无线连接的配置流程,支持 Wi-Fi Direct 自动连接和蓝牙自动启动,降低了用户的使用门槛。
  • 深度定制能力:提供了比大多数同类替代方案更细致的 UI 定制选项,包括 UI 缩放、自定义加载动画、按键映射编辑等,满足了进阶用户对个性化车机界面的需求。
  • 硬件兼容性优化:特别针对 MediaTek 芯片(60fps 优化)、Allwinner 芯片(视频解码修复)以及 Samsung 设备的特定行为进行了适配,这在通用 Android Auto 模拟器中较为少见。
  • 音频焦点管理:引入了静态音频焦点切换(Static Audio Focus Toggle)和独立的音频流设置,有效解决了部分设备上媒体播放时导航语音被静音或音频中断的问题。

适合谁用 / 上手

适合人群:

  • 拥有闲置 Android 平板或手机,希望将其改造为车载导航/娱乐中心的用户。
  • 对原厂车机界面不满意,希望获得 Android Auto 体验但预算有限的车主。
  • 喜欢折腾自动化(Tasker/MacroDroid)的技术爱好者,希望实现上车自动连接、下车自动断开的无缝体验。
  • 具备一定 Android 调试知识(如开启开发者选项、USB 调试、ADB 命令)的用户。

上手指南:

  1. 硬件准备
    • 一台运行 Android 的平板或手机(作为 Headunit 端)。
    • 一部安装了 Android Auto 的 Android 手机(作为源设备)。
    • 高质量的 USB 数据线(推荐用于有线连接)。
  2. 安装应用
    • 在平板上安装 Headunit Revived。
    • 在手机(源设备)上安装 Android Auto 和 "Wireless Helper"(Google Play 商店)。
  3. 有线连接(推荐新手)
    • 将手机通过 USB 连接到平板。
    • 在平板上打开 Headunit Revived,点击 USB 按钮,选择手机并允许连接。
    • 等待 Android Auto 在平板上启动。
  4. 无线连接(进阶)
    • 确保两台设备在同一网络(或开启热点)。
    • 在 Headunit Revived 设置中将无线模式设为 "Helper Mode"。
    • 在手机端打开 Wireless Helper 并启动服务。
    • 平板端将自动发现并连接手机。
  5. 故障排除
    • 地图触控问题:若 Google Maps 在竖屏模式下触控失灵,尝试在应用设置中将像素密度(DPI)调至 200 以下(如 190)。
    • 连接断开:检查手机 WiFi 设置,关闭 "WiFi Assistant" 或 "智能网络切换",防止系统因无网络而断开连接。
    • Android 10 及以下版本:由于 Google 限制了自动无线投影,建议使用有线连接或通过 Wi-Fi 回环(Loopback)方式连接。

更多详细文档、设置指南和故障排除步骤,请参考项目 Wiki。

查看原文 →github.com