Segui le istruzioni in questa pagina per sviluppare Android.
Configura l'ambiente di build
Dalla tua directory di lavoro, genera lo script envsetup.sh
da impostare
per configurare l'ambiente di build:
source build/envsetup.sh
Questo script importa diversi comandi che ti consentono di lavorare con Android
del codice sorgente, inclusi i comandi utilizzati in questa pagina. Per visualizzare l'origine del
fare riferimento a
platform/build/envsetup.sh
Per visualizzare la guida integrata, digita hmm
.
Scegli un target
Prima di creare Android, devi identificare un target da creare. Un obiettivo
riflette la piattaforma di destinazione
per cui stai creando. Per identificare
target per la creazione, usa il comando lunch
seguito da una stringa che rappresenta
l'obiettivo. Ad esempio:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
Visualizza il target attuale
Per visualizzare le impostazioni attuali per il pranzo, esegui:
echo "$TARGET_PRODUCT-$TARGET_RELEASE-$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 vuoi build, ad esempio
aosp_cf_x86_64_phone
oaosp_husky
. I tuoi dati product_name può seguire il tuo formato per il tuo dispositivo, ma il formato che Google utilizza per i suoi dispositivi include questi componenti:aosp
si riferisce alla piattaforma open source Android.- (facoltativo)
cf
viene incluso se il target deve essere eseguito all'interno Emulatore seppia. - Architettura e hardware (nome in codice), come
x86_64_phone
ohusky
che è il nome in codice di Pixel 8 Pro. Per l'elenco di nomi in codice per Google per i dispositivi, consulta Nomi in codice dei dispositivi.
Il valore release è impostato su
trunk_staging
.La parte build_variant della stringa può essere uno di i tre valori della tabella seguente:
build_variant Descrizione user
Questa variante di build fornisce un accesso alla sicurezza limitato ed è adatta alla produzione. userdebug
Questa variante di build aiuta gli sviluppatori di dispositivi a comprendere le prestazioni e la potenza delle release in fase di sviluppo. Quando sviluppi con una build userdebug
, segui le linee guida per userdebug.eng
Questa variante di build ha tempi di compilazione più rapidi ed è ideale per lo sviluppo quotidiano se le prestazioni e la potenza non ti interessano.
Se esegui lunch
senza argomenti, viene fornito un elenco di destinazioni comuni.
Puoi anche creare stringhe target personalizzate unendo gli elementi
la stringa di destinazione utilizzando le informazioni su questa pagina e i nomi in codice
che rappresentano l'hardware Google specifico
Nomi in codice dei dispositivi.
Crea il codice
Esegui questo comando per creare la tua destinazione. In base alla specifica della workstation, la prima build potrebbe richiedere meno di un'ora e fino per alcune ore. Le build successive richiedono molto meno tempo.
$ m
Il primo output che dovresti vedere è una sintesi del target e della build questo ambiente:
============================================
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
============================================
L'output della build viene visualizzato in $OUT_DIR
. Se
creare target diversi, ogni build target viene visualizzata
$OUT_DIR
.
Il comando m
viene creato dall'alto della struttura, quindi puoi eseguire m
dall'interno
nelle sottodirectory. Se la variabile di ambiente TOP
è impostata, il comando m
che la utilizzi. Se TOP
non è impostato, il comando m
cerca l'albero nella struttura ad albero
alla directory corrente, cercando di individuare la parte superiore della struttura.
Il comando m
può gestire attività parallele con un argomento -jN
. In caso contrario
fornisci un argomento -j
, il sistema di compilazione seleziona automaticamente un'attività parallela
considerare ottimale per il tuo sistema.
Puoi creare moduli specifici anziché l'immagine completa del dispositivo elencando
i nomi dei moduli nella riga di comando m
. Inoltre, il comando m
fornisce
alcuni pseudo bersagli, chiamati obiettivi. Ad esempio, m nothing
non crea
ma analizza e convalida la struttura di compilazione. Per un elenco di valori validi
obiettivi, digita m help
.
Risolvere gli errori di build (8.0 o versioni precedenti)
Se stai creando AOSP 8 o versioni precedenti, m
potrebbe interrompersi quando rileva un
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 è stato possibile installare il JDK corretto come specificato nella Sezioni JDK di Configura lo sviluppo AOSP (2.3-8.0) .
- Nel percorso è presente un altro JDK installato in precedenza. Anteponi il correggi il JDK all'inizio del percorso o rimuovi il JDK problematico.