デフォルトでは、すべての機能のリリース フラグは READ_WRITE
で、DISABLED
に設定されています。機能をテストする前に、フラグのフラグ値ファイルを作成して、ビルドで使用されるデフォルト値をオーバーライドする必要があります。フラグ値ファイルでは、個々のフラグの状態(ENABLED
または DISABLED
)と権限(READ_WRITE
または READ_ONLY
)を設定します。
リリース構成は、特定の Android ビルドのフラグ値ファイル(特定の機能が有効または無効になっている)がすべて含まれているディレクトリです。
AOSP には、trunk_staging
などのいくつかのリリース構成が付属しています。リリース構成ディレクトリは WORKING_DIRECTORY/build/release/aconfig/
にあります。
lunch
コマンドを使用してターゲットを選択すると、ターゲットのリリース構成も設定されます。たとえば、次のターゲットは trunk_staging
です。
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
トランク ステージングは、一般リリース前に機能をテストするために使用されるため、開発リリース構成です。この構成では、ほとんど READ_WRITE
フラグを使用します。これにより、ランタイムで機能を有効または無効にしてコードをテストできます。
一般提供では、リリース リリース構成を使用します。リリース リリース構成は、ほとんどの場合 READ_ONLY
フラグを使用し、そのリリースで有効になっているすべてのコードを反映します。
trunk_staging リリース構成にフラグを追加する
新しいフラグをテストするには、次のように trunk_staging
リリース構成に追加します。
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
までナビ開始- フラグと同じパッケージ名のディレクトリを作成します(Java の aconfig フラグを宣言するの
com.example.android.aconfig.demo.flags
など)。 - 新しいディレクトリに移動します。
- このディレクトリに、フラグ宣言(
.aconfig
)ファイルで使用されている名前(Java の aconfig フラグを宣言するのmy_static_flag
など)と_flag_values.textproto
を組み合わせたフラグ値ファイルを作成します。生成されるファイル名はmy_static_flag_flag_values.textproto
です。 ファイルを編集して、次のような
flag_value
を追加します。flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }
ここで
package
には、宣言で使用されたものと同じパッケージ名が含まれます。name
には、宣言で使用された名前が含まれています。state
は、ENABLED
かDISABLED
のいずれかです。permission
はREAD_WRITE
またはREAD_ONLY
です。通常、リリース構成の一部であるフラグ値ファイルの場合、permission
はREAD_ONLY
に設定されます。
ファイルを保存して、エディタを終了します。
フラグ値ファイルと同じディレクトリに、
Android.bp
という名前のビルドファイルを作成します。このファイルは、フラグ値ファイルをビルドに含めるために使用されます。Android.bp
ファイルで、次のようなaconfig_values
セクションを作成します。aconfig_values { name: "aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all", package: "com.android.aconfig.test", srcs: [ "*_flag_values.textproto", ] }
ここで
name
は Soong ビルド モジュールの一意の名前です。Google ではaconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all
の規則を使用しています。PATH_TO_RELEASE_CONFIG_DIR
はbuild/release
です。package
には、宣言で使用されたものと同じパッケージ名が含まれます。srcs
は、すべてのフラグ値ファイルのリストです。
ファイルを保存して、エディタを終了します。
現在のディレクトリ(
cd ..
)の上のディレクトリに移動します。Android.bp
ファイルを編集します。このビルドファイルには、各フラグ値ファイルに関連付けられている名前(name
)のリストが含まれています。前のビルドファイル(ステップ 8)で使用した名前をこのリストに追加します。Android をビルドし、新しいコードを実行して、フラグ値ファイルの設定に従って有効になっていることを確認します。