skapa en Build Environment
i det här avsnittet beskrivs hur du ställer in din lokala arbetsmiljö för att bygga Android-källfilerna. Du måste använda Linux eller macOS; byggnad under Windows stöds för närvarande inte.
för en översikt över hela processen för kodgranskning och koduppdatering, se Life of a Patch.
välja en gren
vissa krav för byggmiljön bestäms av versionen av källkoden som du planerar att kompilera. En fullständig lista över tillgängliga filialer finns i Byggnummer. Du kan också välja att ladda ner och bygga den senaste källkoden (kallad master
), I vilket fall du helt enkelt utelämnar filialspecifikationen när du initierar förvaret.
När du har valt en filial följer du lämpliga instruktioner nedan för att ställa in din byggmiljö.
ställa in en Linux buildenvironment
dessa instruktioner gäller för alla grenar, inklusive master
.
Android-byggnaden testas rutinmässigt i huset på Ubuntu LTS (14.04) och Debian-testning. De flesta andra distributioner bör ha de nödvändiga byggverktygen tillgängliga.
för pepparkakor (2.3.X) och högre versioner, inklusive master
, krävs en 64-bitars miljö. Äldre versioner kan sammanställas på 32-bitarssystem.
installera nödvändiga paket (Ubuntu 18.04)
Du behöver en 64-bitarsversion 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
installera nödvändiga paket(Ubuntu 14.04)
Du behöver en 64-bitarsversion av Ubuntu (14.04 rekommenderas).
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
installera nödvändiga paket (Ubuntu 12.04)
Du kan använda Ubuntu 12.04 för att bygga äldre versioner av Android. Version 12.04 stöds inte på master
eller senaste utgåvor.
installera nödvändiga paket (Ubuntu 10.04-11.10)
bygga på Ubuntu 10.04-11.10 stöds inte längre, men kan vara användbart för att bygga äldre versioner 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
konfigurera USB-åtkomst
Installera en community-underhållen standarduppsättning avudev
regler för alla Android-enheter genom att följa instruktionerna för att ställa in en enhet för utveckling.
använda en separat outputdirectory
som standard lagras utmatningen för varje byggnad i out/
underkatalog för matchande källträd.
på vissa maskiner med flera lagringsenheter är byggnader snabbare när källfilerna och utmatningen lagras på separata volymer. För ytterligare prestanda kan utmatningen lagras på ett filsystem optimerat för hastighet istället för krasch robusthet, eftersom alla filer kan regenereras om filsystemet är skadat.
för att ställa in detta, exportera variabelnOUT_DIR_COMMON_BASE
för att peka på platsen där dina utmatningskataloger kommer att lagras.
export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>
utgångskatalogen för varje separat källträd är uppkallad efter katalogen som innehåller källträdet. Om du till exempel har källträd /source/master1
och /source/master2
och om OUT_DIR_COMMON_BASE
är inställt på /output
, är utgångskatalogerna /output/master1
och /output/master2
.
Undvik att ha flera källträd lagrade i kataloger som har samma namn, eftersom källträden skulle sluta dela en utgångskatalog med oförutsägbara resultat. Detta stöds endast på Jelly Bean (4.1) och högre, inklusive master
gren.
ställa in en macOS-byggmiljö
i en standardinstallation körs macOS på ett fallbevarande men skiftlägeskänsligt filsystem. Denna typ av filsystem stöds inte av Git och får vissa Git-kommandon (till exempel git status
) att uppträda onormalt. På grund av detta rekommenderar vi att du alltid arbetar med AOSP-källfilerna på ett skiftlägeskänsligt filsystem. Detta kan göras ganska enkelt med hjälp av en skivavbildning som diskuteras nedan.
När rätt filsystem är tillgängligt är det enkelt att bygga master
– filialen i en modern macOS-miljö. Tidigare grenar kräver några ytterligare verktyg och SDK.
skapa en skiftlägeskänslig diskimage
Du kan skapa ett skiftlägeskänsligt filsystem i din befintliga macOS-miljö med en skivavbildning. För att skapa bilden, starta Diskverktyg och välj Ny bild. En storlek på 250 GB är det minsta för att slutföra byggnaden; mer utrymme är bäst för framtida tillväxt. Att använda glesa bilder sparar utrymme samtidigt som det tillåter tillväxt efter behov. Välj skiftlägeskänslig, journalförd som volymformat.
Du kan också skapa filsystemet från ett skal med följande kommando:
hdiutil create -type SPARSE -fs 'Case-sensitive Journaled HFS+' -size 250g ~/android.dmg.sparseimage
detta skapar en .dmg.sparseimage
– fil som, när den är monterad, fungerar som en enhet med den nödvändiga formateringen för Android-utveckling.
om du behöver en större volym senare kan du ändra storlek på den glesa bilden med följande kommando:
hdiutil resize -size <new-size-you-want>g ~/android.dmg.sparseimage
för en skivavbildning med namnet android.dmg.sparseimage
lagrad i din hemkatalog kan du lägga till hjälpfunktioner till~/.bash_profile
:
- för att montera bilden när du kör
mountAndroid
# mount the android file imagemountAndroid() { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }
- för att avmontera den när du kör
umountAndroid
# unmount the android file imageumountAndroid() { hdiutil detach /Volumes/android; }
När du har monteratandroid
volym gör du allt ditt arbete där. Du kan mata ut den (avmontera den) precis som en extern enhet.
installera Xcode och andra paket
- installera Xcode-kommandoradsverktygen:
xcode-select --install
för äldre versioner av macOS (10.8 eller lägre) måste du installera Xcode från Apple developer-webbplatsen. Om du inte är registrerad som Apple-utvecklare måste du skapa ett Apple-ID för nedladdning.
- installera antingen MacPorts eller Homebrew för pakethantering.
- se till att den tillhörande katalogen finns i din sökväg i
~/.bash_profile
fil:- MacPorts –
/opt/local/bin
måste visas före/usr/bin
export PATH=/opt/local/bin:$PATH
- homebrew –
/usr/local/bin
export PATH=/usr/local/bin:$PATH
- MacPorts –
- för MacPorts, utgåva:
POSIXLY_CORRECT=1 sudo port install git gnupg
- för Homebrew, utgåva:
brew install git gnupg2
ställa in en filbeskrivningsgräns
på macOS är standardgränsen för antalet samtidiga öppna filbeskrivare för låg och en mycket parallell byggprocess kan överskrida denna gräns. För att öka locket, lägg till följande rader till ditt ~/.bash_profile
:
# set the number of open files to be 1024ulimit -S -n 1024