第二章 开发环境搭建:工欲善其事,必先利其器

各位同学,咱们直接进入正题。做车载多屏互动开发,环境搭建是第一道坎。我见过太多人卡在这一步,装了半天跑不起来,心态直接崩了。今天我就把这两套环境——Android Studio 和 Qt Creator——怎么装、怎么配、怎么联调,一次性给你讲透。

2.1 Android Studio 安装与配置

Android Studio 是咱们做车载 Android 应用的主力工具。别的不说,光是它的模拟器就够你折腾一阵子。

2.1.1 下载与安装

去官网下载最新版就行。我个人习惯用稳定版,别追新,追新容易踩坑。安装时注意几点:

  • SDK 路径:默认在用户目录下,但我建议单独建个文件夹,比如 D:\Android\SDK。为什么?因为重装系统时你不想再下一遍几十个 G 的 SDK 吧?
  • JDK 版本:Android Studio 自带 JDK,但如果你电脑上装了多个 JDK,记得在环境变量里配好。我遇到过因为 JDK 版本不对导致编译失败的情况,折腾了半天才发现是路径冲突。
  • 代理设置:国内下载 SDK 组件很慢,建议配个镜像。我用过中科大的镜像,速度还不错。
小技巧:第一次启动时,它会自动下载一堆东西。别干等着,去泡杯咖啡。如果卡住了,关掉重来,别死磕。

2.1.2 关键配置项

装好之后,有几个地方必须调:

  1. Gradle 配置:打开 gradle-wrapper.properties,把 Gradle 版本改成你本地有的。我习惯用 7.4 或 8.0,太新的版本容易和插件不兼容。
  2. SDK Manager:至少装上 Android 12(API 31)和 Android 13(API 33)。车载系统现在主流是 Android 12,但新车型已经开始用 13 了。
  3. NDK 配置:如果你要做底层交互(比如 CAN 总线通信),NDK 必须装。路径在 SDK/ndk/ 下,版本选 25 或 26 都行。
// build.gradle 示例
android {
    compileSdk 33
    defaultConfig {
        minSdk 29  // 车载系统最低 Android 10
        targetSdk 33
        ndkVersion "25.2.9519653"
    }
}

2.2 Qt Creator 安装与配置

Qt 在车载 HMI 里用得很多,尤其是仪表盘和副屏。说实话,Qt 的跨平台特性确实香,但配置起来比 Android Studio 要麻烦一点。

2.2.1 下载与安装

去 Qt 官网下载在线安装器。注意几点:

  • 版本选择:我建议用 Qt 5.15 或 Qt 6.5。5.15 稳定,6.5 新特性多。车载项目里 5.15 还是主流,但新项目已经开始迁移到 6.x 了。
  • 组件选择:别全选,那得几十个 G。只选你需要的:MSVC 编译器、MinGW(如果你用 Windows)、Qt Charts(做仪表盘必备)、Qt Quick 3D(做 3D 效果)。
  • 编译器:Windows 下我推荐用 MSVC 2019 或 2022。MinGW 也行,但有些第三方库不支持。
注意:Qt 6.x 对 OpenGL 有更高要求。如果你的电脑显卡比较老,可能跑不起来。我曾经在一台旧笔记本上装 Qt 6.2,结果 3D 渲染直接黑屏,换成 5.15 就好了。

2.2.2 关键配置项

装好后,打开 Qt Creator,进到「工具」→「选项」:

  1. Kits 配置:确保你的 Kit 里选了正确的编译器、Qt 版本和调试器。我习惯给每个项目单独建一个 Kit,避免混淆。
  2. 调试器:Windows 下用 CDB(Windows 调试工具)或 GDB。CDB 对 MSVC 支持更好,GDB 适合 MinGW。
  3. QML 调试:如果你做 QML 开发,记得开启 QML 调试器。不然你连控件在哪都找不到。
// .pro 文件示例
QT += quick charts
CONFIG += c++17
TARGET = CarDashboard
TEMPLATE = app

SOURCES += main.cpp
RESOURCES += qml.qrc

