ส่วนนี้อธิบายวิธีการตั้งค่าสภาพแวดล้อมการทำงานในเครื่องของคุณเพื่อสร้างไฟล์ต้นฉบับของ Android คุณต้องใช้ลินุกซ์ ไม่รองรับการสร้างภายใต้ MacOS หรือ Windows โปรดทราบการเปลี่ยนแปลงที่สำคัญของไบนารี /usr/bin/python
ด้วย
สำหรับภาพรวมของกระบวนการตรวจสอบโค้ดทั้งหมดและกระบวนการอัปเดตโค้ด โปรดดูที่ Life of a patch
การเลือกสาขา
ข้อกำหนดบางอย่างสำหรับสภาพแวดล้อมบิลด์จะกำหนดโดยเวอร์ชันของซอร์สโค้ดที่คุณวางแผนจะคอมไพล์ สำหรับรายชื่อสาขาที่มีอยู่ทั้งหมด โปรดดูที่ Build Numbers คุณยังสามารถเลือกที่จะดาวน์โหลดและสร้างซอร์สโค้ดล่าสุด (เรียกว่า main
) ซึ่งในกรณีนี้ คุณไม่ต้องระบุข้อมูลจำเพาะของสาขาเมื่อคุณเริ่มต้นพื้นที่เก็บข้อมูล
หลังจากเลือกสาขาแล้ว ให้ทำตามคำแนะนำที่เหมาะสมด้านล่างเพื่อตั้งค่าสภาพแวดล้อมการสร้างของคุณ
การตั้งค่าสภาพแวดล้อมการสร้าง Linux
คำแนะนำเหล่านี้ใช้ได้กับทุกสาขา รวมถึง main
รุ่น Android ได้รับการทดสอบเป็นประจำในการทดสอบ Ubuntu LTS (14.04) และ Debian การแจกจ่ายอื่น ๆ ส่วนใหญ่ควรมีเครื่องมือสร้างที่จำเป็น
สำหรับ Gingerbread (2.3.x) และเวอร์ชันที่สูงกว่า รวมถึงสาขา main
จำเป็นต้องมีสภาพแวดล้อมแบบ 64 บิต เวอร์ชันเก่าสามารถคอมไพล์ในระบบ 32 บิตได้
การติดตั้งแพ็คเกจที่จำเป็น (Ubuntu 18.04 และสูงกว่า)
คุณต้องใช้ Ubuntu รุ่น 64 บิต
sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig
การติดตั้งแพ็คเกจที่จำเป็น (Ubuntu 14.04)
คุณต้องมี Ubuntu รุ่น 64 บิต (แนะนำให้ใช้ 14.04)
sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip
การติดตั้งแพ็คเกจที่จำเป็น (Ubuntu 12.04)
คุณสามารถใช้ Ubuntu 12.04 เพื่อสร้าง Android เวอร์ชันเก่า เวอร์ชัน main
หรือรุ่นล่าสุดไม่รองรับเวอร์ชัน 12.04
sudo apt-get install git gnupg flex bison gperf build-essential zip curl libc6-dev libncurses5-dev:i386 x11proto-core-dev libx11-dev:i386 libreadline6-dev:i386 libgl1-mesa-glx:i386 libgl1-mesa-dev mingw32 tofrodos python-markdown libxml2-utils xsltproc zlib1g-dev:i386
sudo ln -s /usr/lib/i386-linux-gnu/mesa/libGL.so.1 /usr/lib/i386-linux-gnu/libGL.so
การติดตั้งแพ็คเกจที่จำเป็น (Ubuntu 10.04-11.10)
ไม่รองรับการสร้างบน Ubuntu 10.04-11.10 อีกต่อไป แต่อาจมีประโยชน์สำหรับการสร้าง 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 mingw32 tofrodos python-markdown libxml2-utils xsltproc
บน Ubuntu 10.10:
sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so
บน Ubuntu 11.10:
sudo apt-get install libx11-dev:i386
การกำหนดค่าการเข้าถึง USB
ติดตั้งชุดกฎ udev
เริ่มต้นที่ดูแลโดยชุมชนสำหรับอุปกรณ์ Android ทั้งหมดโดยทำตามคำแนะนำเพื่อ ตั้งค่าอุปกรณ์สำหรับการพัฒนา
การใช้ไดเร็กทอรีเอาต์พุตแยกต่างหาก
ตามค่าเริ่มต้น เอาต์พุตของแต่ละบิลด์จะถูกเก็บไว้ในไดเร็กทอรี out/
ย่อยของแผนผังต้นทางที่ตรงกัน คุณสามารถลบล้างสิ่งนี้ได้โดยส่งออกตัวแปรสภาพแวดล้อม OUT_DIR
ตัวอย่างเช่น:
export OUT_DIR=out_mytarget
สิ่งนี้จะทำให้เอาต์พุตของบิลด์ถูกเก็บไว้ในไดเร็กทอรีย่อย out_mytarget/
ของแผนผังต้นทาง เมื่อใช้โครงสร้างต้นทางเดียวกันเพื่อสร้างเป้าหมายหลายรายการ ขอแนะนำให้ใช้ OUT_DIR
แยกต่างหากสำหรับแต่ละเป้าหมาย
ในบางเครื่องที่มีอุปกรณ์เก็บข้อมูลหลายตัว การสร้างจะเร็วกว่าเมื่อจัดเก็บไฟล์ต้นฉบับและเอาต์พุตในวอลุ่มแยกกัน สำหรับประสิทธิภาพเพิ่มเติม เอาต์พุตสามารถจัดเก็บไว้ในระบบไฟล์ที่ปรับให้เหมาะสมสำหรับความเร็ว แทนความทนทานต่อการหยุดทำงาน เนื่องจากไฟล์ทั้งหมดสามารถสร้างใหม่ได้หากระบบไฟล์เสียหาย
หากต้องการตั้งค่า ให้ส่งออกตัวแปร OUT_DIR_COMMON_BASE
เพื่อชี้ไปยังตำแหน่งที่จะจัดเก็บไดเร็กทอรีเอาต์พุตของคุณ
export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>
ไดเร็กทอรีเอาต์พุตสำหรับแต่ละซอร์สทรีที่แยกจากกันจะตั้งชื่อตามไดเร็กทอรีที่มีทรีซอร์ส ตัวอย่างเช่น หากคุณมีแผนผังต้นทาง /source/main1
และ /source/main2
และหากตั้งค่า OUT_DIR_COMMON_BASE
เป็น / /output
ไดเร็กทอรีเอาต์พุตจะเป็น /output/main1
และ /output/main2
หลีกเลี่ยงการเก็บแผนผังต้นทางหลายรายการในไดเร็กทอรีที่มีชื่อเดียวกัน เนื่องจากแผนผังต้นทางจะลงเอยด้วยการแชร์ไดเรกทอรีเอาต์พุตโดยให้ผลลัพธ์ที่คาดเดาไม่ได้ สิ่งนี้รองรับเฉพาะใน Jelly Bean (4.1) และสูงกว่า รวมถึงสาขา main
ด้วย
ถัดไป: ดาวน์โหลดแหล่งที่มา
สภาพแวดล้อมการสร้างของคุณพร้อมแล้ว! ดำเนินการ ดาวน์โหลดแหล่งที่มา