Construir Android

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. Para identificar seu destino para construção, use o comando lunch seguido por um destino que identifica seu produto e construção alvo:

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 ou aosp_husky . Seu product_name específico pode seguir seu próprio formato, mas o formato que o Google usa 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, como x86_64_phone ou husky (Pixel 8 pro).
  • 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.

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
============================================

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.