谷歌宣布 Android 加入对 Rust 的支持

code小生 一个专注大前端领域的技术平台

公众号回复Android加入安卓技术群

出品 | OSCHINA

文 | 局长

谷歌发布博客称 AOSP (Android Open Source Project) 现已支持使用 Rust 开发 Android 操作系统。

谷歌宣布 Android 加入对 Rust 的支持_第1张图片

谷歌表示,Android 大约 70% 的高危安全漏洞由内存安全问题造成。顺便一提,微软和 Chrome 宣布采用 Rust 解决内存问题时也提到了「70% 的安全漏洞是内存安全问题」这个说法(分别查看微软、Chrome 的公告)。这是什么定律?

对于这些内存安全问题,谷歌表示除了优化内存错误检测机制外,最有效的解决办法是采用内存安全语言。虽然 Kotlin 和 Java 也属于内存安全语言,同样是为易用性、可移植性和安全性而设计,它们是开发 Android 应用的最佳选择,但对于操作系统的底层而言,不能选择 Kotlin 和 Java。

谷歌宣布 Android 加入对 Rust 的支持_第2张图片

操作系统底层开发需要使用系统级编程语言,例如 C、C++ 和 Rust,这类语言支持访问底层系统资源和硬件。对于 C 和 C++ 来说,开发者负责管理内存生命周期,但管理内存时因多线程代码库的复杂性很容易导致他们犯错。

Rust 则可以利用编译时检查(确保对象的生命周期和所有权)和运行时检查(确保内存访问有效)来保证内存安全,并且 Rust 在实现这种安全性的同时,还提供了与 C 和 C++ 相当的性能。

谷歌表示,引入新的编程语言并不能解决现有 C/C++ 代码中的错误。即便重新调动 Android 团队中每个软件工程师参与开发,重写几千万行代码并不可行。因此,Rust 主要用于新的开发而不是重写成熟的 C/C++ 代码。

更具体的原因是,谷歌对内存安全错误存在的时长进行了分析,发现大多数内存安全错误都发生在新的或最近修改的代码中,其中大约 50% 只出现了不到一年,这些错误后面会逐渐修复,也就意味着旧代码并不是迫切需要改进的地方。

谷歌宣布 Android 加入对 Rust 的支持_第3张图片

无论如何,向 Android 平台添加新的开发语言支持是一项大工程。比如需要维护工具链和依赖关系、更新测试基础设施和工具、以及对开发者进行培训等。谷歌表示,在过去的 18 个月里,他们一直在为 AOSP 添加 Rust 支持,并计划在接下来的几个月内共享部分早期使用 Rust 开发的项目。此外,谷歌还计划将 Rust 扩展到更多系统,这将是一个长期计划。

为什么现在开发一款软件的时间越来越长?

Google 推荐在 MVVM 架构中使用 Kotlin Flow

Jetpack来了:走近 Google 标准应用架构

十六年全栈开发者的 Android 开发踩坑实录

谷歌准备发布Fuchsia首个开发者预览版


如果你有写博客的好习惯
欢迎投稿
赞+在看,小生感恩❤️

你可能感兴趣的:(编程语言,android,java,linux,人工智能)