Введение в Android Rust

Платформа Android поддерживает разработку собственных компонентов ОС на Rust, современном языке системного программирования, который гарантирует безопасность памяти и производительность, эквивалентную C/C++. Rust использует комбинацию проверок во время компиляции, контролирующих время жизни и владение объектом, и проверок во время выполнения, обеспечивающих корректный доступ к памяти, тем самым устраняя необходимость в сборщике мусора.

Rust предоставляет ряд современных языковых возможностей, которые позволяют разработчикам работать более продуктивно и уверенно при написании кода:

  • Безопасное параллельное программирование . Легкость, с которой пользователи могут писать эффективный, потокобезопасный код, породила слоган Rust « Бесстрашное параллельное программирование» .
  • Выразительная система типов . Rust помогает предотвратить ошибки логического программирования, допуская использование весьма выразительных типов (таких как оболочки Newtype и варианты перечисления с содержимым).
  • Более строгие проверки во время компиляции . Большее количество ошибок, обнаруженных во время компиляции, повышает уверенность разработчика в том, что при успешной компиляции кода он работает так, как задумано.
  • Встроенная среда тестирования . Rust предоставляет встроенную среду тестирования, в которой модульные тесты можно размещать рядом с реализацией, которую они тестируют, что упрощает включение модульного тестирования.
  • Принудительная обработка ошибок — функции с восстанавливаемыми сбоями могут возвращать тип Result , который может быть как успешным, так и ошибочным. Компилятор требует от вызывающих функций проверять и обрабатывать ошибочный вариант перечисления Result , возвращаемого функцией. Это снижает вероятность возникновения ошибок, возникающих из-за необработанных сбоев.
  • Инициализация . Rust требует, чтобы каждая переменная была инициализирована допустимым членом ее типа перед использованием, что предотвращает непреднамеренную инициализацию небезопасным значением.
  • Более безопасная обработка целых чисел — все преобразования целочисленных типов выполняются явным приведением типов. Разработчики не смогут случайно выполнить приведение типов во время вызова функции при присваивании переменной или при попытке выполнения арифметических действий с другими типами. Проверка переполнения включена по умолчанию в Android для Rust, что требует явного выполнения операций переполнения.

Для получения дополнительной информации ознакомьтесь с серией публикаций в блоге о поддержке Android Rust: