Siga as instruções desta página para fazer builds do Android.
Configurar o ambiente de build
No diretório de trabalho, crie o script envsetup.sh
para configurar
seu ambiente de build:
source build/envsetup.sh
Esse script importa vários comandos que permitem trabalhar com o
código-fonte do Android, incluindo os comandos usados nesta página. Para conferir a origem do
script, consulte
platform/build/envsetup.sh
.
Para conferir a ajuda integrada, digite hmm
.
Escolher um destino
Antes de criar para o Android, é preciso identificar o destino do que será criado. Um destino
reflete a plataforma para que você está criando. Para identificar seu
destino de criação, use o comando lunch
seguido por uma string representando
o destino. Exemplo:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Você vai ver uma sinopse do destino e do ambiente de build:
============================================
PLATFORM_VERSION_CODENAME=VanillaIceCream
PLATFORM_VERSION=VanillaIceCream
PRODUCT_INCLUDE_TAGS=com.android.mainline
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.5.13-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=AOSP.MAIN
OUT_DIR=out
============================================
A string que representa o destino tem este formato:
lunch product_name-release_config-build_variant
Estes são os componentes dessa string:
O
product_name
é o nome do produto que você quer criar, comoaosp_cf_x86_64_phone
ouaosp_husky
. Seuproduct_name
pode seguir um formato específico para seu dispositivo, mas o formato que o Google usa para os dispositivos dele tem estes componentes:aosp
se refere ao Android Open Source Platform (AOSP).- (opcional)
cf
é incluído quando o destino está programado para ser executado no emulador Cuttlefish. - Arquitetura e hardware (codinome), como
x86_64_phone
ouhusky
, que é o codinome do Pixel 8 Pro. Para consultar uma lista dos codinomes de dispositivos do Google, acesse Codinomes de dispositivos.
A
release_config
está definida como uma configuração de lançamento, como a configuração de lançamento de desenvolvimento chamadatrunk_staging
. Uma configuração de lançamento identifica determinados recursos e códigos que são responsáveis por flags de lançamento de recursos e estão ativados ou desativados para um build. Para saber mais sobre as configurações de lançamento, consulte Definir os valores de flags de lançamento de recursos.A parte
build_variant
da string pode ter um dos três valores da tabela abaixo:build_variant
Descrição user
Esta variante de build oferece acesso de segurança limitado e é adequada para produção. userdebug
Esta variante de build ajuda os desenvolvedores de dispositivos a entender o desempenho e a potência das versões em desenvolvimento. Ao desenvolver com um build userdebug
, siga as Diretrizes de userdebug.eng
Esta variante diminui o tempo de build e é mais adequada para o desenvolvimento diário quando você não se importa com o desempenho e a potência.
Se você executar lunch
sem qualquer argumento, uma lista de destinos comuns será fornecida.
Você também pode criar suas próprias strings de destino combinando os elementos
da string de destino usando as informações desta página e os codinomes
que representam um hardware do Google na lista
Codinomes de dispositivos.
Conferir o destino atual
Para conferir as configurações de lançamento, execute:
$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"
Criar o código
Execute o seguinte comando para criar seu destino. Dependendo da especificação da sua estação de trabalho, o primeiro build pode levar menos de uma hora ou até algumas horas. Os próximos vão levar muito menos tempo.
m
A saída do seu build aparece em $OUT_DIR
. Se você
criar para destinos diferentes, cada build vai aparecer no
$OUT_DIR
.
O comando m
começa a executar os builds do topo da árvore. Assim, você pode executar m
nos
subdiretórios. Se você tiver a variável de ambiente TOP
definida, o comando m
vai usá-la. Se TOP
não estiver definida, o comando m
vai buscar a árvore no
diretório atual para encontrar o topo dela.
O comando m
pode processar tarefas paralelas com um argumento -jN
. Se você não
fornecer um argumento -j
, o sistema de build vai selecionar automaticamente a contagem
de tarefas paralelas que julgar ser ideal para seu sistema.
Você pode criar módulos específicos em vez da imagem completa do dispositivo listando
os nomes dos módulos na sua linha de comando m
. Além disso, o comando m
fornece
alguns pseudodestinos, chamados de metas. Por exemplo, m nothing
não cria
nada, mas analisa e valida a estrutura do build. Para conferir uma lista de metas
válidas, digite m help
.
Resolver erros de build (8.0 ou anterior)
Se você estiver criando no AOSP 8 ou anterior, m
poderá encerrar o processo quando encontrar um
problema com sua versão Java. Por exemplo, você poderá receber esta mensagem:
************************************************************
You are attempting to build with the incorrect version
of java.
Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.
Please follow the machine setup instructions at
https://source.android.com/source/initializing.html
************************************************************
Estas são as prováveis causas e soluções:
- Você falhou ao instalar o JDK correto conforme especificado nas seções de Configurar para o desenvolvimento no AOSP (2.3 a 8.0).
- Outro JDK instalado anteriormente está aparecendo no seu caminho. Adicione o JDK correto ao início do seu caminho ou remova o JDK problemático.