Projekt w Android Studio for Platform (ASfP) zawiera wszystkie elementy definiujące obszar roboczy w bazie 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 najważniejszych 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, co wchodzi w skład projektu i jak działają najważniejsze funkcje. Możesz go otworzyć w menu głównym, wybierając ASfP > Projekt > Otwórz konfigurację lub znajdując go w widoku projektu.
Podczas tworzenia projektu konfiguracja jest tworzona na podstawie specyfikacji podanych przez użytkownika. Wszystkie parametry w konfiguracji można edytować w dowolnym momencie, aby zmodyfikować specyfikacje projektu, np. zaktualizować katalogi lub moduły projektu. Po wprowadzeniu zmian wymagana jest synchronizacja.
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 lunch, który będzie 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 w stosunku do katalogu głównego repo.
directories:
include:
- frameworks/base
- packages/apps/Settings
exclude:
- vendor
- out/soong
modules
Opcjonalnie
Moduły, które mają być uwzględnione w projekcie lub z niego wykluczone. Działają one w połączeniu z określonymi wcześniej 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 źródeł 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 synchronizacji i konfiguracji uruchamiania.
build_config:
flags:
- -j64
env:
SOONG_ALLOW_MISSING_DEPENDENCIES: true
MY_CUSTOM_VAR: value