2. 开发环境搭建:Android Studio安装与配置、创建车载项目、配置Gradle与依赖、模拟器与真机调试
好,咱们正式开始动手了。这一章我带你搭好开发环境。别小看这一步,我在项目里见过太多人因为环境没配好,浪费一整天。说白了,工欲善其事,必先利其器。咱们一步步来,稳一点。
2.1 Android Studio 安装与配置
Android Studio 是官方 IDE,没得选。我个人习惯用最新稳定版,别追 beta 版,容易踩坑。
下载与安装
- 去
developer.android.com/studio下载对应系统的安装包 - Windows 用户注意:安装路径不要有中文或空格
- macOS 用户直接拖到 Applications 文件夹
- Linux 用户解压后运行
./studio.sh
SDK 配置
启动后,Android Studio 会自动检测 SDK。如果没检测到,手动设置一下:
File → Settings → Appearance & Behavior → System Settings → Android SDK
这里要确认三样东西:
- Android SDK Platform:至少装到 API 31(Android 12),车载项目常用这个
- Intel HAXM 或 Windows Hypervisor:加速模拟器用的,必须装
- SDK Tools:确保「Android SDK Build-Tools」和「Android Emulator」已勾选
2.2 创建车载项目
环境搭好了,咱们创建一个车载项目。嗯,这里要注意,车载应用和普通手机应用不太一样。
新建项目
File → New → New Project
选择「Empty Activity」
项目名:CarLauncher
包名:com.example.carlauncher
语言:Kotlin(我强烈推荐,Google 官方也主推)
Minimum SDK:API 29(Android 10)
为什么选 API 29?因为车载系统目前主流还是 Android 10 和 11。你想想看,车机不像手机,更新没那么快。选太低又用不了新特性,API 29 是个平衡点。
配置 AndroidManifest.xml
车载 Launcher 需要声明一些特殊权限:
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW" />
<application>
<activity
android:name=".MainActivity"
android:exported="true"
android:launchMode="singleTask">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.HOME" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
看到 category.HOME 了吗?这就是 Launcher 的关键。系统启动时会找这个 category 的 Activity,把它设为桌面。我在第一个车载项目里就忘了加这个,结果应用装上去按 Home 键没反应……
2.3 配置 Gradle 与依赖
Gradle 是 Android 的构建工具。说白了,它负责下载依赖、编译代码、打包 APK。咱们得把它伺候好。
项目级 build.gradle
// 项目根目录下的 build.gradle
buildscript {
ext {
kotlin_version = '1.9.0'
compose_version = '1.5.0'
}
repositories {
google()
mavenCentral()
}
dependencies {
classpath 'com.android.tools.build:gradle:8.1.0'
classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
}
}
模块级 build.gradle
plugins {
id 'com.android.application'
id 'org.jetbrains.kotlin.android'
}
android {
namespace 'com.example.carlauncher'
compileSdk 34
defaultConfig {
applicationId "com.example.carlauncher"
minSdk 29
targetSdk 34
versionCode 1
versionName "1.0"
}
buildFeatures {
compose true
}
composeOptions {
kotlinCompilerExtensionVersion compose_version
}
}
dependencies {
// Jetpack Compose
implementation "androidx.compose.ui:ui:$compose_version"
implementation "androidx.compose.material3:material3:1.1.0"
implementation "androidx.activity:activity-compose:1.7.0"
// 车载相关依赖
implementation "androidx.car.app:app:1.3.0"
// 生命周期
implementation "androidx.lifecycle:lifecycle-runtime-ktx:2.6.1"
}
配置 Gradle 加速
Gradle 慢是出了名的。我教你几招:
- 打开
gradle.properties,加上org.gradle.parallel=true - 设置 JVM 内存:
org.gradle.jvmargs=-Xmx4096m - 开启构建缓存:
android.enableBuildCache=true
2.4 模拟器与真机调试
环境配好了,代码写好了,怎么跑起来?两种方式:模拟器和真机。
创建车载模拟器
Android Studio 自带的模拟器其实可以模拟车载环境:
Tools → Device Manager → Create device
选择「Tablet」分类下的「Automotive (1024p landscape)」
系统镜像选 API 29 或 30,带 Google APIs
为什么选 Automotive 镜像?因为它模拟了车载系统的 UI 框架和窗口管理。普通手机镜像跑车载应用,很多功能会报错。
真机调试
真机调试才是王道。模拟器再像,也比不上真车机。步骤很简单:
- 车机开启「开发者模式」:设置 → 关于 → 连续点击版本号 7 次
- 开启「USB 调试」
- 用 USB 线连接电脑
- 运行
adb devices确认设备已连接
如果 adb devices 显示 unauthorized,别慌。车机上会弹出一个授权对话框,点「允许」就行。我遇到过一台车机死活不弹对话框,后来发现是 USB 线的问题——换根数据线就好了。
无线调试(进阶)
车机装在中控台,拉根线调试太难受了。我推荐用无线调试:
# 先有线连接一次
adb tcpip 5555
# 拔掉线,用 IP 连接
adb connect 192.168.1.100:5555
注意:车机和电脑要在同一个 WiFi 下。我习惯把这个命令写成脚本,一键连接。
INSTALL_FAILED_UPDATE_INCOMPATIBLE。这是因为车机上已经装了签名不同的版本。解决办法:先卸载旧版本,或者统一签名文件。
调试技巧汇总
| 场景 | 命令/操作 | 说明 |
|---|---|---|
| 查看日志 | adb logcat -s CarLauncher |
只显示你应用的日志,过滤掉系统噪音 |
| 抓取屏幕 | adb shell screencap /sdcard/screen.png |
调试 UI 布局时很有用 |
| 查看布局层级 | Android Studio → Layout Inspector | 能看清每个 View 的位置和大小 |
| 模拟来电 | adb shell am broadcast -a android.intent.action.PHONE_STATE |
测试 Launcher 被中断时的表现 |
好了,环境搭建就到这里。你现在应该能创建一个车载项目,在模拟器或真机上跑起来了。下一章咱们开始写真正的 Launcher 界面——那个你每天开车都会看到的桌面。
记住:环境搭好了,后面就顺了。别急,慢慢来。