De forma predeterminada, todas las marcas de lanzamiento de atributos son READ_WRITE
y se establecen en DISABLED
.
Antes de poder probar una función, debes anular el valor predeterminado que se usa en la compilación. Para ello, crea un archivo de valores de marca para la marca. En un archivo de valores de marca,
configuras 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 marca para una compilación específica de Android (con ciertas funciones habilitadas y inhabilitadas).
AOSP se envía con algunas configuraciones de lanzamiento, como trunk_staging
.
Los directorios de configuración de lanzamiento se encuentran en WORKING_DIRECTORY/build/release/aconfig/
.
Cuando usas el comando lunch
para
elegir un destino, también
configuras la configuración de lanzamiento para el destino.
Por ejemplo, el siguiente es un destino trunk_staging
:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
La etapa de pruebas de Trunk es una configuración de lanzamiento de desarrollo porque Google la usa para probar funciones antes del lanzamiento general. Esta configuración usa principalmente marcas READ_WRITE
que te permiten probar tu código con funciones habilitadas o inhabilitadas en el tiempo de ejecución.
En la versión general, usa una configuración de lanzamiento. Una configuración de lanzamiento de versión usa principalmente marcas READ_ONLY
y refleja todo el código habilitado para esa versión.
Agrega una marca a la configuración de lanzamiento de trunk_staging
Para probar una marca nueva, agrégala a la configuración de lanzamiento de trunk_staging
de la siguiente manera:
- Navegar a
WORKING_DIRECTORY/build/release/aconfig/trunk_staging/
- Crea un directorio con el mismo nombre de paquete que tu 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 marca que combine el nombre que se usa en el archivo de declaración de marca (
.aconfig
), comomy_static_flag
que se muestra en Cómo declarar una marca de aconfig para Java con_flag_values.textproto
. El nombre de archivo resultante 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 }
donde:
package
contiene el mismo nombre de paquete que se usa en la declaración.name
contiene el mismo nombre que se usó en la declaración.state
esENABLED
oDISABLED
.permission
esREAD_WRITE
oREAD_ONLY
. Por lo general,permission
se establece enREAD_ONLY
para los archivos de valores de marca que forman parte de una configuración de lanzamiento.
Guarda el archivo y sal del editor.
En el mismo directorio que el archivo de valores de marca, crea un archivo de compilación llamado
Android.bp
. Este archivo se usa para incluir el archivo de valores de 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", ] }
donde:
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 usa en la declaración.srcs
es una lista de todos tus archivos de valores de marca.
Guarda el archivo y sal del editor.
Navega al directorio anterior al directorio actual (
cd ..
).Edita el archivo
Android.bp
. Este archivo de compilación contiene una lista de los nombres (name
) asociados con cada archivo de valores de marca. Agrega a esta lista el nombre que usaste en el archivo de compilación anterior (paso 8).Compila Android y ejecuta el código nuevo para asegurarte de que esté habilitado según la configuración del archivo de valores de marca.