杰瑞科技汇

Android对Java的支持现状如何?

历史核心:Java 与 Dalvik 虚拟机

在 Android 诞生之初,以及之后的很多年里,Java 是 Android 开发的唯一官方语言

Android对Java的支持现状如何?-图1
(图片来源网络,侵删)
  • 核心技术栈

    • 语言: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 发展史上的一个分水岭。

Android对Java的支持现状如何?-图2
(图片来源网络,侵删)
  • 背景:Oracle 收购了 Sun Microsystems(Java 的创造者)后,在 2010 年起诉 Google,指控其在 Android 中未经授权使用了 Java 的核心 API(这部分被称为 Java API 或 Java SE API)。
  • 结果:这场官司持续了多年,最终在 2025 年以 Google 的胜诉告终(美国最高法院裁定,Google 的使用属于“合理使用” fair use)。
  • 深远影响
    1. 技术上的“去 Java 化”:尽管官司结果对 Google 有利,但这场诉讼让 Google 意识到将整个平台生态与一家公司的技术(Oracle 的 Java)深度绑定存在巨大风险,Google 开始着手打造一个完全自主的、不依赖 Oracle 的 Java 实现方案。
    2. 加速 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%,开发速度快,可读性强
社区与招聘 招聘需求依然巨大,尤其是维护老项目 新项目首选,社区活跃,增长迅速
学习资源 资料极其丰富,历史悠久 官方文档和教程非常完善,是未来的方向

总结建议:

  1. 新项目强烈推荐使用 Kotlin,这是 Google 的官方导向,能让你享受到现代语言带来的所有好处,包括更高的开发效率和更健壮的代码。
  2. 维护老项目:如果你的项目是纯 Java 的,继续使用 Java 维护是合理的选择,可以逐步将新功能或模块用 Kotlin 实现,实现渐进式迁移。
  3. 学习曲线:如果你是 Java 程序员,学习 Kotlin 非常容易,基本可以无缝上手,反之,从 Kotlin 学习 Java 也毫无障碍。

Android 对 Java 的支持已经从一个“唯一核心”转变为一个“兼容并蓄的基石”

Android对Java的支持现状如何?-图3
(图片来源网络,侵删)
  • 过去:Android = Java + Dalvik + Android SDK,Java 是不可动摇的基石。
  • 现在:Android = Kotlin + Java + ART + Android SDK,Kotlin 是面向未来的旗舰,而 Java 是承载历史和确保兼容性的压舱石。

回答你的问题:Android 仍然支持 Java,并且这种支持是长期和可靠的,在官方战略和未来发展方向上,Google 已经将重心完全转移到了 Kotlin 身上。

分享:
扫描分享到社交APP
上一篇
下一篇