Projekt w Android Studio for Platform (ASfP) zawiera wszystko, co definiuje obszar roboczy dla bazy kodu AOSP, od kodu źródłowego i zasobów po kod testowy i konfiguracje kompilacji.
Gdy rozpoczniesz nowy projekt, ASfP utworzy niezbędną strukturę wszystkich plików i wyświetli je w oknie Projekt. Aby otworzyć okno, wybierz Widok > Okna narzędzi > Projekt.
Ta strona zawiera omówienie kluczowych komponentów w konfiguracji projektu.
Konfiguracja projektu (.asfp-project)
Konfiguracja projektu ASfP jest kontrolowana przez plik .asfp-project, który znajduje się w katalogu głównym projektu. Ten plik YAML jest niezbędny do kontrolowania zawartości projektu i działania najważniejszych funkcji. Możesz go otworzyć w menu głównym, klikając ASfP > Projekt > Otwórz konfigurację, lub znaleźć go w widoku projektu.
Po utworzeniu projektu na podstawie specyfikacji podanych przez użytkownika tworzona jest konfiguracja. Wszystkie parametry w konfiguracji można w każdej chwili edytować, aby modyfikować specyfikacje projektu, np. aktualizować katalogi lub moduły projektu. Po wprowadzeniu zmian konieczna jest synchronizacja, aby zostały one odzwierciedlone.
Parametry konfiguracji
Oto najważniejsze parametry, które możesz skonfigurować w pliku .asfp-project:
repo
Wymagany
Ścieżka bezwzględna do katalogu głównego repozytorium platformy Android.
repo: /path/to/aosp
lunch
Wymagany
Cel dotyczący lunchu, który zostanie powiązany z Twoim projektem. Jest on używany we wszystkich działaniach kompilacji Soong, w tym w synchronizacji i odpowiednich konfiguracjach uruchamiania.
lunch: your-product-variant-userdebug
directories
Opcjonalnie
Katalogi, które mają być uwzględnione w projekcie lub z niego wykluczone. Powinny to być ścieżki względne względem katalogu głównego repo.
directories:
include:
- frameworks/base
- packages/apps/Settings
exclude:
- vendor
- out/soong
modules
Opcjonalnie
moduły, które chcesz uwzględnić w projekcie lub z niego wykluczyć; Działają one w połączeniu z wcześniej określonymi directories. Obsługiwane są zarówno pełne, jak i skrócone nazwy.
modules:
include:
- SystemUIGoogle
- frameworks/base/services/core/java:services
exclude:
- UnusedModule
test_sources
Opcjonalnie
ASfP próbuje odróżnić źródła produkcyjne od testowych, ale w niektórych przypadkach może być konieczne wyraźne oznaczenie źródeł testowych. Podaj je jako ścieżki względne w stosunku do katalogu głównego repo. Wszystkie katalogi główne źródeł, które są podkatalogami określonych ścieżek, zostaną oznaczone jako testowe.
test_sources:
- cts/tests/tests/example
- tests/mytests
other_languages
Opcjonalnie
Obsługa języka Java jest domyślnie włączona. Możesz dodać obsługę innych języków.
ASfP obsługuje też języki C/C++ (cpp) i Rust (rust).
other_languages:
- cpp
- rust
build_config
Opcjonalnie
Ten parametr umożliwia dodawanie niestandardowych flag lub zmiennych środowiskowych do zdarzeń kompilacji Soong. Ta konfiguracja dotyczy wszystkich działań w IDE, które powodują kompilację Soong, w tym konfiguracji synchronizacji i uruchamiania.
build_config:
flags:
- -j64
env:
SOONG_ALLOW_MISSING_DEPENDENCIES: true
MY_CUSTOM_VAR: value