Android 平台支援在 Rust 中開發原生 OS 元件,Rust 是一種新型的系統程式設計語言,可提供記憶體安全保證,效能與 C/C++ 相當。Rust 會結合編譯時檢查 (可強制執行物件生命週期和擁有權) 和執行階段檢查 (可確保有效的記憶體存取),因此不需要垃圾收集器。
Rust 提供一系列的現代語言功能,可讓開發人員 提升工作效率和自信:
- 安全的並行程式設計 - 這種做法易於使用者 提高編寫效率及執行緒安全程式碼的應用在 Rust 的 無懼的並行 標語。
- Expressive 型別系統 - Rust 會透過 支援高度表達的型別 (例如 Newtype 包裝函式和列舉 具有內容的子類)。
- 更強大的編譯時間檢查功能 - 在編譯時間增加時偵測到更多錯誤 開發人員確信程式碼順利編譯後, 而非偏誤。
- 內建測試架構:Rust 提供內建測試架構,可將單元測試與測試的實作項目一併放置,方便納入單元測試。
- 處理強制執行錯誤 - 發生可復原失敗的函式
傳回「結果類型」
例如成功的變化版本或錯誤變化版本編譯器要求呼叫端檢查並處理從函式呼叫傳回的
Result
列舉的錯誤變化版本。這麼做可減少未處理失敗情況所導致的錯誤。 - 初始化:Rust 要求每個變數在使用前都必須初始化為其類型的合法成員,以免不小心將初始化值設為不安全的值。
- 更安全的整數處理方式:所有整數型轉換都是明確轉換。開發人員在將值指派給變數,或嘗試使用其他類型的算術運算時,不會在函式呼叫期間意外轉換。根據預設,Android for Rust 會啟用溢位檢查功能,因此必須明確執行溢位運算。
詳情請參閱有關 Android Rust 支援的系列網誌文章:
- Android 平台中的 Rust
概略說明 Android 團隊為何將 Rust 做為新的平台語言。 - 將 Rust 整合至 Android 開放原始碼專案
說明建構系統如何導入 Rust 支援功能,以及原因 。 - Android 平台中的 Rust/C++ 互通性
討論在 Android 中採用 Rust/C++ 互通性的方法。