De forma predeterminada, todas las marcas de lanzamiento de funciones son READ_WRITE
y están configuradas como DISABLED
.
Antes de poder probar una función, debes anular el valor predeterminado que se usó en la compilación. Para ello, crea un archivo de valores de la marca correspondiente. En un archivo de valores de la marca, configura el estado (ENABLED
o DISABLED
) y el permiso (READ_WRITE
o READ_ONLY
) de una marca individual.
Una configuración de lanzamiento es un directorio que contiene todos los archivos de valores de la marca para una compilación específica de Android (con ciertas funciones inhabilitadas y habilitadas).
El AOSP se envía con algunas configuraciones de versiones, como trunk_staging
.
Los directorios de configuraciones de lanzamiento se encuentran en WORKING_DIRECTORY/build/release/aconfig/
.
Cuando usas el comando lunch
para elegir un destino, también defines la configuración de lanzamiento del destino.
Por ejemplo, lo siguiente es un destino de trunk_staging
:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
"Trunk staging" es una configuración de lanzamiento de desarrollo porque Google la utiliza para probar funciones antes del lanzamiento general. Esta configuración usa mayormente marcas READ_WRITE
que te permiten probar el código con funciones inhabilitadas o habilitadas durante el tiempo de ejecución.
En el lanzamiento general, usa una configuración de versión de lanzamiento. Una configuración de versión de lanzamiento usa mayormente marcas READ_ONLY
y refleja todo el código habilitado para esa versión.
Cómo agregar una marca a la configuración de la versión de trunk_staging
Para probar una marca nueva, agrégala a la trunk_staging
configuración de versión de esta manera:
- Navega a
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
. - Crea un directorio con el mismo nombre de paquete que la marca, como
com.example.android.aconfig.demo.flags
, que se muestra en Cómo declarar una marca de aconfig para Java. - Navega al directorio nuevo.
- En el directorio, crea un archivo de valores de la marca que combine el nombre utilizado en el archivo de declaración de la marca (
.aconfig
), comomy_static_flag
, que se muestra en Cómo declarar una marca de aconfig para Java, con_flag_values.textproto
. Así, el nombre del archivo esmy_static_flag_flag_values.textproto
. Edita el archivo y agrega un
flag_value
similar al siguiente:flag_value { package: "com.example.android.aconfig.demo.flags" name: "my_static_flag" state: DISABLED Permission: READ_WRITE }
En el que:
package
contiene el mismo nombre de paquete que se usó en la declaración.name
contiene el mismo nombre que se usó en la declaración.state
esENABLED
oDISABLED
.permission
esREAD_WRITE
oREAD_ONLY
. En general,permission
se configura enREAD_ONLY
para los valores de la marca que son parte de una configuración de versión.
Guarda el archivo y sal del editor.
En el mismo directorio que el del archivo de valores de la marca, crea un archivo de compilación llamado
Android.bp
. Este archivo se utiliza para incluir el archivo de valores de la marca en la compilación.En el archivo
Android.bp
, crea una secciónaconfig_values
similar a la siguiente:aconfig_values { name: "aconfig-values-platform_build_release-trunk-staging-com.android.aconfig.test-all", package: "com.android.aconfig.test", srcs: [ "*_flag_values.textproto", ] }
En la que:
name
es el nombre único del módulo de compilación de Soong. Google usa la convención deaconfig-values-platform_PATH_TO_RELEASE_CONFIG_DIR-CONFIG-NAME-package.name-all
. Ten en cuenta quePATH_TO_RELEASE_CONFIG_DIR
esbuild/release
.package
contiene el mismo nombre de paquete que se usó en la declaración.srcs
es una lista de todos tus archivos de valores de la marca.
Guarda el archivo y sal del editor.
Navega al directorio arriba del actual (
cd ..
).Edita el archivo
Android.bp
. Este archivo de compilación contiene una lista de todos los nombres (name
) asociados a cada archivo de valores de la marca. Agrega a esa lista el nombre que usaste en el archivo de compilación anterior (paso 8).Compila Android y ejecuta tu código nuevo para asegurarte de que esté habilitado de acuerdo con la configuración en el archivo de valores de la marca.