历史核心:Java 与 Dalvik 虚拟机
在 Android 诞生之初,以及之后的很多年里,Java 是 Android 开发的唯一官方语言。

-
核心技术栈:
- 语言:Java
- 核心库:Android 提供了一个精简的、修改过的 Java 类库,它基于 Java 6 (早期) 和后来的 Java 7/8,这个库包含了开发 Android 应用所需的大部分功能,如 UI (View, ViewGroup)、数据存储、网络通信等。
- 虚拟机:Android 并不直接运行标准的 Java 字节码,它使用了Dalvik 虚拟机(或其 successor ART),Dalvik 经过特殊优化,能够高效地运行在移动设备有限的内存和 CPU 资源上,Java 代码首先被编译成
.class文件,然后通过dx工具打包成 Android 专有的.dex文件,由 Dalvik/ART 执行。
-
开发者体验:
- 开发者使用 Java 语言 编写业务逻辑和 UI 布局。
- 使用 Eclipse IDE (早期) 或 Android Studio (后期,基于 IntelliJ IDEA) 进行开发。
- 编译和打包过程对开发者是透明的,Android SDK 和构建工具(如 Gradle)处理了所有细节。
在这个阶段,Android 对 Java 的支持是原生、深度且官方的,可以说,Android 的生态系统就是建立在 Java 之上的。
重大转折:Google 与 Oracle 的 Java 诉讼
这个事件是 Android 发展史上的一个分水岭。

- 背景:Oracle 收购了 Sun Microsystems(Java 的创造者)后,在 2010 年起诉 Google,指控其在 Android 中未经授权使用了 Java 的核心 API(这部分被称为 Java API 或 Java SE API)。
- 结果:这场官司持续了多年,最终在 2025 年以 Google 的胜诉告终(美国最高法院裁定,Google 的使用属于“合理使用” fair use)。
- 深远影响:
- 技术上的“去 Java 化”:尽管官司结果对 Google 有利,但这场诉讼让 Google 意识到将整个平台生态与一家公司的技术(Oracle 的 Java)深度绑定存在巨大风险,Google 开始着手打造一个完全自主的、不依赖 Oracle 的 Java 实现方案。
- 加速 Kotlin 的崛起:Google 官方宣布 Kotlin 成为 Android 的第一开发语言,Kotlin 是一门运行在 JVM 上的现代语言,可以 100% 兼容 Java 代码,并且解决了 Java 的一些痛点(如空安全、函数式编程等),这标志着 Google 开始推动开发者社区从 Java 向 Kotlin 迁移。
现状:Java 依然可用,但已非“第一公民”
Android 对 Java 的支持呈现出一种“兼容并包,但方向明确”的复杂局面。
A. 技术层面的支持
- 语言支持:你仍然可以使用 Java 语言来开发 Android 应用,Android Studio 完全支持 Java 语法,Java 代码可以与 Kotlin 代码无缝混合在一个项目中。
- 库支持:Android SDK 仍然提供了基于 Java 的 API,海量的第三方库(包括很多 Google 官方库)仍然以 Java 为主。
- 虚拟机:旧的 Dalvik 虚拟机已被 ART (Android Runtime) 取代,ART 是 AOT (Ahead-of-Time) 编译,相比 Dalvik 的 JIT (Just-In-Time) 编译,应用启动更快、运行更流畅、耗电更低,但 ART 仍然是执行 Java/Kotlin 字节码的运行时环境。
- Java 版本:Android NDK (Native Development Kit) 支持使用 C++ 等语言编写原生代码,但这与 Java 语言本身的支持是两回事,对于 Java 语言,Android 支持的 Java 语言特性版本一直在提升,截至 2025/2025 年)可以支持到 Java 17 的部分特性,这主要得益于 Android Gradle Plugin (AGP) 和 Jack & Jill 编译工具链的升级。
B. 官方战略层面的支持
- “第一语言”是 Kotlin:Google 官方明确表示,Kotlin 是 Android 的首选和第一开发语言,所有新的示例代码、教程、Codelab 和 Google I/O 的演示,都优先使用 Kotlin。
- Java 代码的现代化:Google 推出了一个名为 Jetpack Compose 的现代 UI 工具包,虽然 Compose 本身是用 Kotlin 编写的,但它完全兼容 Java,使用 Compose 的最佳实践和最流畅的体验是在 Kotlin 中实现的,Google 也提供了将 Java 代码迁移到 Kotlin 的工具。
- 长期维护承诺:Google 承诺不会“抛弃”Java,现有的、庞大的 Java 代码库需要得到维护,Android SDK 的许多底层 API 仍然是 Java 的,Java 会在很长一段时间内继续受到支持,确保存量应用的稳定性和向后兼容性。
开发者应该如何选择?
对于今天的 Android 选择 Java 还是 Kotlin 成为一个实际的问题。
| 特性 | Java | Kotlin |
|---|---|---|
| 官方地位 | 传统/兼容语言 | 第一/首选语言 |
| 语言特性 | 成熟、稳定、庞大生态,但语法冗长、存在空指针等安全隐患 | 现代、简洁、安全(空安全)、支持函数式编程,学习曲线平缓 |
| 开发效率 | 代码量较大,样板代码多 | 代码量减少约 40%,开发速度快,可读性强 |
| 社区与招聘 | 招聘需求依然巨大,尤其是维护老项目 | 新项目首选,社区活跃,增长迅速 |
| 学习资源 | 资料极其丰富,历史悠久 | 官方文档和教程非常完善,是未来的方向 |
总结建议:
- 新项目:强烈推荐使用 Kotlin,这是 Google 的官方导向,能让你享受到现代语言带来的所有好处,包括更高的开发效率和更健壮的代码。
- 维护老项目:如果你的项目是纯 Java 的,继续使用 Java 维护是合理的选择,可以逐步将新功能或模块用 Kotlin 实现,实现渐进式迁移。
- 学习曲线:如果你是 Java 程序员,学习 Kotlin 非常容易,基本可以无缝上手,反之,从 Kotlin 学习 Java 也毫无障碍。
Android 对 Java 的支持已经从一个“唯一核心”转变为一个“兼容并蓄的基石”。

- 过去:Android = Java + Dalvik + Android SDK,Java 是不可动摇的基石。
- 现在:Android = Kotlin + Java + ART + Android SDK,Kotlin 是面向未来的旗舰,而 Java 是承载历史和确保兼容性的压舱石。
回答你的问题:Android 仍然支持 Java,并且这种支持是长期和可靠的,在官方战略和未来发展方向上,Google 已经将重心完全转移到了 Kotlin 身上。
