Omówienie projektów

Projekt w Android Studio na potrzeby platformy (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 Project (Projekt). Aby otworzyć okno, wybierz Widok > Okna narzędzi > Projekt.

Na tej stronie znajdziesz omówienie kluczowych komponentów w konfiguracji projektu.

Konfiguracja projektu (.asfp-project)

Konfiguracja projektu ASfP jest kontrolowana przez plik .asfp-project znajdujący 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 dowolnym momencie edytować, aby modyfikować specyfikacje projektu, np. aktualizować katalogi lub moduły projektu. Po wprowadzeniu zmian wymagana 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 uruchomienia, 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

Opcjonalny

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

Opcjonalny

moduły, które chcesz uwzględnić w projekcie lub z niego wykluczyć; Działają one w połączeniu z wcześniej określonym parametrem 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

Opcjonalny

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 względem 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

Opcjonalny

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

Opcjonalny

Ten parametr umożliwia dodawanie niestandardowych flag lub zmiennych środowiskowych do zdarzeń kompilacji Soong. Ta konfiguracja ma zastosowanie do wszystkich działań w IDE, które powodują kompilację Soong, w tym do konfiguracji synchronizacji i uruchamiania.

build_config:
  flags:
    -   -j64
  env:
    SOONG_ALLOW_MISSING_DEPENDENCIES: true
    MY_CUSTOM_VAR: value