Android Studio for Platform (ASfP) to zalecane zintegrowane środowisko programistyczne (IDE) do tworzenia programowalnych platform SDV (Software-Defined Vehicle) na system operacyjny Android Automotive (AAOS). ASfP obsługuje wszystkie języki używane przez platformę AAOS SDV, w tym Rust w przypadku pakietów usług SDV.
Ta strona dotyczy tylko konfiguracji SDV. Więcej informacji o ogólnych funkcjach i przepływach pracy ASfP znajdziesz w artykule Android Studio for Platform.
ASfP działa tylko na 64-bitowym systemie Linux z procesorami x86-64. Możesz go używać na lokalnej stacji roboczej z systemem Linux lub w chmurze. Więcej informacji o konfiguracji w chmurze znajdziesz w artykule o programowaniu w chmurze.
Instalowanie ASfP
Domyślny maksymalny rozmiar sterty w ASfP to 30 GB. Indeksowanie platformy checkout wymaga dużej ilości pamięci, zwłaszcza gdy na tym samym komputerze uruchamiasz też urządzenia Cuttlefish z wieloma maszynami wirtualnymi. Ogranicz zakres projektu do katalogów, nad którymi pracujesz, i w razie potrzeby dostosuj maksymalny rozmiar sterty w ustawieniach pamięci ASfP.
ASfP obsługuje automatyczne aktualizacje w IDE. Więcej informacji znajdziesz w artykule Aktualizowanie Androida Studio for Platform. Więcej informacji o pobieraniu i instalowaniu ASfP oraz sprawdzaniu wymagań systemowych znajdziesz w artykule Instalowanie Android Studio for Platform.
Tworzenie projektu SDV
Zanim zaczniesz, zainicjuj, zsynchronizuj i skompiluj proces płatności SDV w AAOS. Więcej informacji o konfigurowaniu procesu płatności znajdziesz w sekcjach Lokalizacja kodu oraz Pobieranie, kompilowanie i uruchamianie.
Aby utworzyć projekt SDV, wykonaj te czynności:
- Utwórz nowy projekt w ASfP i wybierz katalog główny kasy AAOS SDV jako kasę repozytorium. Więcej informacji o krokach kreatora znajdziesz w artykule Tworzenie i importowanie projektu.
- Gdy ASfP utworzy projekt, wybierz ASfP > Project > Open Config (ASfP > Projekt > Otwórz konfigurację), aby otworzyć plik
.asfp-project. Zastąp zawartość pliku tym przykładem, a następnie ustaw
repona ścieżkę do kasy:repo: /path/to/sdv_source lunch: sdv_core_cf-aosp_current-userdebug directories: include: - system/software_defined_vehicle/samples other_languages: - rustZaktualizuj
lunchidirectoriesdla obszaru, nad którym pracujesz. Aby indeksowanie i synchronizacja przebiegały szybko, uwzględnij tylko te katalogi, które aktywnie modyfikujesz. W tabeli poniżej znajdziesz listę typowych elementów docelowych i katalogów SDV:SDV development focus lunchcelZalecane: directoriesPakiety usług SDV sdv_core_cf-aosp_current-userdebugkatalog usług i pakietów, np. system/software_defined_vehicle/samples;Integracja z platformą SDV Core sdv_core_cf-aosp_current-userdebugsystem/software_defined_vehicle/middleware,system/software_defined_vehicle/automotive_services,device/google/sdvBrama SDV w samochodowym systemie multimedialnym SDV sdv_ivi_cf-aosp_current-userdebugsystem/software_defined_vehicle/sdv_gateway,system/software_defined_vehicle/samples/sdv_gateway,packages/services/CarWyświetlanie informacji o bezpieczeństwie na ekranie SDV sdv_media_har_cf-aosp_current-userdebugpackages/services/display_safety,device/google/sdv_display_safetyBezpieczeństwo wyświetlania w samochodowym systemie multimedialnym SDV sdv_ivi_cf_ds-aosp_current-userdebugpackages/apps/Car/DriverUI,packages/services/display_safety/serviceJeśli proces płatności korzysta z pliku manifestu
trunk_staging, zastąp-aosp_current-userdebugciągiem-trunk_staging-userdebug. Aby przeglądać też kod platformy natywnej, dodajcppdoother_languages. Więcej informacji o wszystkich opcjach konfiguracji znajdziesz w artykule Parametry konfiguracji.Aby zastosować zmiany, wybierz ASfP > Sync > Sync Project (ASfP > Synchronizuj > Synchronizuj projekt). Więcej informacji o trybach synchronizacji (pełna, częściowa i bez kompilacji) oraz eksportowaniu i importowaniu szablonów
.asfp-project, które można udostępniać zespołowi, znajdziesz w artykułach Tryby synchronizacji i okno narzędzia Soong oraz Szablony projektów, które można udostępniać (eksportowanie i importowanie).
Wdrażanie pakietów usług SDV
ASfP zawiera wtyczkę SDV, która wdraża plik APEX zawierający pakiety usług bezpośrednio na działającym urządzeniu SDV. Wtyczka jest domyślnie wyłączona. Aby go używać, włącz wtyczkę SDV w sekcji Ustawienia > Wtyczki. Więcej informacji o pakowaniu APEX znajdziesz w artykule Tworzenie i wdrażanie pakietów usług.
Sposób wdrażania zależy od tego, czy pakiet APEX jest już na urządzeniu:
- Jeśli APEX jest już zainstalowany, możesz wdrożyć zmiany bezpośrednio z ASfP.
- Jeśli APEX jest nowy, musisz najpierw ponownie utworzyć i uruchomić obraz systemu lub użyć obrazu systemu, który zawiera klucz użyty do podpisania APEX. Po tym czasie możesz wdrożyć usługę z ASfP.
Aby wdrożyć pakiet APEX pakietu usług, wykonaj te czynności:
- Uruchom urządzenie SDV z wtyczką Cuttlefish. Więcej informacji znajdziesz w artykule Uruchamianie urządzeń SDV na Cuttlefish.
- Otwórz plik
apex/Android.bppakietu usług i kliknij ikonę Uruchom w rynnie obok blokuapex {. - W menu, które się otworzy, wybierz Run 'Deploy APEX_NAME' (Uruchom „Wdróż ”). W tym samym menu możesz też skompilować APEX bez wdrażania lub zmienić konfigurację uruchamiania.
Uruchamianie urządzeń SDV na Cuttlefish
ASfP zawiera wtyczkę Cuttlefish, która tworzy i uruchamia lokalne urządzenia Cuttlefish. Wtyczka wymaga koordynatora hosta Cuttlefish. Jeśli koordynator hosta jest niedostępny, ASfP wyświetla instrukcje jego konfiguracji.
Aby utworzyć urządzenie SDV, wykonaj te czynności:
- Wybierz Narzędzia > Menedżer urządzeń, kliknij + i wybierz Utwórz urządzenie Cuttlefish.
- Aby utworzyć konfigurację z wieloma maszynami wirtualnymi, wybierz Z konfiguracji kanonicznej i utwórz lub zaimportuj konfigurację, np. SDV Core z SDV IVI lub SDV Media z SDV IVI dla Display Safety. Aby utworzyć pojedynczą maszynę wirtualną, wybierz Z lokalnego wyewidencjonowania drzewa źródeł Androida.
Aby wyświetlić wszystkie wyświetlacze maszyn wirtualnych na jednym ekranie i uzyskać dostęp do dodatkowych opcji urządzenia, użyj okna narzędzia Cuttlefish. Aby go otworzyć, kliknij ikonę … w panelu bocznym i wybierz Cuttlefish lub wyszukaj Cuttlefish w sekcji Pomoc > Znajdź działanie. Możesz też wyświetlić poszczególne wyświetlacze w sekcji Działające urządzenia. SDV Core działa bez wyświetlacza, więc do jego sprawdzania używaj Logcata i terminala.
Debugowanie i testowanie
ASfP zawiera wbudowany debuger LLDB do kodu w językach C++ i Rust. Więcej informacji o debugowaniu i testowaniu w ASfP znajdziesz w artykułach Debugowanie kodu platformy, Debugowanie kodu Rust, Testowanie kodu platformy za pomocą atest i Debugowanie elementów docelowych cc_test i rust_test w LLDB.
Gdy dołączasz debuger do pakietu usług, dołącz go do procesu, który go hostuje. Nazwy procesów mają format <bundle_name>:<instance_name>, np. OrchestratorSampleRustServiceBundle:sample-main-no-conditions. To polecenie wyświetla listę pasujących procesów i ich identyfikatorów procesu:
adb shell ps -A | grep <bundle_name>
Więcej informacji o przepływach pracy debugowania SDV, takich jak łączenie się z wieloma urządzeniami i wyświetlanie dzienników, znajdziesz w artykule Debugowanie SDV.
Edytowanie plików VSIDL
ASfP zawiera serwer języka VSIDL (vsidl-lsp). Więcej informacji o konfigurowaniu katalogu na potrzeby serwera języka znajdziesz w artykule o automatycznych aktualizacjach katalogu i integracji z LSP. Gdy katalog zawiera plik CATALOG_UPDATE, edytor udostępnia te funkcje dotyczące plików .vsidl:
- Weryfikacja na żywo: edytor wyróżnia słowa kluczowe VSIDL i wyświetla błędy składni, nierozwiązane typy i błędy weryfikacji VSIDLC w oknie Problemy. Więcej informacji o regułach weryfikacji i kodach błędów znajdziesz w specyfikacji języka VSIDL.
- Autouzupełnianie i dokumentacja: możesz nacisnąć Ctrl + Spacja, aby wyświetlić sugestie dotyczące słów kluczowych, komunikatów, usług, tematów i kanałów, lub Ctrl + Q, aby wyświetlić komentarze do dokumentacji.
- Nawigacja i formatowanie: możesz nacisnąć Ctrl + B, aby przejść do definicji
.vsidllub.proto, Alt + Shift + F7, aby znaleźć odwołania, Ctrl + F12, aby wyświetlić strukturę pliku, oraz Ctrl + Alt + L, aby sformatować plik.
Dodawanie kontekstu SDV dla asystentów AI
ASfP obejmuje AI w Android Studio i wbudowanego agenta z narzędziami do kompilacji Soong i atest. Więcej informacji o funkcjach opartych na AI w ASfP znajdziesz w artykule Poznaj Android Studio for Platform. Aby pomóc asystentowi AI w przestrzeganiu konwencji SDV, dodaj plik AGENTS.md do katalogu głównego katalogu VSIDL.
Więcej informacji o plikach agentów znajdziesz w artykule Dostosowywanie Gemini za pomocą plików AGENTS.md.
Poniższy przykład to punkt wyjścia, który możesz dostosować do swojego katalogu:
# 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.