第一章:车载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 车载模拟器创建——和手机真不一样
嗯,这里要重点说。车载模拟器和手机模拟器完全是两码事。
创建步骤:
- 打开AVD Manager,点「Create Virtual Device」
- 在Category里选「Automotive」
- 选一个分辨率,我建议用1280x720,这是主流车载屏的分辨率
- 系统镜像选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开发和手机开发在工具链上大同小异,但细节上差很多。把基础打牢,后面写代码才顺手。
下一章我们聊聊车载应用的工程结构,那又是另一番天地了。