Criar para o Android

Siga as instruções desta página para criar para o 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 que vai ser criado. Para fazer isso, use o comando lunch seguido por um destino que identifique o produto e o build:

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

Conferir o destino atual

Para conferir as configurações de "lunch", execute:

$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"

A string que representa o destino tem o seguinte formato:

lunch product_name-release-build_variant

Estes são os componentes dessa string:

  • O product_name é o nome do produto que você quer criar, como aosp_cf_x86_64_phone ou aosp_husky. O product_name específico pode ter seu próprio formato, mas o formato usado pelo Google 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, como x86_64_phone ou husky (Pixel 8 Pro).
  • O release é definido como trunk-staging.

  • A parte build_variant da string pode ter um dos três valores da tabela a seguir:

    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 de build 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.

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 primeira saída vai ser 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
============================================

O comando m começa a executar os builds do topo da árvore. Assim, você pode executar m dos 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 do 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. Inclua o JDK correto no início do caminho ou remova o JDK problemático.