普通视图

发现新文章,点击刷新页面。
昨天以前首页

Android生态震荡:Swift官方支持落地,跨平台开发迎来“原生级”方案

2025年6月30日 11:02

前言

Swift.org 在 2025年6-26日宣布成立 Android Workgroup,目标是:将Android确立为Swift的官方支持平台并持续维护

Establish and maintain Android as an officially supported platform for Swift.


为什么要做出这个决定?

原因1:跨平台需求高

  • 目前开发者的跨平台开发需求很高;
  • iOS 团队希望一套 Swift 业务逻辑可复用到 Android;
  • Server-Side Swift & Embedded 已验证多平台可行性。

原因2:竞品压力

Google的Kotlin Multiplatform 正快速发展,Flutter也逐渐成熟,成为跨端主流开发方案,官方希望能够提升 Swift 的竞争力。

下面将主要讲解:

  1. Swift支持的Android内容
  2. 关键技术实现
  3. 具体使用
  4. 对比主流跨平台方案
  5. 对开发者的影响

1. Swift支持的Android内容

“官方支持”绝非简单的“Swift代码能在Android编译”就算完成,包括:

1.1 编译器与工具链

  • 为Android的AArch64、x86-64和armv7架构生成预编译SDK
  • 与 NDK 链接脚本、libswiftCore、libdispatch 等系统库适配

1.2 持续集成系统

所有Swift的Pull Request将自动运行Android目标测试,防止平台兼容性退化

1.3 核心库适配

Foundation和Concurrency等核心库将针对Android的文件系统、线程模型差异进行专门优化

1.4 互操作桥接

设计Swift与Java/Kotlin之间的双向调用机制,打破语言壁垒

1.5 开发体验提升

  • 将提供Gradle/Bazel/SwiftPM插件支持
  • VS Code扩展也在开发路线图中

2. 关键技术实现:LLVM

Swift对Android的支持并非从零开始构建,Swift编译器从诞生之初就基于LLVM架构,而Android NDK从R13版本开始就完全转向基于LLVM的Clang编译器。

这种同源架构使得Swift编译器能够被“重定向”,为Android支持的CPU架构生成原生机器码。在具体实现上:

  • Swift直接链接Android的native日志系统(logcat),而非创建自己的日志机制
  • 通过Android NDK提供的LLVM工具链完成交叉编译
  • 运行时库适配Android的bionic libc和线程模型

3. 实战体验:Swift on Android初探

虽然完整支持还在路上,但开发者已经可以尝试Swift开发Android应用。以下是一个简单的互操作示例:

// Swift
@_cdecl("sayHello")
public func sayHello() -> UnsafePointer<CChar> {
    return strdup("Hello from Swift 🐦")
}

// kotlin
class HelloBridge {
    companion object {
        init { System.loadLibrary("hello") }
    }
    external fun sayHello(): String
}

通过JNI将Swift函数挂载到Kotlin,编译的.so文件打包进APK即可运行。

社区已有Tokamak UI框架等尝试支持Android,预示着更完整的解决方案即将到来。


4. 对比主流跨平台方案

对比主流的KMP、Flutter、RN方案


5. 对开发者的意义

对于iOS开发者:跨平台新机遇

  • 多端拓展:轻松将iOS应用扩展到Android平台,覆盖更广泛的用户群体
  • 业务逻辑100%复用:Model层、网络模块和核心算法可以直接共享,无需重写

对于Android开发者:新语言选项

  • 人才流动加速:熟悉Swift的iOS开发者将更容易参与Android项目开发
  • 性能敏感模块的新选择:可将Swift作为“更安全的C++”使用于高性能计算模块

社区与生态影响

  • 学习曲线降低:新人学一门Swift即可开发iOS、Android、服务端等多平台应用
  • 跨平台工具链成熟:Swift Package Manager将成为真正的跨平台依赖管理工具
  • 社区协作加强:Android工作组采用开放协作模式,任何开发者都可参与贡献

结语

这次不仅是Swift语言的一次跨界尝试,更是移动开发的一次生态震荡:苹果主导语言首次系统性拥抱 Google 生态,同时也是苹果对于跨端研发模式与 Kotlin / KMP 生态 的全新博弈。

参考链接: github.com/swiftlang/s… github.com/swiftlang/s…

❌
❌