Android Studio for Platform (ASfP) là môi trường phát triển tích hợp (IDE) được đề xuất để phát triển nền tảng Xe được xác định bằng phần mềm (SDV) trên Android Automotive OS (AAOS). ASfP hỗ trợ tất cả ngôn ngữ mà nền tảng SDV của AAOS sử dụng, bao gồm cả Rust cho các gói dịch vụ SDV.
Trang này chỉ đề cập đến chế độ thiết lập dành riêng cho SDV. Để biết thêm thông tin về các tính năng và quy trình công việc chung của ASfP, hãy xem bài viết Android Studio for Platform.
ASfP chỉ chạy trên Linux 64 bit có CPU x86-64. Bạn có thể sử dụng công cụ này trên máy trạm Linux cục bộ hoặc trên đám mây. Để biết thêm thông tin về cách thiết lập đám mây, hãy xem phần Phát triển đám mây.
Cài đặt ASfP
ASfP mặc định có kích thước vùng nhớ khối xếp tối đa là 30 GB. Việc lập chỉ mục một quy trình thanh toán trên nền tảng sẽ tốn rất nhiều bộ nhớ, đặc biệt là khi bạn cũng chạy các thiết bị Cuttlefish nhiều máy ảo trên cùng một máy. Giữ cho dự án của bạn nằm trong phạm vi các thư mục mà bạn làm việc, và điều chỉnh kích thước vùng nhớ khối xếp tối đa trong phần cài đặt bộ nhớ ASfP nếu cần.
ASfP hỗ trợ cập nhật tự động trong IDE. Để biết thêm thông tin, hãy xem bài viết Cập nhật Android Studio cho nền tảng. Để biết thêm thông tin về cách tải xuống và cài đặt ASfP cũng như kiểm tra các yêu cầu về hệ thống, hãy xem bài viết Cài đặt Android Studio cho Nền tảng.
Tạo dự án SDV
Khởi chạy, đồng bộ hoá và tạo bản dựng cho nhánh AAOS SDV trước khi bắt đầu. Để biết thêm thông tin về cách thiết lập quy trình thanh toán, hãy xem phần Vị trí mã và Tải xuống, tạo và chạy.
Để tạo một dự án SDV, hãy làm theo các bước sau:
- Tạo một dự án mới trong ASfP rồi chọn thư mục gốc của quy trình kiểm tra AAOS SDV làm quy trình kiểm tra kho lưu trữ. Để biết thêm thông tin về các bước của trình hướng dẫn, hãy xem phần Tạo hoặc nhập dự án.
- Sau khi ASfP tạo dự án, hãy chọn ASfP > Project > Open Config (ASfP > Dự án > Mở cấu hình) để mở tệp
.asfp-project. Thay thế nội dung của tệp bằng ví dụ sau, rồi đặt
repothành đường dẫn của trang thanh toán:repo: /path/to/sdv_source lunch: sdv_core_cf-aosp_current-userdebug directories: include: - system/software_defined_vehicle/samples other_languages: - rustCập nhật
lunchvàdirectoriescho khu vực bạn làm việc. Để duy trì tốc độ lập chỉ mục và đồng bộ hoá nhanh, chỉ thêm các thư mục mà bạn chủ động sửa đổi. Bảng sau đây liệt kê các mục tiêu và thư mục phổ biến của SDV:Trọng tâm phát triển SDV lunchmục tiêudirectoriesđược đề xuấtGói dịch vụ SDV sdv_core_cf-aosp_current-userdebugDanh mục dịch vụ và danh bạ gói dịch vụ, chẳng hạn như system/software_defined_vehicle/samplesTích hợp nền tảng SDV Core sdv_core_cf-aosp_current-userdebugsystem/software_defined_vehicle/middleware,system/software_defined_vehicle/automotive_services,device/google/sdvCổng SDV trên SDV IVI sdv_ivi_cf-aosp_current-userdebugsystem/software_defined_vehicle/sdv_gateway,system/software_defined_vehicle/samples/sdv_gateway,packages/services/CarHiển thị thông tin an toàn trên SDV Media sdv_media_har_cf-aosp_current-userdebugpackages/services/display_safety,device/google/sdv_display_safetyAn toàn khi hiển thị trên SDV IVI sdv_ivi_cf_ds-aosp_current-userdebugpackages/apps/Car/DriverUI,packages/services/display_safety/serviceNếu quy trình thanh toán của bạn sử dụng tệp kê khai
trunk_staging, hãy thay thế-aosp_current-userdebugbằng-trunk_staging-userdebug. Để duyệt xem cả mã nền tảng gốc, hãy thêmcppvàoother_languages. Để biết thêm thông tin về tất cả các lựa chọn cấu hình, hãy xem phần Thông số cấu hình.Để áp dụng các thay đổi, hãy chọn ASfP > Sync > Sync Project (ASfP > Đồng bộ hoá > Đồng bộ hoá dự án). Để biết thêm thông tin về các chế độ đồng bộ hoá (Đồng bộ hoá đầy đủ, Đồng bộ hoá một phần và Đồng bộ hoá không cần bản dựng) cũng như cách xuất hoặc nhập các mẫu
.asfp-projectcó thể chia sẻ cho nhóm của bạn, hãy xem phần Chế độ đồng bộ hoá và cửa sổ công cụ Soong và Mẫu dự án có thể chia sẻ (xuất và nhập).
Triển khai gói dịch vụ SDV
ASfP có một trình bổ trợ SDV để triển khai một APEX chứa các gói dịch vụ của bạn trực tiếp đến một thiết bị SDV đang chạy. Trình bổ trợ này bị tắt theo mặc định. Để sử dụng, hãy bật trình bổ trợ SDV trong phần Cài đặt > Trình bổ trợ. Để biết thêm thông tin về việc đóng gói APEX, hãy xem phần Tạo và triển khai gói dịch vụ.
Cách triển khai phụ thuộc vào việc APEX đã có trên thiết bị hay chưa:
- Nếu đã cài đặt APEX, bạn có thể triển khai trực tiếp các thay đổi của mình từ ASfP.
- Nếu APEX là mới, trước tiên, bạn phải tạo lại và chạy lại hình ảnh hệ thống hoặc sử dụng hình ảnh hệ thống có chứa khoá dùng để ký APEX. Sau đó, bạn có thể triển khai từ ASfP.
Để triển khai APEX gói dịch vụ, hãy làm theo các bước sau:
- Khởi động thiết bị SDV bằng trình bổ trợ Cuttlefish. Để biết thêm thông tin, hãy xem bài viết Chạy thiết bị SDV trên Cuttlefish.
- Mở tệp
apex/Android.bpcủa gói dịch vụ rồi nhấp vào biểu tượng Run (Chạy) trong lề bên cạnh khốiapex {. - Trong trình đơn mở ra, hãy chọn Run "Deploy APEX_NAME" (Chạy "Triển khai"). Bạn cũng có thể tạo APEX mà không cần triển khai hoặc thay đổi cấu hình chạy trong cùng một trình đơn.
Chạy thiết bị SDV trên Cuttlefish
ASfP có một trình bổ trợ Cuttlefish giúp tạo và chạy các thiết bị Cuttlefish cục bộ. Trình bổ trợ này cần có trình điều phối máy chủ Cuttlefish. Nếu không có trình điều phối máy chủ, ASfP sẽ hiển thị hướng dẫn thiết lập.
Để tạo một thiết bị SDV, hãy làm theo các bước sau:
- Chọn Tools > Device Manager (Công cụ > Trình quản lý thiết bị), nhấp vào + rồi chọn Create Cuttlefish Device (Tạo thiết bị Cuttlefish).
- Để tạo một chế độ thiết lập nhiều máy ảo, hãy chọn From canonical configuration (Từ cấu hình chính tắc) rồi tạo hoặc nhập một cấu hình cho chế độ thiết lập của bạn, chẳng hạn như SDV Core với SDV IVI hoặc SDV Media với SDV IVI cho Display Safety. Để tạo một máy ảo, hãy chọn From local Android source tree checkout (Từ quy trình kiểm tra cây nguồn Android cục bộ).
Để xem tất cả màn hình máy ảo trên một màn hình và truy cập vào các tuỳ chọn thiết bị khác, hãy sử dụng cửa sổ công cụ Cuttlefish. Để mở, hãy chọn biểu tượng ... trong bảng điều khiển bên rồi chọn Cuttlefish hoặc tìm Cuttlefish trong phần Help > Find Action (Trợ giúp > Tìm hành động). Bạn cũng có thể xem từng màn hình trong Running Devices (Thiết bị đang chạy). Vì SDV Core chạy mà không có màn hình, hãy sử dụng Logcat và Terminal để kiểm tra.
Gỡ lỗi và kiểm thử
ASfP có một trình gỡ lỗi LLDB tích hợp sẵn cho mã C++ và Rust. Để biết thêm thông tin về cách gỡ lỗi và kiểm thử trong ASfP, hãy xem các bài viết Gỡ lỗi mã nền tảng, Gỡ lỗi mã Rust, Kiểm thử mã nền tảng bằng atest và Gỡ lỗi mục tiêu cc_test và rust_test trong LLDB.
Khi bạn đính kèm trình gỡ lỗi vào một gói dịch vụ, hãy đính kèm vào quy trình lưu trữ gói dịch vụ đó. Tên quy trình sử dụng định dạng <bundle_name>:<instance_name>, chẳng hạn như OrchestratorSampleRustServiceBundle:sample-main-no-conditions. Lệnh sau đây liệt kê các quy trình phù hợp và mã định danh tiến trình của chúng:
adb shell ps -A | grep <bundle_name>
Để biết thêm thông tin về quy trình gỡ lỗi SDV, chẳng hạn như kết nối với nhiều thiết bị và xem nhật ký, hãy xem phần Gỡ lỗi SDV.
Chỉnh sửa tệp VSIDL
ASfP bao gồm Máy chủ ngôn ngữ VSIDL (vsidl-lsp). Để biết thêm thông tin về cách thiết lập danh mục cho máy chủ ngôn ngữ, hãy xem bài viết Tự động cập nhật danh mục và tích hợp LSP. Khi danh mục của bạn có tệp CATALOG_UPDATE, trình chỉnh sửa sẽ cung cấp các tính năng sau cho tệp .vsidl:
- Xác thực trực tiếp: Trình chỉnh sửa làm nổi bật các từ khoá VSIDL và cho thấy lỗi cú pháp, các loại chưa được giải quyết và lỗi xác thực VSIDLC trong cửa sổ Problems (Vấn đề). Để biết thêm thông tin về các quy tắc xác thực và mã lỗi, hãy xem quy cách ngôn ngữ VSIDL.
- Tự động hoàn thành và tài liệu: Bạn có thể nhấn tổ hợp phím Ctrl+Space để xem các đề xuất về từ khoá, thông báo, dịch vụ, chủ đề và kênh, đồng thời nhấn tổ hợp phím Ctrl+Q để xem nhận xét về tài liệu.
- Điều hướng và định dạng: Bạn có thể nhấn Ctrl+B để chuyển đến định nghĩa
.vsidlhoặc.proto, Alt+Shift+F7 để tìm tệp đối chiếu, Ctrl+F12 để xem cấu trúc tệp và Ctrl+Alt+L để định dạng tệp.
Thêm bối cảnh SDV cho trợ lý AI
ASfP tích hợp AI trong Android Studio và một tác nhân tích hợp sẵn có các công cụ và bản dựng Soong
atest. Để biết thêm thông tin về các tính năng AI của ASfP, hãy xem bài viết
Làm quen với Android Studio for Platform. Để giúp trợ lý AI tuân theo các quy ước của SDV, hãy thêm tệp AGENTS.md vào thư mục gốc của danh mục VSIDL.
Để biết thêm thông tin về tệp tác nhân, hãy xem bài viết Tuỳ chỉnh Gemini bằng tệp AGENTS.md.
Ví dụ sau đây là điểm xuất phát mà bạn có thể điều chỉnh cho phù hợp với danh mục của mình:
# AAOS SDV service catalog rules
- Implement SDV service bundles in Rust under `services/<BundleName>/src/`.
- Keep `.proto` files limited to Protobuf `message`, `enum`, and `service` definitions. Define service bundles, APEX packaging, VM placement, and SOME/IP mappings in `.vsidl` files.
- Regenerate middleware with `vsidlc` after you change `.vsidl` or `.proto` files, and leave generated files unmodified.
- Use `PascalCase` for service bundle names and lowercase `kebab-case` for topic and channel names.
- Run `vsidlc --explain <CODE>` to look up a VSIDLC error code.