Projekt w Android Studio for Platform (ASfP) zawiera wszystko, co definiuje obszar roboczy w kodzie AOSP – od kodu źródłowego i zasobów po kod testowy i konfiguracje kompilacji Soong.
ASfP, oparty na modelu obszaru roboczego IntelliJ, tworzy duże projekty platformowe i przy uruchomieniu przywraca model projektu z zapisanych w pamięci podręcznej migawek. Zawartość katalogu out/ i wygenerowane pliki gen są wykluczone z zakresów wyszukiwania projektu, dzięki czemu nawigacja po symbolach i plikach pozostaje szybka.
Konfiguracja projektu (.asfp-project)
Konfigurację projektu ASfP kontroluje plik YAML .asfp-project znajdujący się w katalogu głównym projektu. Ten plik określa, które katalogi, moduły Soong, języki i flagi kompilacji są uwzględniane w obszarze roboczym.
Konfigurację projektu możesz otworzyć w dowolnym momencie, korzystając z jednej z tych opcji:
- W menu głównym wybierz ASfP > Projekt > Otwórz konfigurację.
- Kliknij dwukrotnie
.asfp-projectw katalogu głównym okna narzędzia Projekt. - Kliknij Otwórz konfigurację na pasku narzędzi okna narzędzia Soong.
Po edycji pliku .asfp-project uruchom synchronizację projektu, aby zmiany zostały zastosowane.
Szablony projektów, które można udostępniać (eksportowanie i importowanie)
Zespoły pracujące nad tym samym podsystemem (np. SystemUI, Ustawienia, SurfaceFlinger lub Automotive) mogą udostępniać standardową konfigurację .asfp-project jako szablon:
Eksportuj do szablonu: kliknij prawym przyciskiem myszy kartę edytora
.asfp-projectlub wybierz ASfP > Projekt > Eksportuj konfigurację do szablonu, aby zapisać plik szablonu, który można udostępniać.
Importuj z szablonu: podczas tworzenia nowego projektu w kreatorze konfiguracji projektu wybierz Importuj z szablonu i wybierz udostępniony plik YAML
.asfp-project, aby wstępnie wypełnić katalogi, moduły i ustawienia kompilacji.
Parametry konfiguracji
Plik .asfp-project obsługuje te parametry:
repo
Wymagane: ścieżka bezwzględna do katalogu głównego wyewidencjonowanego repozytorium platformy Android.
repo: /path/to/aosp
lunch
Wymagane: cel lunch powiązany z projektem. Używany do wszystkich działań związanych z kompilacją, synchronizacją i wdrażaniem Soong.
lunch: aosp_cf_x86_64_phone-aosp_current-userdebug
directories
Opcjonalnie: katalogi, które mają być uwzględnione w projekcie lub z niego wykluczone (względem
repo katalogu głównego). Obsługiwane są katalogi z linkami symbolicznymi i katalogi źródłowe.
directories:
include:
- frameworks/base
- packages/apps/Settings
exclude:
- vendor
- out/soong
modules
Opcjonalnie: konkretne moduły Soong, które mają być uwzględnione w projekcie lub z niego wykluczone.
Działa w połączeniu z parametrem directories. Obsługiwane są pełne i skrócone nazwy modułów.
modules:
include:
- SystemUI
- frameworks/base/services/core/java:services
exclude:
- UnusedModule
test_sources
Opcjonalnie: ścieżki względne, które mają być oznaczone jako katalogi źródłowe testów, gdy automatyczne heurystyki źródeł testów ASfP wymagają ręcznego zastąpienia.
test_sources:
- cts/tests/tests/example
- tests/mytests
other_languages
Opcjonalnie: domyślnie włączona jest obsługa języków Java, Kotlin i Android.bp. Dodaj cpp, aby włączyć obsługę języków C i C++, lub rust, aby włączyć obsługę języka Rust:
other_languages:
- cpp
- rust
build_config
Opcjonalnie: niestandardowe flagi lub zmienne środowiskowe przekazywane do wywołań kompilacji Soong wywoływanych przez IDE (w tym synchronizacje, kompilacje w obszarze marginesu i konfiguracje uruchamiania):
build_config:
flags:
- -j64
env:
SOONG_PARTIAL_COMPILE: true
SOONG_ALLOW_MISSING_DEPENDENCIES: true
Tryby synchronizacji i okno narzędzia Soong
ASfP oferuje kilka sposobów synchronizacji projektu IDE z wyewidencjonowanym kodem AOSP w zależności od potrzeb przepływu pracy. Dostęp do tych działań można uzyskać w menu ASfP > Synchronizuj lub w oknie narzędzia Soong:
- Synchronizuj projekt: analizuje skonfigurowane katalogi i moduły oraz aktualizuje indeksowanie i zależności IDE.
- Synchronizacja częściowa: synchronizuje tylko wybrany podzbiór modułów lub katalogów, co pozwala zaoszczędzić czas podczas pracy w lokalnym obszarze drzewa.
- Synchronizacja bez kompilacji: odświeża strukturę projektu IDE i katalogi źródłowe bez uruchamiania kroku kompilacji Soong – przydatne, gdy dodasz lub przeniesiesz pliki źródłowe albo gdy kompilacja została już przeprowadzona w terminalu.
- Synchronizuj i skompiluj wszystko: łączy synchronizację projektu z pełną kompilacją Soong w jednym kroku.
Okno narzędzia Soong (Widok > Okna narzędzi > Soong) wyświetla wskaźniki stanu w czasie rzeczywistym dla każdego węzła zadania synchronizacji, przyciski szybkiego dostępu do kompilacji i wykonywanie poleceń Soong.
Kompilacja, wdrażanie i nawigacja w edytorze Android.bp
ASfP zapewnia zintegrowaną obsługę edytora plików Android.bp:
Kompilowanie, uruchamianie i debugowanie celów z obszaru marginesu
Otwórz dowolny plik Android.bp w projekcie, aby skompilować lub uruchomić cele za pomocą 2 ikon obszaru marginesu:
- Ikona kompilacji (wszystkie moduły nazwane): pojawia się obok
name:w każdym nazwanym module (cc_library_shared,java_library,rust_binary,android_app, i celach testowych), aby skompilować ten cel Soong (Skompiluj "<moduł>"). - Ikona uruchamiania lub debugowania (
*_test,*_test_host, iandroid_app): kliknij Uruchom obok modułu testowego lub deklaracjiandroid_app, aby uruchomić lub debugować moduł. Modułyandroid_testsą debugowane za pomocąatest, a modułycc_test*irust_test*są uruchamiane w ramach wbudowanego LLDB.

