oprettelse af et Build-miljø
dette afsnit beskriver, hvordan du konfigurerer dit lokale arbejdsmiljø til at opbygge Android-kildefilerne. Du skal bruge macOS; bygning under vinduer understøttes ikke i øjeblikket.
for en oversigt over hele kodevurderings-og kodeopdateringsprocessen, se Life of a Patch.
valg af en filial
nogle krav til byggemiljøet bestemmes af den version af kildekoden, du planlægger at kompilere. For en komplet liste over tilgængelige filialer, se Build Numbers. Du kan også vælge at hente og opbygge den nyeste kildekode (kaldet master
), i hvilket tilfælde du simpelthen udelader grenspecifikationen, når du initialiserer lageret.
Når du har valgt en filial, skal du følge de relevante instruktioner nedenfor for at konfigurere dit build-miljø.
opsætning af et indbygget miljø
disse instruktioner gælder for alle filialer, herundermaster
.
Android build testes rutinemæssigt i huset på Ubuntu LTS (14.04) og Debian testing. De fleste andre distributioner skal have de nødvendige byggeværktøjer til rådighed.
for honningkager (2.3.h) og højere versioner, herunder master
gren, kræves et 64-bit miljø. Ældre versioner kan kompileres på 32-bit systemer.
installation af nødvendige pakker(Ubuntu 18.04)
du har brug for en 64-bit version af Ubuntu.
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
installation af nødvendige pakker(Ubuntu 14.04)
du har brug for en 64-bit version af Ubuntu (14.04 anbefales).
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
installation af nødvendige pakker (Ubuntu 12.04)
Du kan bruge Ubuntu 12.04 til at opbygge ældre versioner af Android. Version 12.04 understøttes ikke på master
eller seneste udgivelser.
installation af nødvendige pakker (Ubuntu 10.04-11.10)
bygning på Ubuntu 10.04-11.10 understøttes ikke længere, men kan være nyttigt til opbygning af ældre udgivelser af 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
På Ubuntu 10.10:
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
På Ubuntu 11.10:
sudo apt-get install libx11-dev:i386
konfiguration af USB-adgang
Installer et community-vedligeholdt standardsæt afudev
regler for alle Android-enheder ved at følge instruktionerne for at oprette en enhed til udvikling.
brug af en separat outputdirectory
som standard gemmes output for hver build iout/
undermappe for det matchende kildetræ.
på nogle maskiner med flere lagerenheder er builds hurtigere, når du gemmer kildefilerne og output på separate volumener. For yderligere ydeevne kan output gemmes på et filsystem optimeret til hastighed i stedet for crash robusthed, fordi alle filer kan regenereres, hvis filsystemet er beskadiget.
for at konfigurere dette skal du eksportere variablenOUT_DIR_COMMON_BASE
for at pege på det sted, hvor dine outputmapper vil blive gemt.
export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>
outputmappen for hvert separat kildetræ er opkaldt efter den mappe, der holder kildetræet. For eksempel, hvis du har kildetræer /source/master1
og /source/master2
og hvis OUT_DIR_COMMON_BASE
er indstillet til /output
, er outputmapperne /output/master1
og /output/master2
.
undgå at have flere kildetræer gemt i mapper, der har samme navn, da kildetræerne ender med at dele en outputmappe med uforudsigelige resultater. Dette understøttes kun på Jelly Bean (4.1) og højere, inklusive master
gren.
opsætning af et MacOS build-miljø
i en standardinstallation kører macOS på et sagsbevarende, men sagsbehandlende filsystem. Denne type filsystem understøttes ikke af Git og får nogle Git-kommandoer (såsom git status
) til at opføre sig unormalt. På grund af dette anbefaler vi, at du altid arbejder med AOSP-kildefilerne på et sagsfølsomt filsystem. Dette kan gøres ret nemt ved hjælp af et diskbillede, diskuteret nedenfor.
når det korrekte filsystem er tilgængeligt, er det ligetil at opbygge master
– filialen i et moderne macOS-miljø. Tidligere grene kræver nogle ekstra værktøjer og SDK ‘ er.
oprettelse af et sagsfølsomt diskbillede
Du kan oprette et sagsfølsomt filsystem i dit eksisterende macOS-miljø ved hjælp af et diskbillede. For at oprette billedet skal du starte Diskværktøj og vælge nyt billede. En størrelse på 250 GB er minimum for at fuldføre bygningen; mere plads er bedst til fremtidig vækst. Brug af sparsomme billeder sparer plads, mens du tillader vækst efter behov. Vælg store og små bogstaver, journaliseret som lydstyrkeformat.
Du kan også oprette filsystemet fra en skal med følgende kommando:
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 250g ~/android.dmg.sparseimage
dette opretter en .dmg.sparseimage
fil, der, når den er monteret, fungerer som et drev med den krævede formatering til Android-udvikling.
Hvis du har brug for et større volumen senere, kan du ændre størrelsen på det sparsomme billede med følgende kommando:
hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage
for et diskbillede ved navn android.dmg.sparseimage
gemt i din hjemmekatalog, kan du tilføje hjælperfunktioner til ~/.bash_profile
:
- for at montere billedet, når du udfører
mountAndroid
# mount the android file imagemountAndroid() { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }
- for at afmontere det, når du udfører
umountAndroid
# unmount the android file imageumountAndroid() { hdiutil detach /Volumes/android; }
når du har monteret android
volumen, gør du alt dit arbejde der. Du kan skubbe den ud (afmontere den), ligesom du ville have et eksternt drev.
installation af kode og andre pakker
- installation af kommandolinjeværktøjer til kode:
xcode-select --install
for ældre versioner af macOS (10.8 eller lavere) skal du installere kode fra Apple developer site. Hvis du ikke er registreret som Apple-udvikler, skal du oprette et Apple-ID for at hente.
- installer enten MacPorts eller hjemmebryggeri til pakkehåndtering.
- sørg for, at den tilknyttede mappe er i din sti inden for din
~/.bash_profile
fil:- MacPorts –
/opt/local/bin
skal vises før/usr/bin
export PATH=/opt/local/bin:$PATH
- hjemmebryggeri –
/usr/local/bin
export PATH=/usr/local/bin:$PATH
- MacPorts –
- til MacPorts, udgave:
POSIXLY_CORRECT=1 sudo port install git gnupg
- til hjemmebryggeri, udgave:
brew install git gnupg2
Indstilling af en filbeskrivelsesgrænse
på macOS er standardgrænsen for antallet af samtidige åbne filbeskrivere for lav, og en meget parallel byggeproces kan overskride denne grænse. For at øge hætten skal du tilføje følgende linjer til din ~/.bash_profile
:
# set the number of open files to be 1024ulimit -S -n 1024