Creazione di un ambiente di costruzione

Questa sezione descrive come configurare l'ambiente di lavoro locale per creare i file di origine Android. Devi usare Linux; la creazione 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 Vita di una patch .

La scelta di un ramo

Alcuni requisiti per l'ambiente di compilazione sono determinati dalla versione del codice sorgente che si intende compilare. Per un elenco completo delle filiali disponibili, vedere Numeri di build . Puoi anche scegliere di scaricare e compilare 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, segui le istruzioni appropriate di seguito per configurare il tuo ambiente di compilazione.

Configurazione di un ambiente di compilazione Linux

Queste istruzioni si applicano a tutte le filiali, incluso il master .

La build di Android viene regolarmente testata internamente su Ubuntu LTS (14.04) e Debian testing. La maggior parte delle altre distribuzioni dovrebbe avere a disposizione gli 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)

È necessaria una versione a 64 bit di Ubuntu (si consiglia la 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 potrebbe 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 .

Utilizzo di una directory di output separata

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

export OUT_DIR=out_mytarget

Ciò farà sì che l'output della build venga archiviato nella sottodirectory out_mytarget/ dell'albero dei sorgenti. Quando si utilizza lo stesso albero di origine per creare per più destinazioni, si consiglia di utilizzare un OUT_DIR separato 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à anziché per la robustezza degli arresti anomali, poiché 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 hai 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 .

Avanti: Scarica la fonte

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