Platforma Android zapewnia wsparcie przy tworzeniu natywnych komponentów systemu operacyjnego w języku Rust, nowoczesnego języka programowania systemów, który zapewnia gwarancje bezpieczeństwa pamięci, jak w języku C/C++. Rust korzysta z kombinacji kontroli podczas kompilacji wymuszające okres istnienia obiektu i jego własność, oraz kontrole w czasie działania zapewniające prawidłowe dostępu do pamięci, eliminując potrzebę użycia modułu do czyszczenia pamięci.
Rust oferuje wiele nowoczesnych funkcji językowych, które pozwalają programistom bardziej wydajny i pewny kod:
- Bezpieczne programowanie równoległe – łatwość, z jaką użytkownicy mogą pisać wydajny kod bezpieczny w zakresie wątków, zaowocowała hasłem Bezpieczne równoległość.
- System typów o wyraźnym znaczeniu – Rust zapobiega błędom logicznego programowania, zezwalając na typy o wyraźnym znaczeniu (takie jak opakowania typu Newtype i warianty enum z zawartością).
- Silniejsze testy podczas kompilacji – więcej błędów wykrywanych podczas wydłużania czasu kompilowania i mają pewność, że poprawnie skompilowany kod będzie działać zamierzone.
- Wbudowany framework testowy – Rust zawiera wbudowany framework testowy, w którym testy jednostkowe można umieszczać obok implementacji, co ułatwia uwzględnianie testów jednostkowych.
- Egzekwowanie obsługi błędów – funkcje z odwracalnymi błędami mogą zwracać typ wyniku, który będzie albo wariantem powodzenia, albo wariantem błędu. Kompilator wymaga, aby wywołujący sprawdzali i obsługiwali wariant błędu typu
Result
zwracanego przez wywołanie funkcji. Zmniejsza to liczbę błędów spowodowanych przez z nieobsłużonych błędów. - Inicjacja – Rust wymaga, aby każda zmienna była zainicjowana w klasie prawnej należy do odpowiedniego typu przed użyciem, co zapobiega przypadkowemu zainicjowaniu. na niebezpieczną wartość.
- Bezpieczniejsze przetwarzanie liczb całkowitych – wszystkie konwersje typu liczba całkowita są jawnymi konwersjami. Deweloperzy nie mogą przypadkowo rzutować podczas wywołania funkcji, przy przypisywaniu zmiennej ani podczas próby wykonania działania arytmetycznego z innymi typami. Rozwiń menu Sprawdzanie jest domyślnie włączone w Androidzie w wersji Rust, co wymaga nadmiaru operacji na jawne.
Więcej informacji znajdziesz w serii postów na blogu na temat obsługi Androida w języku Rust:
- Rust na platformie Androida
Wyjaśniamy, dlaczego zespół Androida wprowadził Rust jako język platformy. - Integrating Rust into the Android Open Source Project
Omówienie sposobu wprowadzenia obsługi Rust do systemu kompilacji oraz powodów podjęcia określonych decyzji projektowych. - Współdziałanie Rust/C++ na platformie Android
Omawia podejście do współdziałania Rust/C++ na platformie Android.