A
第 1 章JAVA30 分钟

环境搭建:JDK 与 Android Studio 安装

从零搭建 Android 开发环境:JDK 17 安装、Android Studio 下载、SDK 与 AVD 模拟器配置,首跑空项目验证

学习目标

  • 正确安装并配置 JDK 17,能在终端验证 java 与 javac 命令
  • 下载并完成 Android Studio 初始化向导,安装必要 SDK Platform 与工具
  • 使用 SDK Manager 管理多版本 SDK 与构建工具
  • 使用 AVD Manager 创建一个可启动的虚拟设备并运行空项目

技术选型说明:为什么学 Java + Views

在开始之前,需要先说明本教程 Part 1-7 的技术定位。

当前 Android 开发有两条主流技术路线:

  • Kotlin + Jetpack Compose:Google 自 2019 年起主推的声明式 UI 方案,是新项目的首选推荐。Android Studio 新建项目默认模板已转向 Compose,官方新 API 示例也以 Compose 为主。
  • Java + Views(XML 布局):传统的命令式 UI 方案,Google 仍官方支持但已不再是新项目推荐路径。

本教程 Part 1-7 采用 Java + Views 路线,面向以下场景:

  1. 存量项目维护:大量企业应用、政府项目、老牌 App 仍是 Java + Views 代码库,维护这些项目需要相关技能
  2. 迁移基础:从 Views 迁移到 Compose 时,Activity、生命周期、Intent、Fragment 等核心概念在两种范式下通用,先学 Views 能为后续迁移打基础
  3. 就业市场需求:维护老项目仍是常见岗位需求
  4. 第三方库兼容:部分老库仍以 Java 为主,理解 Java 有助于集成与调试

如果你是新入门且无维护老项目需求,建议直接从 Part 8-10 Kotlin + Compose 开始。如果你需要维护存量代码或想系统理解 Android 基础概念,请继续本章。

说明:本教程在 Java + Views 体系内采用该架构下的最佳实践(如 MVC/MVP/MVVM 演进、Dagger 2 依赖注入、RxJava 异步、Room 数据库等),并在相关章节标注现代替代方案(Hilt、协程、Compose)的对应关系,便于后续迁移。

学习目标

在写第一行 Android 代码之前,必须先有一台“能编译、能运行、能调试”的开发机。本章面向完全没接触过 Android 的开发者,带你完成从 JDK 到模拟器的整条链路。读完本章你将能够:

  • 在 Windows 上安装 JDK 17 并通过 java -version 与 javac -version 验证;
  • 安装 Android Studio 并走完首次启动的 Setup Wizard,下载必要的 SDK Platform 34;
  • 用 SDK Manager 管理 SDK Platform、Build Tools、Platform Tools、CMake 等组件;
  • 用 AVD Manager 创建一台运行 Android 14(API 34)的虚拟设备并成功启动;
  • 新建一个空项目并点击 Run,看到模拟器屏幕上出现 “Hello, World!” 文本。

安装 JDK 17

1. 为什么是 JDK 17

Android Studio 自 Giraffe(2023.1)起将内置 JDK 升级为 JDK 17,AGP 8.0 之后的 compileOptions 默认 sourceCompatibility 与 targetCompatibility 也升到了 17。即使 Android Studio 自带了一个 JBR(JetBrains Runtime),也建议在系统层另装一份 JDK 17,用于命令行构建、CI 环境以及未来 Gradle Wrapper 的执行。选择 JDK 17 而非 21 的原因:截至 AGP 8.5,对 21 的官方支持仍在过渡期,17 是稳定且长期支持的版本(LTS)。

2. 选择发行版

主流的 OpenJDK 发行版都可用于 Android 开发,差异主要在赞助方和支持周期:

发行版 供应商 适用场景
Eclipse Temurin Adoptium 基金会 通用、社区主流
Microsoft Build of OpenJDK 微软 Windows 体验好
Oracle JDK Oracle 商业许可需注意
Amazon Corretto AWS 长期支持,企业友好

下面以 Temurin 17(Adoptium)为例,因为它的 Windows 安装包会自动写入 JAVA_HOME 并把 java 加入 PATH,省去手工配置。