2.3 模拟器与真机调试环境搭建

环境搭好了,接下来就是跑起来看看效果。模拟器和真机调试各有优劣,我建议两手准备。

2.3.1 Android 模拟器配置

Android Studio 自带的模拟器其实够用,但要做多屏互动,你得配多个虚拟设备。

  • 创建多个 AVD:一个模拟中控屏(比如 1280x720),一个模拟仪表盘(比如 1920x720)。分辨率要按实际车载屏幕来设。
  • 开启多窗口:在模拟器设置里勾选「Enable multi-window」。这样你就能同时跑两个模拟器,模拟多屏场景。
  • 性能优化:如果模拟器卡,试试用 x86 镜像,开启 GPU 加速。我一般给每个模拟器分配 2GB 内存,再多电脑就扛不住了。
重点:多屏互动调试时,记得在代码里指定屏幕 ID。不然两个模拟器会抢焦点,你点中控屏结果仪表盘响应了,那画面想想都尴尬。

2.3.2 Qt 模拟器配置

Qt 没有官方模拟器,但你可以用 Qt Creator 的「桌面模拟」功能。说白了就是在你的电脑上直接跑 QML 界面,模拟车载屏幕。

  • 设置屏幕尺寸:在项目运行配置里,把「Arguments」设为 -platform windows:width=1280,height=720。这样窗口大小就固定了。
  • 多窗口模拟:开两个 Qt Creator 实例,一个跑中控屏,一个跑仪表盘。用 UDP 或 D-Bus 通信来模拟多屏互动。
  • 性能监控:Qt Creator 自带性能分析器,可以看帧率和内存占用。我习惯在调试时开着它,一旦掉帧马上就能发现。

2.3.3 真机调试环境

模拟器再方便,也比不上真机。尤其是做车载开发,很多硬件特性(比如触控反馈、屏幕亮度调节)模拟器根本模拟不出来。

Android 真机调试

  1. 打开开发者选项:设置 → 关于手机 → 连续点击「版本号」7 次。
  2. 开启 USB 调试:在开发者选项里勾上「USB 调试」。
  3. 连接电脑:用数据线连上,手机上会弹出授权提示,点「允许」。
  4. 检查连接:在终端输入 adb devices,看到设备列表就说明成功了。
避坑指南:我曾经因为数据线质量差,导致 adb 频繁断开。后来换了根带屏蔽层的线,再也没出过问题。别小看一根线,它能让你少掉一半头发。

Qt 真机调试

  1. 在 Qt Creator 里添加一个「Device」:工具 → 选项 → 设备 → 添加 → 选择「Generic Linux Device」。
  2. 输入设备的 IP 地址和 SSH 端口(默认 22)。
  3. 配置编译器:在 Kit 里选择「Device」为刚才添加的设备。
  4. 部署运行:Qt Creator 会自动把可执行文件传到设备上,然后远程启动。
注意:真机调试时,确保设备和电脑在同一个局域网。如果跨网段,SSH 连接会超时。我遇到过客户现场网络环境复杂,最后只能用 U 盘拷文件,手动部署。

2.4 环境验证:跑一个 Hello World

环境搭好了,总得验证一下能不能用。我习惯跑一个最简单的 Hello World,确保整个链路是通的。

Android 端

// MainActivity.java
public class MainActivity extends AppCompatActivity {
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        TextView tv = findViewById(R.id.textView);
        tv.setText("Hello, Car HMI!");
    }
}

Qt 端

// main.qml
import QtQuick 2.15
import QtQuick.Controls 2.15

ApplicationWindow {
    visible: true
    width: 1280
    height: 720
    title: "Car Dashboard"

    Text {
        anchors.centerIn: parent
        text: "Hello, Car HMI!"
        font.pixelSize: 48
        color: "white"
    }
}

两个都跑通了?恭喜你,环境搭建完成。接下来就可以正式开始写代码了。

嗯,这一章内容不少,但每一步都很关键。别急着往下翻,先把环境配好。下一章咱们聊多屏通信协议,那才是真正的硬菜。