Descripción general de proyectos

Un proyecto en Android Studio for Platform (ASfP) contiene todo lo que define tu espacio de trabajo para tu base de código de AOSP, desde código fuente y recursos hasta código de prueba y configuraciones de compilación.

Cuando inicias un proyecto nuevo, ASfP crea la estructura necesaria para todos tus archivos y los hace visibles en la ventana Project. Para abrir la ventana, selecciona View > Tool Windows > Project.

En esta página, se proporciona una descripción general de los componentes clave de la configuración de tu proyecto.

Configuración del proyecto (.asfp-project)

La configuración del proyecto de ASfP se controla con el archivo .asfp-project, que se encuentra en la raíz del directorio del proyecto. Este archivo YAML es fundamental para controlar lo que se incluye en tu proyecto y cómo operan las funciones críticas. Puedes abrirlo desde el menú principal con ASfP > Project > Open Config o buscándolo en la vista del proyecto.

Cuando se crea un proyecto, se genera una configuración según las especificaciones proporcionadas por el usuario. Todos los parámetros de la configuración se pueden editar en cualquier momento para modificar las especificaciones del proyecto, por ejemplo, para actualizar los directorios o módulos del proyecto, después de lo cual se requiere una sincronización para que se reflejen los cambios.

Parámetros de configuración

Estos son los parámetros clave que puedes configurar en el archivo .asfp-project:

repo

Obligatorio

Es una ruta de acceso absoluta a la raíz del repositorio de la plataforma de Android.

repo: /path/to/aosp

lunch

Obligatorio

Es el objetivo de lanzamiento que se vinculará con tu proyecto. Se usa para todas las acciones de compilación de Soong, incluidas las configuraciones de ejecución relevantes y de sincronización.

lunch: your-product-variant-userdebug

directories

Opcional

Directorios que se incluirán en tu proyecto o se excluirán de él. Estas deben ser rutas de acceso relativas con respecto a la raíz de repo.

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

modules

Opcional

Son los módulos que se pueden incluir en tu proyecto o excluir de él. Estos parámetros funcionan en conjunto con el directories especificado anteriormente. Se admiten tanto los nombres completos como los abreviados.

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

test_sources

Opcional

La ASfP intenta diferenciar entre las fuentes de producción y las de prueba, pero, en algunos casos, es posible que debas indicar explícitamente las fuentes de prueba. Proporciona estas rutas de acceso como rutas relativas con respecto a la raíz de repo. Las raíces de origen que sean subdirectorios de las rutas especificadas se marcarán como de prueba.

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

other_languages

Opcional

La compatibilidad con Java se incluye de forma predeterminada. Puedes agregar compatibilidad con otros idiomas. ASfP también admite C/C++ (cpp) y Rust (rust).

other_languages:
  -   cpp
  -   rust

build_config

Opcional

Este parámetro te permite agregar marcas o variables de entorno personalizadas a los eventos de compilación de Soong. Esta configuración se aplica a todas las acciones del IDE que generan una compilación de Soong, incluidas las configuraciones de sincronización y ejecución.

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