3. Windows 上的安装步骤

  1. 打开 https://adoptium.net/temurin/releases/?version=17 ;
  2. 在 Operating System 选 Windows,Architecture 选 x64;
  3. 下载 .msi 安装包(例如 OpenJDK17U-jdk_x64_windows_hotspot_17.x.x_xx.msi);
  4. 双击安装,安装向导里勾选 Set JAVA_HOME variable 和 Add to PATH 两项;
  5. 安装目录默认为 C:\Program Files\Eclipse Adoptium\jdk-17.x.x.x-hotspot\。

4. 验证安装

打开 PowerShell(按 Win + R 输入 powershell),执行:

java -version
javac -version
echo $env:JAVA_HOME

期望输出(版本号以你下载的为准):

openjdk version "17.0.x" 2024-xx-xx
OpenJDK Runtime Environment Temurin-17.0.x+x (build ...)
OpenJDK 64-Bit Server VM Temurin-17.0.x+x (build ...)
javac 17.0.x
C:\Program Files\Eclipse Adoptium\jdk-17.x.x.x-hotspot

如果 java -version 提示找不到命令,说明 PATH 没生效,可手动添加:在 PowerShell 临时设置可以这样:

$env:JAVA_HOME = "C:\Program Files\Eclipse Adoptium\jdk-17.x.x.x-hotspot"
$env:Path = "$env:JAVA_HOME\bin;$env:Path"

永久写入建议用“系统属性 → 环境变量”或 setx 命令,setx 设置的变量在新窗口生效,不影响当前会话。

5. 多版本共存(可选)

如果你机器上同时还装了 JDK 21 或 JDK 8,可以用脚本切换。一种轻量做法是把各版本装在统一目录下,再用一个 Switch-Jdk.ps1 脚本改写 JAVA_HOME:

# Switch-Jdk.ps1
param([string]$Version = "17")
$jdkRoot = "C:\Program Files\Eclipse Adoptium"
$target = Get-ChildItem $jdkRoot -Directory | Where-Object Name -Like "jdk-$Version*"
if (-not $target) { Write-Error "未找到 JDK $Version"; exit 1 }
$env:JAVA_HOME = $target.FullName
$env:Path = "$env:JAVA_HOME\bin;$env:Path"
java -version

下载并安装 Android Studio

1. 下载

访问 https://developer.android.com/studio ,下载 Windows 版安装包 android-studio-xxxx.x.x-windows.exe。Windows 版约 1.2GB,建议挂代理或使用国内镜像。

国内开发者可使用腾讯 Bugly 或中科大镜像加速 SDK 下载。设置方法见后文“SDK Manager 配置”小节。

2. 安装步骤

  1. 双击 .exe,按向导下一步;
  2. 在 Choose Components 界面保留默认勾选 Android Studio 与 Android Virtual Device;
  3. 安装路径避免含中文、空格或特殊字符,例如 D:\Android\Android Studio;
  4. 安装完成后启动 Android Studio,第一次启动会弹出 Setup Wizard;
  5. 在 Send usage statistics to Google 按个人偏好选择;
  6. Choose your development scenario 选 Standard 即可;
  7. Select UI Theme 按喜好选 Light 或 Darcula;
  8. Verify Settings 页会展示即将下载的 SDK 组件清单,确认后开始下载。

首次启动会下载约 2-3GB 的 SDK Platform、Build Tools、Emulator、Platform Tools 等组件,请保持网络稳定。

3. 解决国内下载慢的问题

如果首次下载卡住,可以手动配置代理:

  • 在 Android Studio 启动页 → Customize → All settings → Appearance & Behavior → System Settings → HTTP Proxy;
  • 选 Manual proxy configuration,填入代理服务器;
  • 也可设置 SDK 镜像:在 HTTP Proxy → Auto-detect proxy settings 中填入国内镜像域名。

SDK Manager 配置

1. 打开 SDK Manager

Android Studio 顶部菜单 Tools → SDK Manager,或主界面 Customize → SDK Manager。也可以直接双击 android-sdk\tools\bin\sdkmanager.bat 用命令行操作。

2. SDK Platforms 标签

这里以 API Level 为单位管理 Android 平台。本教程统一使用 API 34(Android 14):

  • 勾选 Android 14.0 (API 34) → 展开后勾选 Android SDK Platform 34、Sources for Android 34、Google APIs Intel x86 Atom_64 System Image;
  • 为兼容老设备调试,可再勾选 Android 12.0 (API 31) 与 Android 10.0 (API 29) 的 System Image;
  • 点击 Apply 开始下载。

3. SDK Tools 标签

下面这些是必装项,默认应该已勾选:

工具 用途
Android SDK Build Tools 提供 aapt、d8、zipalign 等构建工具
Android SDK Platform Tools 提供 adb
Android Emulator 模拟器引擎
Android SDK Tools 旧版工具集合
Android SDK Command-line Tools 命令行 sdkmanager
Intel HAXM Intel CPU 模拟器加速(AMD 用 Hyper-V)
Google USB Driver Windows 上调试真机用

自 Android Studio Giraffe 起 Android SDK Tools 已被弃用,由 Command-line Tools 替代,老项目升级时留意。

4. 命令行使用 sdkmanager(可选)

# 列出已安装
sdkmanager --list_installed

# 安装 platform 34 与 build-tools
sdkmanager "platforms;android-34" "build-tools;34.0.0"

# 接受所有许可
sdkmanager --licenses

如果提示 sdkmanager: command not found,需要先把 cmdline-tools/latest/bin 加入 PATH:

$sdkRoot = "$env:LOCALAPPDATA\Android\Sdk"
$env:Path = "$sdkRoot\cmdline-tools\latest\bin;$sdkRoot\platform-tools;$env:Path"

5. 配置国内镜像源

在 SDK Update Sites 标签,可添加镜像 URL,例如 https://mirrors.neusoft.edu.cn/android/repository/repository.xml。注意镜像站点会变化,建议搜索“android sdk 镜像”获取最新。

创建 AVD 模拟器

1. 系统要求

  • Intel CPU:需要安装 Intel HAXM,SDK Tools 中勾选即可;
  • AMD CPU:需在 Windows 功能中启用 Hyper-V 和 Windows 虚拟机监控程序平台;
  • BIOS:需开启 Virtualization Technology (VT-x/AMD-V);
  • 内存建议 16GB 以上,模拟器至少分配 2GB。

2. 启用 Hyper-V(AMD 用户)

以管理员身份打开 PowerShell:

Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Hyper-V -All
Enable-WindowsOptionalFeature -Online -FeatureName HypervisorPlatform
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform

执行完重启电脑。

3. 用 AVD Manager 创建虚拟设备

  1. Android Studio 顶部 Tools → Device Manager,或主界面 More Actions → Virtual Device Manager;
  2. 点击 Create Device;
  3. Choose a device 选 Pixel 7(中等分辨率,便于通用调试)→ Next;
  4. Select system image 选 R(API 34,Release Name “R”)→ 下载图标,等待下载完成 → Next;
  5. Verify Configuration:
    • AVD Name:Pixel_7_API_34
    • Startup orientation:Portrait
    • Advanced Settings 里 Ram 调到 2048MB,Internal Storage 调到 4GB
  6. 点击 Finish。

4. 启动模拟器

在 Device Manager 列表点击 ▶ 按钮。首次启动耗时较长(约 30 秒),后续会快很多。屏幕出现 Android 桌面即成功。

5. 命令行启动

# 列出所有 AVD
emulator -list-avds

# 启动指定 AVD(-wipe-data 清空数据)
emulator -avd Pixel_7_API_34 -wipe-data

emulator.exe 位于 $sdkRoot\emulator 目录。

6. 验证 ADB 连接

adb devices

期望输出:

List of devices attached
emulator-5554   device

如果状态显示 offline 或 unauthorized,等待模拟器完全启动后重试。

首次跑空项目验证

