SDV 개발용 IDE 설정

플랫폼용 Android 스튜디오 (ASfP)는 Android Automotive 운영체제 (AAOS) 소프트웨어 정의 차량 (SDV) 프로젝트를 비롯한 Android 플랫폼 개발에 권장되는 통합 개발 환경 (IDE)입니다. ASfP는 다음과 같은 코드 편집, 빌드, 디버그, 테스트를 위한 다양한 도구를 제공합니다.

  • AI 기반 지원 (Gemini)
  • Rust, C 또는 C++, Java 언어 지원
  • AAOS SDV 개발에 유용한 통합 (예: Cuttlefish 에뮬레이터 지원 및 VSIDL 언어 지원)

플랫폼용 Android 스튜디오 설치

ASfP를 설치하려면 다음 단계를 따르세요.

  1. 플랫폼용 Android 스튜디오를 다운로드합니다.

  2. 필요에 가장 적합한 버전을 선택합니다.

    • 공개 버전 채널: 최신 프로덕션 버전으로 대부분의 사용자에게 권장됩니다.
    • 카나리아: 최신 기능이 포함된 사전 액세스 빌드이지만 안정성이 떨어질 수 있습니다.
  3. 다운로드 페이지에 제공된 설치 안내를 따릅니다.

AAOS SDV 프로젝트 설정

AAOS SDV 프로젝트를 설정하려면 다음 단계를 따르세요.

  1. AAOS SDV 소스 코드 저장소에 액세스할 수 있고 로컬 체크아웃을 초기화하고 동기화했는지 확인합니다. 소스 액세스 및 저장소 초기화에 관한 자세한 내용은 다운로드, 빌드, 실행을 참고하세요.

  2. 플랫폼용 Android 스튜디오를 실행합니다.

  3. 처음 사용하는 경우 설정 마법사에 따라 개발 환경을 맞춤설정합니다.

  4. 새 프로젝트를 만듭니다.

    • 열려 있는 프로젝트가 없으면 시작 화면에서 새로 만들기 를 클릭합니다.
    • 이미 열려 있는 프로젝트가 있으면 열기 를 클릭하거나 메뉴에서 ASfP > 프로젝트 > ASfP 프로젝트 가져오기 를 선택합니다.
  5. 마법사에서 프로젝트 구성 세부정보를 입력합니다.

    • 저장소 체크아웃: 로컬 AAOS SDV 소스 코드 체크아웃의 루트에 대한 절대 경로를 지정합니다 (예: /path/to/sdv_source).

    • lunch 타겟: Cuttlefish에서 AAOS SDV 개발에 적합한 lunch 타겟을 입력합니다(예: sdv_core_cf-trunk_staging-userdebug). 사용 가능한 타겟에 관한 자세한 내용은 타겟 선택을 참고하세요.

    • 프로젝트 소스: 프로젝트에 포함할 초기 디렉터리 또는 모듈을 나열하거나 폴더 아이콘을 클릭하여 파일 시스템 브라우저를 열고 디렉터리를 선택합니다. 디렉터리 또는 모듈을 너무 많이 선택하면 IDE의 색인 생성 및 검색 성능에 영향을 미치므로 관련 디렉터리 또는 모듈만 포함하세요.

    • 언어 지원: 지원되는 언어로 Rust 및 C++를 선택합니다.

    • 프로젝트 이름: 설명이 포함된 프로젝트 이름을 지정합니다.

    • 설정 완료: 완료 를 클릭합니다. ASfP는 프로젝트 구조와 .asfp-project 구성 파일을 만듭니다.

ASfP는 초기 동기화 프로세스를 자동으로 시작합니다. ASfP는 소스 코드를 분석하고 Soong 빌드 시스템을 사용하여 종속 항목을 확인하며 코드 인텔리전스 기능에 필요한 정보를 빌드합니다. 특히 첫 번째 동기화의 경우 상당한 시간이 걸릴 수 있습니다.

프로젝트 맞춤설정

프로젝트 루트의 .asfp-project 파일을 사용하면 추가 맞춤설정이 가능합니다. 이 파일을 수정하여 다음 작업을 할 수 있습니다.

  • 디렉터리 및 모듈을 추가하거나 삭제합니다.
  • C++ 또는 Rust와 같은 다른 언어에 대한 지원을 사용 설정합니다 (Java 및 Kotlin은 기본값).
  • 빌드 플래그를 구성합니다.

구성 파일을 변경하려면 ASfP > 프로젝트 > 구성 열기 를 선택합니다. 사용 가능한 구성 옵션은 프로젝트 개요를 참고하세요.

디버그 및 테스트

ASfP에서 코드를 디버그하고 테스트하려면 플랫폼 코드 디버그atest로 플랫폼 코드 테스트를 참고하세요.

사용 가능한 통합

ASfP에는 VSIDL의 Cuttlefish 및 Language Server Protocol (LSP) 지원을 비롯하여 AAOS SDV 개발에 유용한 몇 가지 통합이 포함되어 있습니다.

Cuttlefish 플러그인

Cuttlefish 플러그인을 사용하면 사용자가 ASfP에서 직접 로컬 Cuttlefish 기기를 만들고 실행할 수 있습니다.

플러그인 설치

Cuttlefish 플러그인은 ASfP에 사전 설치되어 있으며 설정이 필요하지 않습니다. 플러그인을 사용하려면 기기에 Cuttlefish 도구가 설치되어 있어야 합니다. 필요한 경우 안내에 따라 Cuttlefish 도구를 설치합니다.