Kontekstowe konfiguracje uruchamiania wdrożenia i flashowania
W przypadku modułów, które można wdrożyć w plikach Android.bp, możesz tworzyć i uruchamiać kontekstowe konfiguracje uruchamiania Soong Deploy z obszaru marginesu lub menu kontekstowego, korzystając z tych funkcji:
- Metody wdrażania: wdrażaj za pomocą
adb, niestandardowych skryptów powłoki,adevice, lubflashall. - Haczyki kompilacji Soong przed uruchomieniem: automatycznie skompiluj docelowy moduł Soong przed wdrożeniem na połączonym urządzeniu lub urządzeniu wirtualnym Cuttlefish.

Przechodzenie między kodem źródłowym a Android.bp
W dowolnym pliku źródłowym lub katalogu w oknie narzędzia Projekt , na karcie edytora lub w menu kontekstowym edytora kliknij prawym przyciskiem myszy i wybierz Otwórz odpowiedni plik Android.bp. ASfP lokalizuje i wyróżnia deklarację modułu Android.bp, która kompiluje ten plik, rozwiązując bloki defaults, wzorce srcs z symbolami wieloznacznymi i linki symboliczne.

Inteligentne funkcje edytora Android.bp i dokumentacja w dymkach
- Nawigacja między plikami i liczba użyć: kliknij z wciśniętym klawiszem Control dowolne odwołanie do modułu, plik
srcslubsoong_config_module_type, aby przejść do jego deklaracji. Obok nazw modułów i udostępnionych celówsrcspojawiają się klikalne podpowiedziN Usages, a moduły bibliotek, do których nie ma odwołań, są wizualnie przyciemnione. - Podpowiedzi z dokumentacją właściwości Soong: najedź kursorem na dowolną
właściwość w pliku
Android.bp– w tym właściwości w zakresie architektury lub celu w sekcjachtarget,arch, imultilib– aby wyświetlić jej sygnaturę typu Soong i dokumentację w tekście.

Zarządzanie wirtualnym urządzeniem Cuttlefish i powielanie ekranu na wielu ekranach
ASfP zawiera wbudowaną wtyczkę Cuttlefish dla deweloperów platform, systemu operacyjnego Android Automotive (AAOS) i pojazdów definiowanych programowo (SDV), którzy pracują z lokalnie zbudowanymi wirtualnymi urządzeniami Cuttlefish:
- Konfiguracja wielu urządzeń w Menedżerze urządzeń: twórz konfiguracje wielu urządzeń wirtualnych Cuttlefish i zarządzaj nimi w Menedżerze urządzeń za pomocą lokalnego wyewidencjonowania AOSP (
$ANDROID_BUILD_TOPi$ANDROID_PRODUCT_OUT). - Powielanie ekranu na wielu ekranach w oknie narzędzia Cuttlefish: otwórz Widok > Okna narzędzi > Cuttlefish, aby włączyć wbudowane powielanie ekranu na wielu ekranach Cuttlefish, dzięki czemu możesz jednocześnie wyświetlać wiele ekranów samochodowych i wchodzić z nimi w interakcję w przypadku przepływów pracy AAOS i SDV.
