Einführung in Android Rust

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 Prüfungen zur Kompilierungszeit, die die Lebensdauer und den Besitz von Objekten erzwingen, und Laufzeitprüfungen, 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 mit ihrem Code umzugehen:

  • Sichere gleichzeitige Programmierung – Die Leichtigkeit, mit der Benutzer dadurch effizienten, threadsicheren Code schreiben können, hat zu Rusts Slogan „Fearless Concurrency “ geführt.
  • Ausdrucksstarkes Typsystem – Rust trägt dazu bei, Fehler in der logischen Programmierung zu verhindern, indem es sehr ausdrucksstarke Typen zulässt (z. B. Newtype-Wrapper und Enum-Varianten mit Inhalten).
  • Stärkere Prüfungen zur Kompilierungszeit – Mehr Fehler, die zur Kompilierungszeit erkannt werden, erhöhen die Sicherheit der Entwickler, dass der Code bei erfolgreicher Kompilierung wie vorgesehen funktioniert.
  • Integriertes Test-Framework – Rust bietet ein integriertes Test-Framework, in dem Unit-Tests neben der getesteten Implementierung platziert werden können, was die Einbindung von Unit-Tests erleichtert.
  • Durchsetzung der Fehlerbehandlung – Funktionen mit behebbaren Fehlern können einen Ergebnistyp zurückgeben, der entweder eine Erfolgsvariante oder eine Fehlervariante ist. Der Compiler erfordert, dass Aufrufer nach der Fehlervariante einer von einem Funktionsaufruf zurückgegebenen Result suchen und diese behandeln. Dies verringert das Risiko von Fehlern, die aus nicht behandelten Fehlern resultieren.
  • Initialisierung – Rust erfordert, dass jede Variable vor der Verwendung mit einem zulässigen Mitglied ihres Typs initialisiert wird, um eine unbeabsichtigte Initialisierung auf einen unsicheren Wert zu verhindern.
  • Sicherere Ganzzahlverarbeitung – Alle Ganzzahlkonvertierungen sind explizite Umwandlungen. Entwickler können während eines Funktionsaufrufs nicht versehentlich eine Umwandlung durchführen, wenn sie eine Variable zuweisen oder versuchen, mit anderen Typen zu rechnen. Die Überlaufprüfung ist in Android für Rust standardmäßig aktiviert, was explizite Überlaufvorgänge erfordert.

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