Siga as instruções nesta página para criar o Android.
Configure seu ambiente de construção
Em seu diretório de trabalho, crie o script envsetup.sh
para configurar seu ambiente de compilação:
source build/envsetup.sh
Este script importa vários comandos que permitem trabalhar com o código-fonte do Android, incluindo os comandos usados nesta página. Para visualizar a origem do script, consulte platform/build/envsetup.sh
. Para visualizar a ajuda integrada, digite hmm
.
Escolha um alvo
Antes de construir o Android, você deve identificar um destino para construir. Uma meta reflete a plataforma-alvo para a qual você está construindo. Para identificar seu destino a ser construído, use o comando lunch
seguido por uma string representando o destino. Por exemplo:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Ver a meta atual
Para ver as configurações atuais do almoço, execute:
$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"
A string que representa o destino tem o seguinte formato:
lunch product_name-release-build_variant
Os componentes desta string são:
O product_name é o nome do produto que você deseja construir, como
aosp_cf_x86_64_phone
ouaosp_husky
. Seu product_name específico pode seguir seu próprio formato para seu dispositivo, mas o formato que o Google usa para seus dispositivos possui estes componentes:-
aosp
refere-se à plataforma de código aberto Android. - (opcional)
cf
é incluído quando o alvo se destina a ser executado no emulador Cuttlefish. - Arquitetura e hardware (codinome), como
x86_64_phone
ouhusky
que é o codinome do Pixel 8 pro. Para obter uma lista de codinomes para dispositivos Google, consulte Codinomes de dispositivos .
-
A release está definida como
trunk_staging
.A parte build_variant da string pode ser um dos três valores na tabela a seguir:
build_variant Descrição user
Esta variante de construção fornece acesso de segurança limitado e é adequada para produção. userdebug
Esta variante de compilação ajuda os desenvolvedores de dispositivos a compreender o desempenho e o poder das versões em desenvolvimento. Ao desenvolver com uma compilação userdebug
, siga as Diretrizes para userdebug .inglês Esta variante de construção tem um tempo de construção mais rápido e é mais adequada para o desenvolvimento diário se você não se preocupa com desempenho e potência.
Se você lunch
sem argumentos, será fornecida uma lista de alvos comuns. Você também pode criar suas próprias strings de destino reunindo os elementos da string de destino usando as informações desta página e os codinomes que representam hardware específico do Google em Codinomes de dispositivos .
Construa o código
Execute o seguinte comando para construir seu destino. Dependendo da especificação da sua estação de trabalho, a primeira construção pode levar menos de uma hora e até algumas horas. As compilações subsequentes levam significativamente menos tempo.
$ m
A primeira saída que você deve ver é uma sinopse do seu ambiente de destino e de construção:
============================================
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 saída da sua compilação aparece em ` $OUT_DIR . Se você construir destinos diferentes, cada construção de destino aparecerá em $OUT_DIR .
O comando m
é compilado a partir do topo da árvore, para que você possa executar m
dentro de subdiretórios. Se você tiver a variável de ambiente TOP
definida, o comando m
a utilizará. Se TOP
não estiver definido, o comando m
procura a árvore no diretório atual, tentando encontrar o topo da árvore.
O comando m
pode lidar com tarefas paralelas com um argumento -jN
. Se você não fornecer um argumento -j
, o sistema de compilação selecionará automaticamente uma contagem de tarefas paralelas que considera ideal para o seu sistema.
Você pode criar módulos específicos em vez da imagem completa do dispositivo listando os nomes dos módulos na linha de comando m
. Além disso, o comando m
fornece alguns pseudo-alvos, chamados de metas . Por exemplo, m nothing
não constrói nada, mas analisa e valida a estrutura de construção. Para obter uma lista de metas válidas, digite m help
.
Solucionar erros de compilação (8.0 ou anterior)
Se você estiver compilando o AOSP 8 ou anterior, m
poderá ser abortado quando encontrar um problema com sua versão do Java. Por exemplo, você pode 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
************************************************************
Aqui estão as prováveis causas e soluções:
- Você não conseguiu instalar o JDK correto conforme especificado nas seções JDK de Configuração para desenvolvimento AOSP (2.3 - 8.0) .
- Há outro JDK instalado anteriormente aparecendo no seu caminho. Anexe o JDK correto ao início do seu caminho ou remova o JDK problemático.