A partir de 2026, para alinearnos con nuestro modelo de desarrollo estable de la rama principal y garantizar la estabilidad de la plataforma para el ecosistema, publicaremos el código fuente en AOSP en el segundo y cuarto trimestre. Para compilar AOSP y contribuir a él, te recomendamos que utilices android-latest-release en lugar de aosp-main. La rama del manifiesto android-latest-release siempre hará referencia a la versión más reciente que se envió al AOSP. Para obtener más información, consulta Cambios en AOSP.
Expansión recursiva
Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
No utilice la expansión recursiva en los archivos MAKE de configuración del producto/placa. La expansión recursiva es el uso de un = sin procesar en lugar de un := para la asignación de variables en archivos MAKE. Hace que las variables que se establecen en el valor de otras variables no evalúen esas otras variables hasta que se evalúen ellas mismas. Esta es una funcionalidad que Starlark no admite.
Eliminarlo depende en gran medida del escenario específico de cómo se usa. La mayoría de las veces implica mover las asignaciones de variables antes de que se usen. Por ejemplo, reemplace:
MY_VAR_2 = foo
# Some stuff in between...
MY_VAR = $(MY_VAR_2)
MY_VAR_2 = bar
# $(MY_VAR) is bar here.
con:
MY_VAR_2 := foo
# Some stuff in between...
MY_VAR_2 := bar
MY_VAR := $(MY_VAR_2)
# $(MY_VAR) is bar here.
Anexar a una variable con += usa la expansión recursiva si esa variable no se ha asignado antes con una expansión simple. Si no está seguro de si la variable se asignó antes, el += se puede reemplazar con MY_VAR := $(strip $(MY_VAR) new_value) .
La eliminación de la expansión diferida también puede acelerar la evaluación de los Makefiles incluso antes de que se realice la conversión a Starlark. Si las variables se establecieran en el resultado de costosas llamadas a funciones, la función solo se llamaría una vez con expansión simple, pero potencialmente muchas veces con expansión recursiva.
El contenido y las muestras de código que aparecen en esta página están sujetas a las licencias que se describen en la Licencia de Contenido. Java y OpenJDK son marcas registradas de Oracle o sus afiliados.
Última actualización: 2022-06-06 (UTC)
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Falta la información que necesito","missingTheInformationINeed","thumb-down"],["Muy complicado o demasiados pasos","tooComplicatedTooManySteps","thumb-down"],["Desactualizado","outOfDate","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Problema con las muestras o los códigos","samplesCodeIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2022-06-06 (UTC)"],[],[]]