Android 平台支援在 Rust 中開發原生 OS 元件。Rust 是一種新型系統程式設計語言,可提供記憶體安全保證,效能等同於 C/C++。Rust 結合了編譯時間檢查功能,可強制實行物件的生命週期和擁有權,以及確保有效的記憶體存取,讓您不必使用垃圾收集器。
Rust 提供多種現代語言功能,可讓開發人員更有效率地編寫程式碼,並對程式碼更有信心:
- 安全的並行程式設計:這項功能可讓使用者輕鬆編寫高效、執行緒安全的程式碼,因此 Rust 才會提出「無懼並行」的口號。
- 可執行的型別系統 - Rust 允許淺顯易懂的類型 (例如 Newtype 包裝函式,以及含有內容的列舉變化版本),幫助避免邏輯程式設計錯誤。
- 更強大的編譯時檢查功能:在編譯時偵測到的錯誤越多,開發人員就越有信心,認為在程式碼成功編譯後,程式碼會按照預期運作。
- 內建測試架構:Rust 提供內建測試架構,可將單元測試與測試的實作項目一併放置,方便納入單元測試。
- 強制執行錯誤處理措施:發生可復原失敗的函式可能會傳回 Result 類型,結果會是成功的變化版本或錯誤變化版本。編譯器需要呼叫端檢查並處理函式呼叫傳回的
Result
列舉錯誤變化版本。這麼做可減少未處理失敗情況所導致的錯誤。 - 初始化:Rust 要求每個變數在使用前都必須初始化為其類型的合法成員,以免不小心將初始化值設為不安全的值。
- 更安全的整數處理:所有整數類型的轉換均為明確轉換。 開發人員在指派給變數或嘗試對其他類型進行算術時,就無法在函式呼叫期間意外轉換。根據預設,Android for Rust 會啟用溢位檢查功能,因此必須明確執行溢位運算。
如需更多資訊,請參閱一系列有關 Android Rust 支援的網誌文章:
- Rust in Android Platform
概略說明 Android 團隊為何將 Rust 做為新平台語言導入。 - 將 Rust 整合至 Android 開放原始碼計畫
討論如何在建構系統中導入 Rust 支援功能,以及為何做出特定設計決策。 - Android 平台中的 Rust/C++ 互通性
討論在 Android 中實現 Rust/C++ 互通性的方法。