Costruisci Android

Segui le istruzioni in questa pagina per creare Android.

Configura il tuo ambiente di compilazione

Dalla tua directory di lavoro, ottieni lo script envsetup.sh per configurare il tuo ambiente di compilazione:

$ source build/envsetup.sh

Questo script importa diversi comandi che ti consentono di lavorare con il codice sorgente Android, inclusi i comandi utilizzati in questa pagina. Per visualizzare l'origine dello script, fare riferimento a platform/build/envsetup.sh . Per visualizzare la guida integrata, digitare hmm .

Scegli un obiettivo

Prima di creare Android, devi identificare un target da creare. Per identificare il tuo target da costruire, utilizza il comando lunch seguito da un target che identifica il tuo prodotto target e crea:

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

Visualizza l'obiettivo corrente

Per visualizzare le impostazioni correnti del pranzo, esegui:

$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"

La stringa che rappresenta il target ha il seguente formato:

lunch product_name-release-build_variant

I componenti di questa stringa sono:

  • product_name è il nome del prodotto che desideri creare, ad esempio aosp_cf_x86_64_phone o aosp_husky . Il tuo product_name specifico può seguire il tuo formato, ma il formato utilizzato da Google ha questi componenti:

    • aosp si riferisce alla piattaforma Android Open Source.
    • (facoltativo) cf è incluso quando il target deve essere eseguito all'interno dell'emulatore Cuttlefish.
    • architettura e hardware, come x86_64_phone o husky (Pixel 8 pro).
  • Il release è impostato su trunk-staging .

  • La parte build_variant della stringa può essere uno dei tre valori nella tabella seguente:

    build_variant Descrizione
    user Questa variante di build fornisce un accesso di sicurezza limitato ed è adatta per la produzione.
    userdebug Questa variante di build aiuta gli sviluppatori del dispositivo a comprendere le prestazioni e la potenza delle versioni in fase di sviluppo. Quando si sviluppa con una build userdebug , seguire le Linee guida per userdebug .
    ing Questa variante di build ha tempi di build più rapidi ed è più adatta per lo sviluppo quotidiano se non ti interessano prestazioni e potenza.

Costruisci il codice

Esegui il comando seguente per creare il tuo target. A seconda delle specifiche della tua workstation, la prima creazione potrebbe richiedere da meno di un'ora ad alcune ore. Le build successive richiedono molto meno tempo.

$ m

Il primo output che dovresti vedere è una sinossi del tuo target e dell'ambiente di compilazione:

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

Il comando m viene creato dalla parte superiore dell'albero, quindi puoi eseguire m dalle sottodirectory. Se hai impostato la variabile d'ambiente TOP , il comando m la usa. Se TOP non è impostato, il comando m cerca l'albero dalla directory corrente, cercando di trovare la parte superiore dell'albero.

Il comando m può gestire attività parallele con un argomento -jN . Se non fornisci un argomento -j , il sistema di compilazione seleziona automaticamente un conteggio di attività parallele che ritiene ottimale per il tuo sistema.

Puoi creare moduli specifici invece dell'immagine completa del dispositivo elencando i nomi dei moduli nella riga di comando m . Inoltre, il comando m fornisce alcuni pseudo target, chiamati goal . Ad esempio, m nothing non crea nulla, ma analizza e convalida la struttura di compilazione. Per un elenco di obiettivi validi, digitare m help .

Risolvere gli errori di compilazione (8.0 o versioni precedenti)

Se stai creando AOSP 8 o versioni precedenti, m potrebbe interrompersi quando rileva un problema con la tua versione di Java. Ad esempio, potresti ricevere questo messaggio:

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

Ecco le probabili cause e soluzioni:

  • Non sei riuscito a installare il JDK corretto come specificato nelle sezioni JDK di Configurazione per lo sviluppo AOSP (2.3 - 8.0) .
  • C'è un altro JDK precedentemente installato visualizzato nel tuo percorso. Anteponi il JDK corretto all'inizio del percorso o rimuovi il JDK problematico.