デフォルトでは、すべての機能リリースフラグは 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
Trunk staging は開発用リリース構成であり、Google はこれを利用して一般リリース前に機能をテストします。この構成では主に 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 をビルドして新しいコードを実行し、フラグ値ファイルの設定どおりに有効になっていることを確認します。