Kể từ ngày 27 tháng 3 năm 2025, bạn nên sử dụng android-latest-release
thay vì aosp-main
để xây dựng và đóng góp cho AOSP. Để biết thêm thông tin, hãy xem phần Thay đổi đối với AOSP.
Giới thiệu về Android Rust
Sử dụng bộ sưu tập để sắp xếp ngăn nắp các trang
Lưu và phân loại nội dung dựa trên lựa chọn ưu tiên của bạn.
Nền tảng Android hỗ trợ phát triển các thành phần hệ điều hành gốc trong Rust, một ngôn ngữ lập trình hệ thống hiện đại đảm bảo an toàn bộ nhớ với hiệu suất tương đương với C/C++. Rust sử dụng kết hợp các bước kiểm tra thời gian biên dịch để thực thi thời gian hoạt động và quyền sở hữu của đối tượng, cũng như các bước kiểm tra thời gian chạy để đảm bảo quyền truy cập bộ nhớ hợp lệ, nhờ đó không cần đến trình thu gom rác.
Rust cung cấp một loạt các tính năng ngôn ngữ hiện đại cho phép nhà phát triển làm việc hiệu quả hơn và tự tin hơn trong mã của họ:
- Lập trình đồng thời an toàn – Việc cho phép người dùng viết mã hiệu quả, an toàn cho luồng một cách dễ dàng đã tạo ra khẩu hiệu Fearless Concurrency (Đồng thời không sợ hãi) của Rust.
- Hệ thống loại biểu đạt – Rust giúp ngăn chặn các lỗi lập trình logic bằng cách cho phép các loại biểu đạt cao (chẳng hạn như trình bao bọc Newtype và các biến thể enum có nội dung).
- Kiểm tra thời gian biên dịch mạnh mẽ hơn – Việc phát hiện được nhiều lỗi hơn tại thời điểm biên dịch sẽ giúp nhà phát triển tự tin hơn rằng khi biên dịch thành công, mã sẽ hoạt động như dự kiến.
- Khung kiểm thử tích hợp – Rust cung cấp một khung kiểm thử tích hợp mà bạn có thể đặt kiểm thử đơn vị cùng với quá trình triển khai mà chúng kiểm thử, giúp bạn dễ dàng đưa kiểm thử đơn vị vào.
- Thực thi xử lý lỗi – Các hàm có lỗi có thể khôi phục có thể trả về một Loại kết quả, đây sẽ là một biến thể thành công hoặc một biến thể lỗi. Trình biên dịch yêu cầu phương thức gọi kiểm tra và xử lý biến thể lỗi của enum
Result
được trả về từ lệnh gọi hàm. Điều này giúp giảm khả năng xảy ra lỗi do các lỗi không được xử lý.
- Khởi tạo – Rust yêu cầu mọi biến phải được khởi tạo thành một thành phần hợp lệ thuộc loại của biến đó trước khi sử dụng, nhằm ngăn việc khởi tạo vô tình thành một giá trị không an toàn.
- Xử lý số nguyên an toàn hơn – Tất cả các lượt chuyển đổi kiểu số nguyên đều là các lượt truyền rõ ràng.
Nhà phát triển không thể vô tình truyền trong lệnh gọi hàm khi chỉ định cho một biến hoặc khi cố gắng thực hiện phép tính với các loại khác. Tính năng kiểm tra tình trạng tràn được bật theo mặc định trong Android cho Rust, yêu cầu các thao tác tràn phải rõ ràng.
Để biết thêm thông tin, hãy xem loạt bài đăng trên blog về tính năng hỗ trợ Rust cho Android:
Nội dung và mã mẫu trên trang này phải tuân thủ các giấy phép như mô tả trong phần Giấy phép nội dung. Java và OpenJDK là nhãn hiệu hoặc nhãn hiệu đã đăng ký của Oracle và/hoặc đơn vị liên kết của Oracle.
Cập nhật lần gần đây nhất: 2025-07-27 UTC.
[null,null,["Cập nhật lần gần đây nhất: 2025-07-27 UTC."],[],[],null,["# Android Rust introduction\n\nThe Android platform provides support for developing native OS components in Rust,\na modern systems-programming language that provides memory safety guarantees with\nperformance equivalent to C/C++. Rust uses a combination of compile-time checks\nthat enforce object lifetime and ownership, and runtime checks that ensure valid\nmemory accesses, thereby eliminating the need for a garbage collector.\n\nRust provides a range of modern language features which allow developers to be\nmore productive and confident in their code:\n\n- **Safe concurrent programming** - The ease with which this allows users to write efficient, thread-safe code has given rise to Rust's [Fearless Concurrency](https://doc.rust-lang.org/book/ch16-00-concurrency.html) slogan.\n- **Expressive type system** - Rust helps prevent logical programming bugs by allowing for highly expressive types (such as Newtype wrappers, and enum variants with contents).\n- **Stronger Compile-time Checks** - More bugs caught at compile-time increases developer confidence that when code compiles successfully, it works as intended.\n- **Built-in Testing Framework** - Rust provides a built-in testing framework where unit tests can be placed alongside the implementation they test, making unit testing easier to include.\n- **Error handling enforcement** - Functions with recoverable failures can return a [Result type](https://doc.rust-lang.org/book/ch09-02-recoverable-errors-with-result.html), which will be either a success variant or an error variant. The compiler requires callers to check for and handle the error variant of a `Result` enum returned from a function call. This reduces the potential for bugs resulting from unhandled failures.\n- **Initialization** - Rust requires every variable to be initialized to a legal member of its type before use, preventing an unintentional initialization to an unsafe value.\n- **Safer integer handling** - All integer-type conversions are explicit casts. Developers can't accidentally cast during a function call when assigning to a variable, or when attempting to do arithmetic with other types. Overflow checking is on by default in Android for Rust, which requires overflow operations to be explicit.\n\nFor more information, see the series of blog posts on Android Rust support:\n\n- [Rust in the Android Platform](https://security.googleblog.com/2021/04/rust-in-android-platform.html) \n Provides an overview on why the Android team introduced Rust as a new platform language.\n- [Integrating Rust into the Android Open Source Project](https://security.googleblog.com/2021/05/integrating-rust-into-android-open.html) \n Discusses how Rust support has been introduced to the build system, and why certain design decisions were made.\n- [Rust/C++ interop in the Android Platform](https://security.googleblog.com/2021/06/rustc-interop-in-android-platform.html) \n Discusses the approach to Rust/C++ interoperability within Android."]]