27 Mart 2025'ten itibaren AOSP'yi derlemek ve AOSP'ye katkıda bulunmak için aosp-main
yerine android-latest-release
kullanmanızı öneririz. Daha fazla bilgi için AOSP'de yapılan değişiklikler başlıklı makaleyi inceleyin.
Android Rust'a giriş
Koleksiyonlar ile düzeninizi koruyun
İçeriği tercihlerinize göre kaydedin ve kategorilere ayırın.
Android platformu, C/C++'ya eşdeğer performansla bellek güvenliği garantileri sunan modern bir sistem programlama dili olan Rust'ta yerel işletim sistemi bileşenleri geliştirmeyi destekler. Rust, nesne ömrünü ve sahipliğini zorunlu tutan derleme zamanı kontrollerinin yanı sıra geçerli bellek erişimlerini sağlayan çalışma zamanı kontrollerini bir arada kullanarak çöp toplayıcı ihtiyacını ortadan kaldırır.
Rust, geliştiricilerin kodlarında daha üretken ve emin olmalarını sağlayan çeşitli modern dil özellikleri sunar:
- Güvenli eşzamanlı programlama: Bu özelliğin, kullanıcıların verimli ve iş parçacığı güvenli kod yazmasını kolaylaştırması Rust'un Korkusuz Eşzamanlılık sloganına yol açmıştır.
- Anlaşılır tür sistemi: Rust, son derece anlaşılır türlere (ör. Newtype sarmalayıcılar ve içerikleri olan enum varyantları) izin vererek mantıksal programlama hatalarının önlenmesine yardımcı olur.
- Daha güçlü derleme zamanı kontrolleri: Derleme zamanında yakalanan daha fazla hata, kodun başarılı bir şekilde derlendiğinde amaçlandığı gibi çalışacağına dair geliştirici güvenini artırır.
- Yerleşik Test Çerçevesi: Rust, birim testlerinin test ettikleri uygulamanın yanına yerleştirilebileceği yerleşik bir test çerçevesi sağlar. Bu sayede birim testlerinin dahil edilmesi kolaylaşır.
- Hata işleme yaptırımı: Kurtarılabilecek hataları olan işlevler, başarı varyantı veya hata varyantı olacak bir sonuç türü döndürebilir. Derleyici, arayanların bir işlev çağrısından döndürülen
Result
enum'un hata varyantını kontrol etmesini ve işlemesini gerektirir. Bu sayede, ele alınmayan hatalardan kaynaklanan hata olasılığı azalır.
- Başlatma: Rust, her değişkenin kullanılmadan önce türüne ait yasal bir öğeyle başlatılmasını zorunlu kılar. Böylece, yanlışlıkla güvenli olmayan bir değerle başlatılması önlenir.
- Daha güvenli tam sayı işleme: Tam sayı türündeki tüm dönüşümler açık bir şekilde dönüştürülür.
Geliştiriciler, bir değişkene atama yaparken veya diğer türlerle aritmetik işlem yapmaya çalışırken işlev çağrısı sırasında yanlışlıkla yayın yapamaz. Rust için Android'de taşma kontrolü varsayılan olarak açıktır. Bu da taşma işlemlerinin açık olmasını gerektirir.
Daha fazla bilgi için Android Rust desteğiyle ilgili blog yayını serisine göz atın:
Bu sayfadaki içerik ve kod örnekleri, İçerik Lisansı sayfasında açıklanan lisanslara tabidir. Java ve OpenJDK, Oracle ve/veya satış ortaklarının tescilli ticari markasıdır.
Son güncelleme tarihi: 2025-07-27 UTC.
[null,null,["Son güncelleme tarihi: 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."]]