项目概览

Android Studio for Platform (ASfP) 中的项目包含为 AOSP 代码库定义工作区的所有内容,包括源代码、资源、测试代码和 build 配置等。

当您开始一个新项目时,ASfP 会为您的所有文件创建必要的结构,并使其在 Project 窗口中可见。如需打开该窗口,请依次选择 View > Tool Windows > Project

本页面将概括介绍项目配置中的主要组件。

项目配置 (.asfp-project)

ASfP 项目配置由位于项目目录根目录中的 .asfp-project 文件控制。此 YAML 文件对于控制项目中的内容以及关键功能的运行方式至关重要。您可以通过主菜单使用 ASfP > Project > Open Config 打开该文件,也可以在项目视图中找到该文件。

创建项目时,系统会根据用户提供的规范构建配置。您可以随时修改配置中的所有参数,以修改项目规范,例如更新项目目录或模块,之后需要进行同步才能反映更改。

配置参数

以下是您可以在 .asfp-project 文件中配置的关键参数:

repo

必需

Android 平台代码库根目录的绝对路径。

repo: /path/to/aosp

lunch

必需

将与您的项目关联的午餐目标。这适用于所有 Soong build 操作,包括同步和相关运行配置。

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