ตั้งค่าสําหรับการพัฒนา AOSP (2.3 - 8.0)

หน้านี้จะอธิบายวิธีตั้งค่าสำหรับการพัฒนาด้วย Android 8.0 หรือเวอร์ชันที่ต่ำกว่า ดูวิธีสร้าง Android 9.0 ขึ้นไปได้ที่ตั้งค่าสำหรับการพัฒนา AOSP

ได้

ตั้งค่าสำหรับการพัฒนา AOSP (5.0 - 8.0)

สำหรับ Android 5.0 ถึง 8.0 ให้พิจารณาใช้ Dockerfile ที่รวมไว้ เพื่ออำนวยความสะดวกในการติดตั้งแพ็กเกจที่จำเป็นทั้งหมด

ระบบปฏิบัติการ

โดยปกติแล้ว Android จะสร้างขึ้นด้วย GNU Linux นอกจากนี้ คุณยังสร้าง Android ในเครื่องเสมือนบนระบบที่ไม่รองรับ เช่น Mac OS X ได้ด้วย

Google ขอแนะนำให้สร้างบน GNU Linux โดยปกติแล้ว ระบบบิลด์ของ Android จะเรียกใช้ ART ในเครื่องบิลด์เพื่อคอมไพล์ล่วงหน้าสำหรับไฟล์ DEX ของระบบ ART ทำงานได้เฉพาะใน Linux ดังนั้นระบบบิลด์จึงข้ามขั้นตอนการคอมไพล์ล่วงหน้านี้ในระบบปฏิบัติการที่ไม่ใช่ Linux ซึ่งส่งผลให้บิลด์ Android มีประสิทธิภาพลดลง

GNU Linux

  • Android 6.0 - Android 8.0: Ubuntu 14.04 (Trusty)
  • Android 5.x: Ubuntu 12.0

Mac OS X (Intel/x86)

  • Android 6.0 - AOSP 8.0: Mac OS X v10.10 (Yosemite) ขึ้นไปที่มี Xcode 4.5.2 และเครื่องมือบรรทัดคำสั่ง
  • Android 5.x: Mac OS X v10.8 (Mountain Lion) ที่มี Xcode 4.5.2 และเครื่องมือบรรทัดคำสั่ง

JDK

ตั้งค่าสำหรับการพัฒนา AOSP (2.3 - 4.4)

ส่วนนี้จะให้คำแนะนำบางอย่างเกี่ยวกับวิธีตั้งค่า Android 2.3 ถึง Android 4.4

ระบบปฏิบัติการ

โดยปกติแล้ว Android จะสร้างขึ้นด้วย GNU Linux นอกจากนี้ คุณยังสร้าง Android ในเครื่องเสมือนบนระบบที่ไม่รองรับ เช่น Windows ได้ด้วย

Google ขอแนะนำให้สร้างบน GNU Linux โดยปกติแล้ว ระบบบิลด์ของ Android จะเรียกใช้ ART ในเครื่องบิลด์เพื่อคอมไพล์ล่วงหน้าสำหรับไฟล์ DEX ของระบบ ART ทำงานได้เฉพาะใน Linux ดังนั้นระบบบิลด์จึงข้ามขั้นตอนการคอมไพล์ล่วงหน้านี้ในระบบปฏิบัติการที่ไม่ใช่ Linux ซึ่งส่งผลให้บิลด์ Android มีประสิทธิภาพลดลง

GNU Linux

  • Android 2.3.x - Android 4.4: Ubuntu 12.04 (Precise)

Mac OS X (Intel/x86)

  • Android 4.1.x - Android 4.4.x: Mac OS X v10.6 (Snow Leopard) หรือ Mac OS X v10.7 (Lion) และ Xcode 4.2 (Apple Developer Tools)
  • Android 2.3 - Android 4.0.x: Mac OS X v10.5 (Leopard) หรือ Mac OS X v10.6 (Snow Leopard) และ SDK ของ Mac OS X v10.5

GNU make

สำหรับ Android 4.1.x ถึง 4.4 ให้ใช้ GNU make (gmake) 3.82 สำหรับ Android 2.3 ถึง 4.0.x ให้เปลี่ยนจาก gmake 3.82 เพื่อหลีกเลี่ยงข้อผิดพลาดในการสร้าง

Xcode และแพ็กเกจอื่นๆ

สำหรับ Mac OS X v10.8 หรือต่ำกว่า ให้ติดตั้ง Xcode จากเว็บไซต์นักพัฒนาแอปของ Apple หากยังไม่ได้ลงทะเบียนเป็นนักพัฒนาแอปของ Apple คุณต้องสร้าง Apple ID เพื่อดาวน์โหลด

หากใช้ Mac OS X v10.4 ให้ติดตั้ง Bison ด้วย

POSIXLY_CORRECT=1 sudo port install bison

สำหรับ MacPorts ให้ใช้คำสั่งต่อไปนี้

