根據預設,所有功能啟動標記都是 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
主幹架構是開發發布設定,因為 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
) 檔案中使用的名稱,例如_flag_values.textproto
中的my_static_flag
。宣告 Java 的 aconfig 旗標產生的檔案名稱為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,並執行新程式碼,確保系統會依據旗標值檔案中的設定啟用程式碼。