Articles

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.sparseimagelagrad i din hemkatalog kan du lägga till hjälpfunktioner till~/.bash_profile :

  • för att montera bilden när du körmountAndroid
    # mount the android file imagemountAndroid() { hdiutil attach ~/android.dmg.sparseimage -mountpoint /Volumes/android; }
  • för att avmontera den när du körumountAndroid
    # 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

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

  2. installera antingen MacPorts eller Homebrew för pakethantering.
  3. se till att den tillhörande katalogen finns i din sökväg i~/.bash_profile fil:
    1. MacPorts – /opt/local/bin måste visas före/usr/bin
      export PATH=/opt/local/bin:$PATH
    2. homebrew – /usr/local/bin
      export PATH=/usr/local/bin:$PATH
  4. för MacPorts, utgåva:
    POSIXLY_CORRECT=1 sudo port install git gnupg
  5. 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

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *