Обзор проектов

Проект в Android Studio for Platform (ASfP) содержит все, что определяет ваше рабочее пространство для кодовой базы AOSP: от исходного кода и ресурсов до тестового кода и конфигураций сборки.

При запуске нового проекта ASfP создаёт необходимую структуру для всех ваших файлов и делает их видимыми в окне «Проект» . Чтобы открыть окно, выберите «Вид» > «Окна инструментов» > «Проект» .

На этой странице представлен обзор ключевых компонентов конфигурации вашего проекта.

Конфигурация проекта ( .asfp-project )

Конфигурация проекта ASfP управляется файлом .asfp-project , расположенным в корневом каталоге вашего проекта. Этот YAML-файл необходим для управления содержимым проекта и работой критически важных функций. Вы можете открыть его через главное меню, выбрав ASfP > Проект > Открыть конфигурацию, или найдя его в окне проекта.

При создании проекта формируется конфигурация на основе предоставленных пользователем спецификаций. Все параметры конфигурации можно редактировать в любое время, например, для обновления каталогов или модулей проекта. После этого требуется синхронизация для отражения изменений.

Параметры конфигурации

Вот основные параметры, которые можно настроить в файле .asfp-project :

repo

Необходимый

Абсолютный путь к корню репозитория вашей платформы Android.

repo: /path/to/aosp

lunch

Необходимый

Цель ланча, которая будет связана с вашим проектом. Она используется для всех действий по сборке Soong, включая синхронизацию и соответствующие конфигурации запуска.

lunch: your-product-variant-userdebug

directories

Необязательный

Каталоги, которые нужно включить в проект или исключить из него. Пути должны быть относительными относительно корня repo .

directories:
  include:
    -   frameworks/base
    -   packages/apps/Settings
  exclude:
    -   vendor
    -   out/soong

modules

Необязательный

Модули, которые можно включить в проект или исключить из него. Они работают совместно с ранее указанными directories . Поддерживаются как полные, так и сокращённые имена.

modules:
  include:
    -   SystemUIGoogle
    -   frameworks/base/services/core/java:services
  exclude:
    -   UnusedModule

test_sources

Необязательный

ASfP пытается различать производственные и тестовые источники, но в некоторых случаях может потребоваться явное обозначение тестовых источников. Укажите их как относительные пути относительно корня repo . Любые корневые каталоги источников, являющиеся подкаталогами указанных путей, будут помечены как тестовые.

test_sources:
  -   cts/tests/tests/example
  -   tests/mytests

other_languages

Необязательный

Поддержка Java включена по умолчанию. Вы можете добавить поддержку других языков. ASfP также поддерживает C/C++ ( cpp ) и Rust ( rust ).

other_languages:
  -   cpp
  -   rust

build_config

Необязательный

Этот параметр позволяет добавлять пользовательские флаги или переменные окружения к событиям сборки Soong. Эта конфигурация применяется ко всем действиям в IDE, приводящим к сборке Soong, включая конфигурации синхронизации и запуска.

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