第一章:车载Android开发环境搭建

说实话,做车载Android开发这几年,我见过太多新手在环境搭建这一步就卡住了。不是SDK版本不对,就是模拟器跑不起来。今天我就把这一整套流程掰开揉碎了讲给你听。

1.1 Android Studio安装——选对版本很重要

我个人习惯用稳定版,别追新。你想想看,车载项目讲究的是稳定,不是炫技。

去官网下载Android Studio时,注意几点:

  • 版本选择:建议用2022.3或2023.1系列,太新的版本可能对车载SDK支持不完善
  • 安装路径:不要有中文,不要有空格。我吃过这个亏,项目路径带中文导致Gradle编译报错,查了一下午
  • JDK版本:车载项目一般用JDK 11或17,别用JDK 21,有些老库不兼容
小技巧:安装时勾选「Android Virtual Device」,省得后面再单独装。

1.2 SDK配置——别一股脑全下载

SDK Manager里那一长串列表,新手容易懵。我刚开始做车载时,把API 30到34全下了,结果硬盘爆了。

车载开发真正需要的SDK版本:

用途 API Level 说明
车载系统开发 API 30 (Android 11) 目前主流车载系统版本
兼容性测试 API 29 (Android 10) 老车型还在用
新特性开发 API 33 (Android 13) 部分新车型已升级

配置SDK时,记得在local.properties里指定路径:

sdk.dir=/Users/你的用户名/Library/Android/sdk
# 如果是Windows
# sdk.dir=C:\\Users\\你的用户名\\AppData\\Local\\Android\\Sdk
注意:车载项目经常需要系统级权限,记得勾选「Android SDK Platform-Tools」和「Google USB Driver」(Windows用户)。

1.3 车载模拟器创建——和手机真不一样

嗯,这里要重点说。车载模拟器和手机模拟器完全是两码事。

创建步骤:

  1. 打开AVD Manager,点「Create Virtual Device」
  2. 在Category里选「Automotive」
  3. 选一个分辨率,我建议用1280x720,这是主流车载屏的分辨率
  4. 系统镜像选Android 11 (API 30) 或 Android 12 (API 31)

为什么选Automotive类别?因为车载系统有特殊的UI框架——Car UI Library,普通手机模拟器跑不起来。我曾经用手机模拟器调试车载应用,结果界面布局全乱了,折腾了两天才发现是模拟器类型不对。

核心配置参数

  • RAM:建议2GB以上,车载系统本身占内存大
  • 存储:4GB起步,不然装几个应用就满了
  • 启用「Hardware keyboard」:方便调试时输入命令

1.4 ADB调试工具使用——车载开发的瑞士军刀

ADB这东西,说白了就是Android设备和电脑之间的桥梁。车载开发中,90%的调试工作都离不开它。

常用命令我列一下:

# 查看连接的设备
adb devices

# 安装应用
adb install -r app-debug.apk

# 查看日志(车载开发最常用)
adb logcat -c  # 清空日志
adb logcat | grep "CarService"  # 过滤车载服务日志

# 模拟屏幕旋转(车载横屏竖屏切换)
adb shell settings put system user_rotation 0  # 横屏
adb shell settings put system user_rotation 1  # 竖屏

这里有个坑,我遇到过好多次:车载设备通过USB连接电脑后,adb devices显示为空。别慌,先检查:

  • USB调试模式开了没?
  • 驱动装了没?(Windows用户尤其注意)
  • 换根数据线试试——有些线只能充电不能传数据

我的调试习惯

写个批处理脚本,把常用命令打包。比如我有个「car_debug.bat」,一键启动logcat过滤、安装应用、截图。省得每次敲一堆命令。

1.5 避坑指南——我踩过的那些雷

做车载开发环境搭建,有几个坑我记忆犹新:

  • SDK路径带空格:Gradle编译直接报错,查了半天才发现是路径问题
  • 模拟器分辨率选错:选了1920x1080,结果车载UI控件显示不全,后来才知道车载系统对宽高比有特殊要求
  • ADB版本不匹配:电脑上的ADB版本和车载系统的不一致,导致某些命令执行失败。解决办法:用SDK Manager里的ADB,别用系统自带的

嗯,环境搭建这部分就这些。说白了,车载Android开发和手机开发在工具链上大同小异,但细节上差很多。把基础打牢,后面写代码才顺手。

下一章我们聊聊车载应用的工程结构,那又是另一番天地了。