Einführung in Android Rust

Die Android-Plattform bietet Unterstützung für die Entwicklung nativer Betriebssystemkomponenten in Rust, einer modernen Systemprogrammiersprache, die Speichersicherheit mit einer Leistung bietet, die mit C/C++ vergleichbar ist. Rust verwendet eine Kombination aus Prüfungen zur Kompilierzeit, die die Lebensdauer und den Besitz von Objekten erzwingen, und Laufzeitprüfungen, die für gültige Speicherzugriffe sorgen. Dadurch ist kein Garbage Collector erforderlich.

Rust bietet eine Reihe moderner Sprachfunktionen, die Entwicklern helfen, produktiver zu sein und mehr Vertrauen in ihren Code zu haben:

  • Sichere parallele Programmierung: Die Einfachheit, mit der Nutzer effizienten, threadsicheren Code schreiben können, hat zum Slogan von Rust Fearless Concurrency geführt.
  • Ausdrucksstarkes Typsystem: Rust hilft, logische Programmierfehler zu vermeiden, indem es sehr ausdrucksstarke Typen wie Newtype-Wrapper und Enum-Varianten mit Inhalt ermöglicht.
  • Stärkere Prüfungen zur Kompilierzeit: Wenn mehr Fehler zur Kompilierzeit erkannt werden, können Entwickler darauf vertrauen, dass der Code wie vorgesehen funktioniert, wenn er erfolgreich kompiliert wird.
  • Integriertes Test-Framework: Rust bietet ein integriertes Test-Framework, in dem Unittests neben der Implementierung platziert werden können, die sie testen. Dadurch lassen sich Unittests leichter einbinden.
  • Fehlerbehandlung: Funktionen mit behebbaren Fehlern können einen Ergebnistyp zurückgeben, der entweder eine Erfolgs- oder eine Fehlervariante ist. Der Compiler erfordert, dass Aufrufer die Fehlervariante eines Result-Enums prüfen und verarbeiten, das von einem Funktionsaufruf zurückgegeben wird. Dadurch wird das Potenzial für Fehler, die durch nicht behandelte Fehler entstehen, verringert.
  • Initialisierung: In Rust muss jede Variable vor der Verwendung mit einem gültigen Element ihres Typs initialisiert werden. So wird eine unbeabsichtigte Initialisierung mit einem unsicheren Wert verhindert.
  • Sicherere Verarbeitung von Ganzzahlen: Alle Konvertierungen vom Typ „Ganzzahl“ sind explizite Umwandlungen. Entwickler können nicht versehentlich während eines Funktionsaufrufs casten, wenn sie einer Variablen einen Wert zuweisen oder versuchen, arithmetische Operationen mit anderen Typen auszuführen. Die Überlaufprüfung ist in Android für Rust standardmäßig aktiviert. Überlaufvorgänge müssen daher explizit angegeben werden.

Weitere Informationen finden Sie in der Reihe von Blogposts zum Android-Support für Rust: