안드로이드 러스트 소개

Android 플랫폼은 C/C++와 동등한 성능으로 메모리 안전 보장을 제공하는 최신 시스템 프로그래밍 언어인 Rust에서 기본 OS 구성 요소 개발을 지원합니다. Rust는 객체 수명과 소유권을 강제하는 컴파일 시간 검사와 유효한 메모리 액세스를 보장하는 런타임 검사를 조합하여 사용하므로 가비지 수집기가 필요하지 않습니다.

Rust는 개발자가 코드에 대해 보다 생산적이고 자신감을 가질 수 있도록 다양한 최신 언어 기능을 제공합니다.

  • 안전한 동시 프로그래밍 - 이를 통해 사용자가 효율적이고 스레드로부터 안전한 코드를 쉽게 작성할 수 있어 Rust의 Fearless Concurrency 슬로건이 탄생했습니다.
  • 표현형 유형 시스템 - Rust는 표현력이 높은 유형(예: Newtype 래퍼 및 콘텐츠가 있는 열거형 변형)을 허용하여 논리적 프로그래밍 버그를 방지하는 데 도움이 됩니다.
  • 더 강력한 컴파일 시간 검사 - 컴파일 시간에 더 많은 버그가 포착되어 코드가 성공적으로 컴파일되면 의도한 대로 작동한다는 개발자의 확신이 높아집니다.
  • 내장 테스팅 프레임워크 - Rust는 테스트 구현과 함께 유닛 테스트를 배치할 수 있는 내장 테스팅 프레임워크를 제공하여 유닛 테스팅을 포함하기 쉽게 만듭니다.
  • 오류 처리 적용 - 복구 가능한 오류가 있는 함수는 Result 유형 을 반환할 수 있으며 이는 성공 변형 또는 오류 변형이 됩니다. 컴파일러는 호출자가 함수 호출에서 반환된 Result 열거형의 오류 변형을 확인하고 처리하도록 요구합니다. 이렇게 하면 처리되지 않은 오류로 인해 버그가 발생할 가능성이 줄어듭니다.
  • 초기화 - Rust는 사용하기 전에 모든 변수를 해당 유형의 합법적인 멤버로 초기화하도록 요구하여 의도하지 않은 안전하지 않은 값으로 초기화하는 것을 방지합니다.
  • 더 안전한 정수 처리 - 모든 정수 유형 변환은 명시적 캐스트입니다. 개발자는 변수에 할당하거나 다른 유형으로 산술을 수행하려고 할 때 함수 호출 중에 실수로 캐스트할 수 없습니다. 오버플로 검사는 기본적으로 Android for Rust에서 켜져 있으며, 오버플로 작업이 명시적이어야 합니다.

자세한 내용은 Android Rust 지원에 대한 블로그 게시물 시리즈를 참조하세요.