Articles

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

  1. 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.

  2. installer enten MacPorts eller hjemmebryggeri til pakkehåndtering.
  3. sørg for, at den tilknyttede mappe er i din sti inden for din~/.bash_profile fil:
    1. MacPorts – /opt/local/bin skal vises før/usr/bin
      export PATH=/opt/local/bin:$PATH
    2. hjemmebryggeri – /usr/local/bin
      export PATH=/usr/local/bin:$PATH
  4. til MacPorts, udgave:
    POSIXLY_CORRECT=1 sudo port install git gnupg
  5. 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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret. Krævede felter er markeret med *