개요
Rust는 성능과 안전, 특히 메모리 안전에 중점을 둔 최신 시스템 프로그래밍 언어입니다. Rust는 중요한 시스템 구성요소를 개발하는 데 있어 C 또는 C++의 더 안전한 대안으로 Android 생태계에서 점점 더 중요해지고 있으며, 보안과 안정성이 향상되었습니다.
이 페이지에서는 Android 오픈소스 프로젝트 (AOSP) 프로젝트 내에서 Rust 개발을 지원하도록 플랫폼용 Android 스튜디오 (ASfP)를 설정하는 방법을 안내합니다.
기본 요건
- ASfP 설치됨: ASfP가 설치되어 실행 중인지 확인합니다.
- 플랫폼 체크아웃: 머신에 작동하는 AOSP 플랫폼 체크아웃이 필요합니다.
Rust 지원 사용 설정
ASfP 프로젝트에서 Rust 지원을 작동시키는 단계별 프로세스는 다음과 같습니다.
Rust 사용 설정
- 설정 마법사에서 새 프로젝트를 만들 때 Rust 체크박스를 선택합니다.
새 프로젝트 설정 마법사의 Rust 체크박스 - 기존 프로젝트의 경우
.asfp-project구성 파일을 열고other_languages에rust을 추가합니다.
other_languages: - cpp - rust ``` <figure> <img src="/studio/platform/images/1-modify_asfp_project_languages.png" alt="Modifying the .asfp-project file to add rust to other_languages" class="screenshot"> <figcaption>Adding Rust support in the <code>.asfp-project</code> file.</figcaption> </figure>
프로젝트 동기화
IDE가 Rust 크레이트를 생성하고 색인을 생성하도록 프로젝트 동기화를 트리거합니다. ASfP > Sync > Sync Project를 선택합니다.
구성 확인
이 단계를 완료한 후 다음 결과를 확인합니다.
rust-project.json가 소스.iml파일 아래의 프로젝트 뷰에 표시됩니다. 이 파일은 분석 중에 Soong에 의해 생성되고 저장소 루트에 심볼릭 링크됩니다. 이는 언어 서버 프로토콜 (LSP)이 언어 서비스를 제공하는 데 필요합니다. 이 파일을 직접 수정하지 말고 대신 동기화하여 Soong이 처리하도록 합니다..asfp-project구성의other_languages아래에rust가 있는지 확인합니다.
rust-project.json가 생성되었는지 확인합니다.IDE에서 다음과 같은 Rust 관련 기능을 사용할 수 있습니다.
주요 Rust IDE 기능
- 내장 LLDB 디버깅 및 변수 시각화 도구: 실행 > Android 프로세스에 연결에서 실행 중인 Rust 기기 서비스를 디버그합니다.
Android.bp여백 아이콘에서 ASfP의 내장 LLDB 디버거 (lldb-dap)를 사용하여rust_test또는rust_test_host타겟을 직접 실행할 수도 있습니다.String,Vec,HashMap,Option의 자동 pretty-printer가 포함되어 있습니다. 자세한 내용은 Rust 코드 디버그를 참고하세요. 코드 완성: 다른 모듈의 항목을 비롯한 Rust 코드에 대한 지능형 제안을 받습니다.
다른 Rust 모듈의 항목을 제안하는 코드 완성 탐색: 정의로 이동하고 프로젝트 전체에서 Rust 기호의 사용을 찾습니다.
Rust 기호의 정의로 이동합니다.
Rust 심볼의 모든 사용 사례 찾기 도움말: 기호 위로 포인터를 가져가면 유형 정보와 문서가 표시됩니다.
다른 모듈의 Rust 심볼에 관한 유형 정보를 보여주는 도움말 인레이 힌트: 편집기에서 직접 유형 정보와 기타 컨텍스트 힌트를 볼 수 있습니다.
코드 내에 유형 정보를 표시하는 인레이 힌트 구조 뷰: 구조 도구 창 (보기 > 도구 창 > 구조)을 사용하여 Rust 파일의 구조를 탐색합니다.
Rust 파일의 개요를 보여주는 구조 도구 창 리팩터링: 안전하게 심볼 이름을 바꾸고 모든 사용을 업데이트합니다.
Rust 심볼의 이름을 바꾸고 모든 참조를 업데이트합니다. 실시간 분석: Rust 코드의 오류 및 경고에 대한 즉각적인 피드백을 받습니다.
Rust 코드에서 실시간 오류 및 경고를 표시하는 IDE