Etablere Et Byggemiljø
denne delen beskriver hvordan du konfigurerer ditt lokale arbeidsmiljø for å bygge Android-kildefilene. Du må bruke Linux eller macOS; bygging under Windows støttes for Øyeblikket ikke.
For en oversikt over hele kode-gjennomgang og kode-oppdateringsprosessen, se Life Of A Patch.
Velge en gren
noen krav til byggemiljøet bestemmes av versjonen av kildekoden du planlegger å kompilere. For en fullstendig liste over tilgjengelige grener, se Bygge Tall. Du kan også velge å laste ned og bygge den nyeste kildekoden (kalt master
), i så fall utelater du bare grenspesifikasjonen når du initialiserer depotet.
når du har valgt en gren, følger du de riktige instruksjonene nedenfor for å konfigurere byggemiljøet.
Sette Opp En Linux buildenvironment
disse instruksjonene gjelder for alle grener, inkludert master
.Android-bygningen testes rutinemessig i hus på Ubuntu LTS (14.04) og Debian testing. De fleste andre distribusjoner bør ha de nødvendige byggverktøyene tilgjengelig.
For Pepperkaker (2.3.x) og høyere versjoner ,inkludertmaster
-grenen, kreves et 64-biters miljø. Eldre versjoner kan kompileres på 32-biters systemer.
Installere nødvendige pakker (Ubuntu 18.04)
du trenger en 64-biters versjon Av 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
Installere nødvendige pakker (Ubuntu 14.04)
du trenger en 64-biters versjon Av 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
Installere nødvendige pakker (Ubuntu 12.04)
Du kan bruke Ubuntu 12.04 til å bygge eldre versjoner Av Android. Versjon 12.04 støttes ikke på master
eller nyere utgivelser.
Installere nødvendige pakker (Ubuntu 10.04-11.10)
Bygge På Ubuntu 10.04-11.10 støttes ikke lenger, men kan være nyttig for å bygge eldre versjoner AV 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
Konfigurere USB-tilgang
Installer et fellesskapsdefinert standardsett medudev
regler for Alle Android-enheter ved å følge instruksjonene for Å Sette opp en enhet for utvikling.
ved hjelp av en egen outputdirectory
som standard lagres utdataene for hver build iout/
underkatalog i det matchende kildetreet.
på noen maskiner med flere lagringsenheter, bygger er raskere når du lagrer kildefilene og utgang på separate volumer. For ekstra ytelse kan utgangen lagres på et filsystem optimalisert for hastighet i stedet for krasj robusthet, fordi alle filer kan regenereres hvis filsystemet er skadet.
for å sette opp dette, eksporterOUT_DIR_COMMON_BASE
variabelen for å peke på stedet der utdatakatalogene dine skal lagres.
export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>
utdatakatalogen for hvert separat kildetre er oppkalt etter katalogen som holder kildetreet. Hvis du for eksempel har kildetrær /source/master1
og /source/master2
og hvis OUT_DIR_COMMON_BASE
er satt til /output
, er utdatakatalogene /output/master1
og /output/master2
.
Unngå å ha flere kilde trær lagret i kataloger som har samme navn, som kilde trær ville ende opp med å dele en utgang katalog, med uforutsigbare resultater. Dette støttes bare På Jelly Bean (4.1) og høyere, inkludertmaster
grenen.
Sette opp et macOS – byggemiljø
i en standardinstallasjon kjører macOS på et saksbevarende, men saksfølsomt filsystem. Denne typen filsystem støttes ikke Av Git og forårsaker at noen git-kommandoer (for eksempel git status
) oppfører seg unormalt. Derfor anbefaler vi at DU alltid arbeider MED AOSP-kildefilene på et filsystem som skiller mellom store og små bokstaver. Dette kan gjøres ganske enkelt ved hjelp av et diskbilde, diskutert nedenfor.
når riktig filsystem er tilgjengelig, er det enkelt å bygge master
– grenen i et moderne macOS-miljø. Tidligere grener krever noen ekstra verktøy og Sdk.
Opprette en disk som skiller mellom store og små bokstaver
du kan opprette et filsystem som skiller mellom store og små og Store bokstaver i det eksisterende macOS-miljøet ved hjelp av en diskfil. For å lage bildet, start Diskverktøy og velg Nytt Bilde. En STØRRELSE på 250 GB er minimum for å fullføre byggingen; mer plass er best for fremtidig vekst. Bruke sparsomme bilder sparer plass samtidig som vekst etter behov. Velg case sensitive, journalført som volumformat.
du kan også opprette filsystemet fra et skall med følgende kommando:
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 250g ~/android.dmg.sparseimage
dette skaper en .dmg.sparseimage
fil som, når den er montert, fungerer som en stasjon med nødvendig formatering For Android-utvikling.
hvis du trenger et større volum senere, kan du endre størrelsen på det sparsomme bildet med følgende kommando:
hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage
for et diskbilde som heter android.dmg.sparseimage
lagret i hjemmekatalogen din, kan du legge til hjelpefunksjoner til ~/.bash_profile
:
- for å montere bildet når du utfører
mountAndroid
# mount the android file imagemountAndroid() { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }
- for å demontere det når du utfører
umountAndroid
# unmount the android file imageumountAndroid() { hdiutil detach /Volumes/android; }
etter at du har montertandroid
volum, gjør du alt arbeidet ditt der. Du kan løse det ut (avmontere det) akkurat som du ville en ekstern stasjon.
Installere Xcode og andre pakker
- Installer kommandolinjeverktøyene Xcode:
xcode-select --install
for eldre versjoner av macOS (10.8 eller lavere) må Du installere Xcode fra Apple developer-nettstedet. Hvis Du ikke er registrert Som En apple-utvikler, må du opprette En Apple-ID for å laste ned.
- Installer Enten MacPorts eller Homebrew for pakkehåndtering.
- Kontroller at den tilknyttede katalogen er i banen din i
~/.bash_profile
fil:- MacPorts –
/opt/local/bin
må vises før/usr/bin
export PATH=/opt/local/bin:$PATH
- homebrew –
/usr/local/bin
export PATH=/usr/local/bin:$PATH
- MacPorts –
- for macports, utgave:
POSIXLY_CORRECT=1 sudo port install git gnupg
- for homebrew, utgave:
brew install git gnupg2
Angi en filbeskrivelsesgrense
på macOS er standardgrensen for antall samtidige åpne filbeskrivelser for lav, og en svært parallell byggeprosess kan overskride denne grensen. For å øke hetten, legg til følgende linjer i ~/.bash_profile
:
# set the number of open files to be 1024ulimit -S -n 1024