プロジェクトの概要

Android Studio for Platform(ASfP)のプロジェクトには、ソースコードやアセットから、テストコード、ビルド構成にいたるまで、AOSP コードベースのワークスペースを定義するものがすべて含まれています。

新しいプロジェクトを開始すると、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 ビルド アクションに使用されます。

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 ビルドイベントに追加できます。この構成は、同期や実行構成など、Soong ビルドにつながる IDE のすべてのアクションに適用されます。

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