1. 新建项目

  • 启动 Android Studio → New Project;
  • 选择 Empty Activity(注意不是 Empty Views Activity,那个会强制 Compose;本教程用经典的 View 体系);
    • 实际上从 Hedgehog 起,模板被重命名,旧 Empty Activity 现叫 Empty Views Activity;
    • 本教程统一用 Empty Views Activity;
  • 填写:
    • Name:FirstApp
    • Package name:com.example.firstapp
    • Save location:D:\projects\FirstApp
    • Language:Java
    • Minimum SDK:API 24 (Android 7.0)
    • Build configuration language:Groovy DSL (build.gradle)
  • 点击 Finish,等待 Gradle 同步。

2. 等待 Gradle 同步完成

首次同步会下载大量依赖,可能耗时 5-15 分钟。底部状态栏显示 Gradle: Build finished 即成功。如果报 Could not resolve ...:

  • 检查网络与代理;
  • 在项目根 settings.gradle 中加阿里云镜像:
pluginManagement {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        google()
        mavenCentral()
        gradlePluginPortal()
    }
}
dependencyResolutionManagement {
    repositories {
        maven { url 'https://maven.aliyun.com/repository/google' }
        maven { url 'https://maven.aliyun.com/repository/public' }
        google()
        mavenCentral()
    }
}

3. 点击 Run

  • 顶部工具栏选择运行设备 Pixel_7_API_34;
  • 点击绿色 ▶ 按钮;
  • 等待构建 → 安装 → 启动;
  • 模拟器屏幕出现空白界面,正中央显示 Hello, World! 即成功。

4. 查看 Logcat

底部 Logcat 标签能输出应用日志。先输入过滤器 package:com.example.firstapp,再启动 App,能看到 ActivityTaskManager: ... com.example.firstapp ... 日志,证明进程已启动。

常见坑与最佳实践

  1. 安装路径含中文或空格导致 Gradle 同步失败:Android Studio 与 SDK 安装路径必须全英文,连空格也尽量避开,建议放 D:\Android\ 这类根目录。
  2. SDK location not found:首次启动 Setup Wizard 跳过了 SDK 下载。打开 SDK Manager 手动安装 Platform 34 与 Build Tools,并在 File → Project Structure → SDK Location 中确认路径。
  3. 模拟器黑屏 / 启动报 HAXM is not working:Intel CPU 检查 BIOS 是否开启 VT-x;AMD CPU 切换到 Hyper-V 后端,并在 SDK Tools 中取消 Intel HAXM。
  4. JDK 版本不一致报 Unsupported class file major version:检查 java -version 是 17;如果项目报“21”或“8”版本不匹配,到 File → Project Structure → SDK Location → JDK 改成 Embedded JDK 17。
  5. 首次 Gradle 同步卡 Downloading https://services.gradle.org/...:手动下载对应版本 Gradle 离线包放到 ~\.gradle\wrapper\dists\gradle-x.x-all\<hash>\ 目录,再次同步会跳过下载。
  6. SDK license not accepted 报错:执行 sdkmanager --licenses 输入 y 接受全部许可。
  7. 模拟器很卡:开启 Cold Boot 启动更快;长期调试建议买一台真机,开启开发者选项 + USB 调试。
  8. 公司网络代理拦截 HTTPS 证书:Android Studio 的 HTTP Proxy 配置中勾上 No proxy hosts,必要时把 *.android.com、*.google.com 加入例外。

章节小结

  • JDK 17 是 Android Studio Giraffe 之后的标准运行时,建议系统层独立安装 Temurin 17 并验证 java -version;
  • Android Studio 安装路径避免中文与空格,首次启动 Setup Wizard 会下载约 2GB 的 SDK 组件;
  • SDK Manager 管 SDK Platforms(按 API Level)与 SDK Tools(Build Tools、Platform Tools、Emulator、HAXM 等);
  • AVD Manager 创建虚拟设备时按 CPU 类型选择加速方案(Intel HAXM / AMD Hyper-V);
  • 完成空项目验证 = 同步成功 + 模拟器启动 + 屏幕出现 Hello, World! 三步全过。

下一章预告

第 2 章我们将动手做一个真正的 Hello World:新建一个 Empty Views Activity 项目、运行到模拟器、初探目录结构,修改 TextView 文案并构建出第一个可安装的 APK。