项目概览

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

必需

将与您的项目耦合的 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 build 事件添加自定义标志或环境变量。此配置适用于 IDE 中导致 Soong build 的所有操作,包括同步和运行配置。

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