Em 2026, para nos alinharmos ao nosso modelo de desenvolvimento estável e garantir a estabilidade da plataforma para o ecossistema, vamos publicar o código-fonte no AOSP no segundo e quarto trimestres. Para criar e contribuir com o AOSP, use android-latest-release. A ramificação de manifesto android-latest-release sempre vai referenciar a versão mais recente enviada ao AOSP. Para mais informações, consulte Mudanças no AOSP.
O Google usa tecnologia de IA na tradução de conteúdos para seu idioma de preferência. As traduções com IA podem ter erros.
Expansão recursiva
Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Não use expansão recursiva em makefiles de configuração do produto/placa. A expansão recursiva é o uso de um raw = em vez de um := para atribuição de variáveis em makefiles. Isso faz com que variáveis definidas com o valor de outras variáveis não avaliem essas outras variáveis até que elas próprias sejam avaliadas. Esta é uma funcionalidade que o Starlark não suporta.
Removê-lo depende muito do cenário específico de como ele é usado. Na maioria das vezes, envolve mover atribuições de variáveis para antes de onde elas são usadas. Por exemplo, substitua:
MY_VAR_2 = foo
# Some stuff in between...
MY_VAR = $(MY_VAR_2)
MY_VAR_2 = bar
# $(MY_VAR) is bar here.
com:
MY_VAR_2 := foo
# Some stuff in between...
MY_VAR_2 := bar
MY_VAR := $(MY_VAR_2)
# $(MY_VAR) is bar here.
Anexar a uma variável com += usa expansão recursiva se essa variável não tiver sido atribuída com expansão simples antes. Se você não tiver certeza se a variável foi atribuída antes, o += pode ser substituído por MY_VAR := $(strip $(MY_VAR) new_value) .
A remoção da expansão adiada também pode acelerar a avaliação dos Makefiles mesmo antes da conversão para Starlark ser concluída. Se as variáveis fossem definidas para o resultado de chamadas de função caras, a função seria chamada apenas uma vez com expansão simples, mas potencialmente muitas vezes com expansão recursiva.
O conteúdo e os exemplos de código nesta página estão sujeitos às licenças descritas na Licença de conteúdo. Java e OpenJDK são marcas registradas da Oracle e/ou suas afiliadas.
Última atualização 2022-06-06 UTC.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2022-06-06 UTC."],[],[]]