Cuttlefish 기기 만들기

새 기기를 만들려면 다음 단계를 따르세요.

  1. 도구 > 기기 관리자 를 선택하거나 기기 관리자가 이미 고정되어 있는 경우 오른쪽 패널에서 실행 중인 기기 아이콘을 클릭하여 기기 관리자 도구 창을 엽니다.

  2. + 아이콘을 클릭하고 Cuttlefish 기기 만들기 를 선택합니다.

  3. 새 Cuttlefish 기기를 구성합니다. 다음 두 가지 방법으로 Cuttlefish 기기를 만들 수 있습니다.

    • 로컬 Android 소스 트리 체크아웃에서:

      • 실행 구성에 해당하는 빌드된 타겟의 경로를 선택합니다 (타겟 선택 참고).
      • 호스트 경로를 선택합니다.
      • 필요한 경우 사용 가능한 기기 구성을 선택하거나 기본 구성의 경우 없음 을 선택합니다.
    • 표준 구성에서 (이 옵션을 사용하여 단일 구성에서 여러 기기를 만듭니다.)

      • 기기 구성의 경로를 선택합니다.
      • 필요한 경우 재정의 플래그를 제공하여 구성 옵션을 재정의합니다.
  4. Cuttlefish 기기가 생성되어 기기 관리자의 실행 중인 기기 목록에 추가될 때까지 기다립니다.

  5. 실행 중인 기기 메뉴에서 Cuttlefish 기기를 선택합니다.

기기 관리자에서 기기 옆에 있는 중지 또는 시작 아이콘을 클릭하여 개별 Cuttlefish 기기를 시작하거나 중지할 수 있습니다.

Cuttlefish 기기 페이지 액세스

Cuttlefish 플러그인에는 화면 미러링 기능에 액세스할 수 있는 Cuttlefish 기기 페이지를 표시하는 도구 창이 있습니다.

Cuttlefish 도구 창을 열려면 왼쪽 패널에서 ... 아이콘을 클릭하고 Cuttlefish 를 선택합니다. 또는 도움말 > 작업 찾기 메뉴 항목에서 Cuttlefish 를 검색할 수 있습니다.

VSIDL의 Language Server Protocol

VSIDL에서 LSP는 ASfP에서 .vsidl 확장자가 있는 VSIDL 파일로 작업할 때 개발 워크플로를 개선하기 위한 다양한 IDE 기능을 제공합니다.

의미론적 구문 강조표시

LSP 서버는 VSIDL 파일에 따라 구문 강조표시를 제공합니다.

  • 기능: 키워드 (service_bundle, publisher), 필드 (package:, message:), 리터럴을 강조표시합니다.

  • 사용해 보는 방법: VSIDL 파일을 엽니다. 파일은 구조적 키워드와 사용자 정의 식별자를 구분하기 위해 색상 코딩됩니다.

실시간 진단 (오류 및 경고)

LSP 서버는 파일을 지속적으로 검증하고 문제를 실시간으로 보고합니다.

  • 기능: 전체 카탈로그 및 종속 항목에서 구문 오류, 잘못된 유형 참조, 기타 오류를 감지합니다.

  • 사용해 보는 방법: 메시지 이름에 오타를 입력합니다 (예: TiiirePressure). 오타 아래에 빨간색 물결선이 표시됩니다. 단어 위로 마우스를 가져가 오류 메시지를 확인하거나 IDE 하단의 문제 도구 창에서 전체 목록을 확인합니다.

탐색 및 인텔리전스 기능을 사용하여 VSIDL 카탈로그의 여러 부분 간의 관계를 탐색할 수 있습니다.

  • 자동 완성: Control+스페이스바를 눌러 키워드, 프로토콜 버퍼 메시지, RPC 서비스, 주제, 채널에 관한 추천을 확인합니다. 키워드 추천에는 완성 메뉴에 직접 목적에 관한 짧고 유용한 설명이 포함되어 있습니다. LSP는 publisher 또는 server와 같은 블록에 스마트 스니펫을 제공하여 워크플로를 가속화합니다.

  • 정의로 이동: Control 을 누른 상태에서 메시지, 서비스, 주제 또는 채널 참조를 클릭하거나 Control+B 를 눌러 다른 VSIDL 또는 프로토콜 버퍼 파일에 있더라도 소스 정의로 바로 이동합니다.

  • 참조 찾기: publisher, subscriber, server 또는 client 키워드에 커서를 놓고 Alt+Shift+F7 을 눌러 모든 발생을 찾습니다.

  • 마우스 오버 정보: 유형 또는 속성으로 커서를 이동하거나 Control+Q 를 누릅니다. 도움말이 표시되어 문서 주석을 보여줍니다 (있는 경우).

구조적 기능

LSP 서버는 대규모 VSIDL 파일의 구조를 관리하고 탐색하는 데 도움이 됩니다.

  • 문서 기호 (개요): 빠른 탐색 도움말을 보려면 Control+F12 를 누르거나 구조 도구 창 (Control+Alt+7)을 열어 파일의 모든 번들과 단위를 트리 뷰로 확인합니다.

  • 범위 접기: Gutter (줄 번호 옆)에서 > 또는 V 아이콘을 클릭하여 service_bundle 또는 매핑 정의와 같은 대규모 논리 블록을 접거나 펼칩니다.

  • 문서 형식 지정: Control+Alt+L 을 눌러 파일을 자동으로 다시 형식 지정하고 일관된 들여쓰기 및 간격을 만듭니다.