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