Android Rust-Einführung

Die Android-Plattform bietet Unterstützung für die Entwicklung nativer Betriebssystemkomponenten in Rust, einer modernen Systemprogrammiersprache, die Speichersicherheitsgarantien mit einer Leistung bietet, die C/C++ entspricht. Rust verwendet eine Kombination aus Überprüfungen zur Kompilierzeit, die die Lebensdauer und den Besitz von Objekten erzwingen, und Überprüfungen zur Laufzeit, die gültige Speicherzugriffe sicherstellen, wodurch die Notwendigkeit eines Garbage Collectors entfällt.

Rust bietet eine Reihe moderner Sprachfunktionen, die es Entwicklern ermöglichen, produktiver und sicherer in ihrem Code zu sein:

  • Sichere gleichzeitige Programmierung – Die Leichtigkeit, mit der Benutzer effizienten, Thread-sicheren Code schreiben können, hat zu Rusts Slogan „ Fearless Concurrency “ geführt.
  • Expressives Typsystem - Rust hilft, logische Programmierfehler zu vermeiden, indem es sehr ausdrucksstarke Typen (wie Newtype-Wrapper und Enum-Varianten mit Inhalten) zulässt.
  • Strengere Überprüfungen zur Kompilierungszeit – Mehr Fehler, die zur Kompilierungszeit erkannt werden, erhöhen das Vertrauen der Entwickler, dass erfolgreich kompilierter Code wie beabsichtigt funktioniert.
  • Integriertes Test-Framework – Rust bietet ein integriertes Test-Framework, in dem Unit-Tests neben der zu testenden Implementierung platziert werden können, wodurch Unit-Tests einfacher eingebunden werden können.
  • Erzwingung der Fehlerbehandlung – Funktionen mit behebbaren Fehlern können einen Ergebnistyp zurückgeben, der entweder eine Erfolgsvariante oder eine Fehlervariante ist. Der Compiler fordert Aufrufer auf, die Fehlervariante einer von einem Funktionsaufruf zurückgegebenen Result -Enumeration zu prüfen und zu behandeln. Dies reduziert das Potenzial für Fehler, die aus nicht behandelten Fehlern resultieren.
  • Initialisierung - Rust erfordert, dass jede Variable vor der Verwendung mit einem zulässigen Element ihres Typs initialisiert wird, um eine unbeabsichtigte Initialisierung auf einen unsicheren Wert zu verhindern.
  • Sicherer Umgang mit Ganzzahlen – Alle Ganzzahl-Konvertierungen sind explizite Umwandlungen. Entwickler können nicht versehentlich während eines Funktionsaufrufs umwandeln, wenn sie einer Variablen zuweisen oder versuchen, Arithmetik mit anderen Typen durchzuführen. Die Überlaufprüfung ist in Android für Rust standardmäßig aktiviert, was erfordert, dass Überlaufvorgänge explizit sind.

Weitere Informationen finden Sie in der Reihe von Blogbeiträgen zur Unterstützung von Android Rust: