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

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

出品 | OSCHINA

文 | 局长

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

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

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

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

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

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

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

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

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

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

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

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

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

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

更多相关文章

  1. android EditText设置不可写
  2. android 使用html5作布局文件: webview跟javascript交互
  3. 《Android开发从零开始》——25.数据存储(4)
  4. android studio调试c/c++代码
  5. Android开发环境搭建
  6. IM-A820L限制GSM,WCDMA上网的原理(其他泛泰机型可参考)7.13
  7. 使用NetBeans搭建Android开发环境
  8. 锁屏界面
  9. Android(安卓)Chromium WebView html js 开发系列

随机推荐

  1. 在NDK中使用STL
  2. android Popwindow中spinner点击崩溃挂掉
  3. [原创] adb shell 启动,停止 android 应用
  4. Android中利用OnTouchListener在ImageVie
  5. Android(安卓)View 拖动
  6. Android(安卓)SurfaceView+MediaPlayer实
  7. Android管理联系人(包含添加,查询,修改和删
  8. Android睡眠唤醒机制--系统架构
  9. Android(安卓)Jetpack -- ViewModel & Li
  10. php如何解析IOS/Android上传的Json消息