La plate-forme Android prend en charge le développement de composants d'OS natifs en Rust, un langage de programmation système moderne qui garantit la sécurité de la mémoire avec des performances équivalentes à celles de C/C++. Rust utilise une combinaison de vérifications au moment de la compilation qui appliquent la durée de vie et la propriété des objets, et de vérifications au moment de l'exécution qui garantissent des accès à la mémoire valides, ce qui élimine le besoin d'un collecteur de déchets.
Rust fournit une gamme de fonctionnalités de langage modernes qui permettent aux développeurs d’être plus productifs et confiants dans leur code:
- Programmation simultanée sécurisée : facilité avec laquelle les utilisateurs peuvent l'écriture de code efficace et sécurisé a donné naissance à l'expérience Simultanéité intrépide slogan.
- Système de types expressifs : Rust permet d'éviter les bugs de programmation logique en ce qui permet d'utiliser des types très expressifs (comme les wrappers Newtype et les énumérations (variantes avec des contenus).
- Vérifications plus poussées au moment de la compilation : le nombre de bugs détectés au moment de la compilation augmente. que lorsque le code est correctement compilé, cela fonctionne comme prévu.
- Framework de test intégré : Rust fournit un framework de test intégré. où des tests unitaires peuvent être ajoutés à l'implémentation qu'ils testent, ce qui des tests unitaires plus facile à inclure.
- Application du traitement des erreurs : les fonctions avec des échecs récupérables peuvent renvoyer un type de résultat, qui sera une variante de réussite ou d'erreur. Le compilateur exige que les appelants vérifient et gèrent la variante d'erreur d'une énumération
Result
renvoyée à partir d'un appel de fonction. Cela réduit le risque de bugs résultant de défaillances non gérées. - Initialisation : Rust exige que chaque variable soit initialisée sur un code de son type avant utilisation, empêchant ainsi une initialisation involontaire par une valeur non sécurisée.
- Gestion des entiers plus sécurisée : toutes les conversions de type entier sont des conversions explicites. Les développeurs ne peuvent pas effectuer de cast accidentel lors d'un appel de fonction lors de l'attribution à une variable ou lors d'une tentative d'opération arithmétique avec d'autres types. Dépassement la vérification est activée par défaut dans Android pour Rust, ce qui nécessite un débordement sont explicites.
Pour en savoir plus, consultez la série d'articles de blog sur la prise en charge d'Android Rust:
- Rust sur la plate-forme Android
Explique pourquoi l'équipe Android a présenté Rust comme nouveau le langage de la plate-forme. - Intégration de Rust au projet Android Open Source
Explique comment la prise en charge de Rust a été introduite dans le système de compilation et pourquoi certaines décisions de conception ont été prises. - Interopérabilité Rust/C++ sur la plate-forme Android
Discut de l'approche de l'interopérabilité Rust/C++ dans Android.