Android 平台支持在 Rust 中开发原生操作系统组件。Rust 是一种现代系统编程语言,不仅能提供可媲美 C/C++ 的性能,还可以保证内存安全。Rust 结合使用编译时检查和运行时检查,编译时检查用于执行对象生命周期和所有权检查,运行时检查则可以确保内存访问有效,因此 Rust 根本不需要垃圾回收器。
Rust 提供了一系列现代语言功能,让开发者在提高工作效率的同时,对自己编写的代码更有信心:
- 安全的并发编程 - 此功能可以让用户轻松编写高效、线程安全的代码,这也是 Rust 打出无畏并发口号的原因。
- 富有表现力的类型系统 - Rust 支持使用表现力极强的类型(例如 Newtype 封装容器和列出内容的枚举变体),有助于防止逻辑上的编程 bug。
- 更严格的编译时检查 - 能够在编译时捕获更多 bug,提高开发者对代码编译成功后按预期运行的信心。
- 内置测试框架 - Rust 提供了一个内置测试框架,在该框架中,可以将单元测试与其测试的实现放在一起,因此更容易在测试中包含单元测试。
- 错误处理强制执行 - 产生可恢复错误的函数可以返回 Result 类型,它是一个成功变体或一个错误变体。编译器会要求调用方检查并处理从函数调用返回的
Result
枚举的错误变体。这可以降低由于未处理的错误而导致 bug 的可能性。 - 初始化 - Rust 要求每个变量必须初始化为所属类型的合法成员后才能使用,以防变量意外地初始化为不安全的值。
- 更安全的整数处理 - 所有整数类型的转换都是显式类型转换。分配给变量时或尝试与其他类型的值进行算术运算时,开发者不可能在函数调用期间意外地进行类型转换。Android 中默认启用对 Rust 的溢出检查,要求溢出操作必须是显式操作。
如需了解详情,请参阅有关 Android Rust 支持的系列博文:
- Android 平台中的 Rust
概要介绍 Android 团队为何引入 Rust 作为新的平台语言。 - 将 Rust 集成到 Android 开源项目中
介绍如何将 Rust 支持引入构建系统,以及为何做出某些设计决策。 - Android 平台中的 Rust/C++ 互操作性
介绍在 Android 中实现 Rust/C++ 互操作性的方法。