Stabilire un ambiente di costruzione

Mantieni tutto organizzato con le raccolte Salva e classifica i contenuti in base alle tue preferenze.

Questa sezione descrive come configurare l'ambiente di lavoro locale per creare i file di origine Android. Devi usare Linux; la compilazione in MacOS o Windows non è supportata. Tieni presente anche l'importante modifica al binario /usr/bin/python .

Per una panoramica dell'intero processo di revisione e aggiornamento del codice, vedere Durata di una patch .

Scegliere un ramo

Alcuni requisiti per l'ambiente di compilazione sono determinati dalla versione del codice sorgente che intendi compilare. Per un elenco completo dei rami disponibili, vedere Numeri build . Puoi anche scegliere di scaricare e creare il codice sorgente più recente (chiamato master ), nel qual caso ometti semplicemente la specifica del ramo quando inizializzi il repository.

Dopo aver selezionato un ramo, seguire le istruzioni appropriate di seguito per configurare l'ambiente di compilazione.

Configurazione di un ambiente di compilazione Linux

Queste istruzioni si applicano a tutti i rami, incluso master .

La build Android viene regolarmente testata internamente su Ubuntu LTS (14.04) e test Debian. La maggior parte delle altre distribuzioni dovrebbe disporre degli strumenti di compilazione richiesti.

Per Gingerbread (2.3.x) e versioni successive, incluso il ramo master , è richiesto un ambiente a 64 bit. Le versioni precedenti possono essere compilate su sistemi a 32 bit.

Installazione dei pacchetti richiesti (Ubuntu 18.04)

Hai bisogno di una versione a 64 bit di Ubuntu.

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

Installazione dei pacchetti richiesti (Ubuntu 14.04)

Hai bisogno di una versione a 64 bit di Ubuntu (si consiglia 14.04).

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

Installazione dei pacchetti richiesti (Ubuntu 12.04)

Puoi usare Ubuntu 12.04 per creare versioni precedenti di Android. La versione 12.04 non è supportata nelle versioni master o recenti.

sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so

Installazione dei pacchetti richiesti (Ubuntu 10.04-11.10)

La compilazione su Ubuntu 10.04-11.10 non è più supportata, ma può essere utile per creare versioni precedenti di AOSP.

sudo apt-get install git gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev lib32ncurses5-dev ia32-libs x11proto-core-dev libx11-dev lib32readline5-dev lib32z-dev libgl1-mesa-dev g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc

Su Ubuntu 10.10:

sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

Su Ubuntu 11.10:

sudo apt-get install libx11-dev:i386

Configurazione dell'accesso USB

Installa un set predefinito di regole udev gestito dalla community per tutti i dispositivi Android seguendo le istruzioni per configurare un dispositivo per lo sviluppo .

Utilizzando una directory di output separata

Per impostazione predefinita, l'output di ogni compilazione viene archiviato nella sottodirectory out/ dell'albero dei sorgenti corrispondente. Puoi eseguire l'override esportando la variabile di ambiente OUT_DIR . Per esempio:

export OUT_DIR=out_mytarget

Ciò causerà l'archiviazione dell'output della build nella sottodirectory out_mytarget/ dell'albero dei sorgenti. Quando si utilizza lo stesso albero di origine per creare più destinazioni, si consiglia di utilizzare una OUT_DIR separata per ciascuna destinazione.

Su alcune macchine con più dispositivi di archiviazione, le build sono più veloci quando si archiviano i file di origine e l'output su volumi separati. Per prestazioni aggiuntive, l'output può essere archiviato su un file system ottimizzato per la velocità invece che per la robustezza in caso di crash, perché tutti i file possono essere rigenerati se il file system è danneggiato.

Per configurarlo, esporta la variabile OUT_DIR_COMMON_BASE in modo che punti alla posizione in cui verranno archiviate le directory di output.

export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>

La directory di output per ogni albero di origine separato prende il nome dalla directory che contiene l'albero di origine. Ad esempio, se si dispone di alberi di /source/master1 e /source/master2 e se OUT_DIR_COMMON_BASE è impostato su /output , le directory di output sono /output/master1 e /output/master2 .

Evitare di avere più alberi di origine archiviati in directory con lo stesso nome, poiché gli alberi di origine finirebbero per condividere una directory di output, con risultati imprevedibili. Questo è supportato solo su Jelly Bean (4.1) e versioni successive, incluso il ramo master .

Successivo: Scarica la fonte

Il tuo ambiente di costruzione è pronto! Procedi al download del sorgente .