POSIXLY_CORRECT=1 sudo port install gmake libsdl git gnupg

สำหรับ Homebrew ให้ทำดังนี้

brew install gmake libsdl git gnupg2

เปลี่ยนกลับจาก gmake 3.82

ใน Android 4.0.x และต่ำกว่า gmake 3.82 มีข้อบกพร่อง ที่ทำให้ Android สร้างไม่ได้ คุณติดตั้งเวอร์ชัน 3.81 โดยใช้ MacPorts ได้โดยทำตามขั้นตอนต่อไปนี้

  1. แก้ไข /opt/local/etc/macports/sources.conf และเพิ่ม file:///Users/Shared/dports เหนือบรรทัด rsync

  2. สร้างไดเรกทอรี dports

    mkdir /Users/Shared/dports
    
  3. ในไดเรกทอรี dports ใหม่ ให้เรียกใช้คำสั่งต่อไปนี้

    svn co --revision 50980 http://svn.macports.org/repository/macports/trunk/dports/devel/gmake/ devel/gmake/
    
  4. สร้างดัชนีพอร์ตสำหรับที่เก็บในเครื่องใหม่

    portindex /Users/Shared/dports
    
  5. ติดตั้ง gmake เวอร์ชันที่ต่ำกว่าโดยใช้คำสั่งต่อไปนี้

    sudo port install gmake @3.81
    

JDK

JDK สำหรับ Linux

โปรเจ็กต์โอเพนซอร์ส Android (AOSP) มาพร้อมกับ OpenJDK เวอร์ชันที่สร้างไว้ล่วงหน้าภายใน prebuilts/jdk/ จึงไม่จำเป็นต้องติดตั้งเพิ่มเติม

Android เวอร์ชันก่อนหน้ากำหนดให้ต้องติดตั้ง JDK แยกต่างหาก ใน Ubuntu ให้ใช้ OpenJDK

สำหรับ Ubuntu 15.04 ขึ้นไป

เรียกใช้คำสั่งต่อไปนี้

sudo apt-get update
sudo apt-get install openjdk-8-jdk

สำหรับ Ubuntu LTS 14.04

ไม่มีแพ็กเกจ OpenJDK 8 ที่รองรับซึ่งพร้อมใช้งานสำหรับ Ubuntu 14.04 ใช้แพ็กเกจ OpenJDK 8 ของ Ubuntu 15.04 กับ Ubuntu 14.04 ได้สำเร็จ แพ็กเกจเวอร์ชันที่สูงกว่า (เช่น เวอร์ชันสำหรับ 15.10 16.04) จะใช้ใน 14.04 ไม่ได้โดยใช้วิธีการต่อไปนี้

  1. ดาวน์โหลดแพ็กเกจ .deb สำหรับสถาปัตยกรรม 64 บิตจาก old-releases.ubuntu.com

    • openjdk-8-jre-headless_8u45-b14-1_amd64.deb ด้วย SHA256 0f5aba8db39088283b51e00054813063173a4d8809f70033976f83e214ab56c0
    • openjdk-8-jre_8u45-b14-1_amd64.deb ด้วย SHA256 9ef76c4562d39432b69baf6c18f199707c5c56a5b4566847df908b7d74e15849
    • openjdk-8-jdk_8u45-b14-1_amd64.deb ด้วย SHA256 6e47215cf6205aa829e6a0a64985075bd29d1f428a4006a80c9db371c2fc3c4c
  2. ไม่บังคับ: ยืนยันการตรวจสอบของไฟล์ที่ดาวน์โหลดกับสตริง SHA256 ที่แสดงพร้อมกับแต่ละแพ็กเกจจากขั้นตอนที่ 1 ตัวอย่างเช่น ด้วยเครื่องมือ sha256sum

    sha256sum {downloaded.deb file}
    
  3. ติดตั้งแพ็กเกจ

    sudo apt-get update
    
  4. เรียกใช้ dpkg สำหรับไฟล์ .deb แต่ละไฟล์ที่คุณดาวน์โหลด อาจทำให้เกิดข้อผิดพลาด เนื่องจากไม่มีการระบุทรัพยากร Dependency

    sudo dpkg -i {downloaded.deb file}
    
  5. วิธีแก้ไขการอ้างอิงที่ขาดหายไป

    sudo apt-get -f install
    

(ไม่บังคับ) อัปเดตเวอร์ชัน Java เริ่มต้น

ไม่บังคับ: สำหรับ Ubuntu เวอร์ชันที่กล่าวถึงก่อนหน้านี้ ให้อัปเดต Java เวอร์ชันเริ่มต้นโดยเรียกใช้คำสั่งต่อไปนี้

sudo update-alternatives --config java
sudo update-alternatives --config javac

ติดตั้งแพ็กเกจที่จำเป็นสำหรับ Ubuntu 14.04

เรียกใช้คำสั่งต่อไปนี้เพื่อติดตั้งแพ็กเกจที่จำเป็นสำหรับ Ubuntu 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

$ 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