Omówienie projektów

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