הגדרה לפיתוח AOSP (2.3 עד 8.0)

בדף הזה מוסבר איך להגדיר פיתוח ב-Android 8.0 או בגרסאות קודמות. במאמר הגדרה לפיתוח AOSP מוסבר איך ליצור גרסאות של Android 9.0 ואילך.

הגדרה לפיתוח ב-AOSP‏ (5.0 עד 8.0)

ב-Android מגרסה 5.0 עד 8.0, כדאי להשתמש ב-Dockerfile שכלול כדי להקל על ההתקנה של כל החבילות הנדרשות.

מערכות הפעלה

בדרך כלל, מערכת Android מבוססת על GNU Linux. אפשר גם ליצור Android במכונה וירטואלית במערכות לא נתמכות כמו Mac OS X.

‫Google ממליצה לבצע את הפיתוח ב-GNU Linux. בדרך כלל, מערכת ה-build של Android מריצה את ART במכונת ה-build כדי לבצע קומפילציה מראש של קובצי DEX של המערכת. ‫ART יכולה לפעול רק ב-Linux, ולכן מערכת ה-build מדלגת על שלב הקומפילציה מראש במערכות הפעלה שאינן Linux, וכתוצאה מכך מתקבל build של 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 ו-Command Line Tools
  • ‫Android 5.x: ‏ Mac OS X v10.8 (Mountain Lion) עם Xcode 4.5.2 וכלי שורת הפקודה

JDK

הגדרה לפיתוח ב-AOSP‏ (2.3 עד 4.4)

בקטע הזה מוסבר איך להגדיר את Android מגרסה 2.3 עד גרסה 4.4.

מערכות הפעלה

בדרך כלל, מערכת Android מבוססת על GNU Linux. אפשר גם ליצור Android במכונה וירטואלית במערכות לא נתמכות כמו Windows.

‫Google ממליצה לבצע את הפיתוח ב-GNU Linux. בדרך כלל, מערכת ה-build של Android מריצה את ART במכונת ה-build כדי לבצע קומפילציה מראש של קובצי DEX של המערכת. ‫ART יכולה לפעול רק ב-Linux, ולכן מערכת ה-build מדלגת על שלב הקומפילציה מראש במערכות הפעלה שאינן Linux, וכתוצאה מכך מתקבל build של 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) ו-Mac OS X v10.5 SDK

‫GNU make

ב-Android 4.1.x עד 4.4 צריך להשתמש ב-GNU make (gmake) 3.82. ב-Android מגרסה 2.3 עד גרסה 4.0.x, צריך לחזור מ-gmake 3.82 כדי למנוע שגיאות ב-Build.

‫Xcode וחבילות אחרות

ב-Mac OS X מגרסה 10.8 ומטה, צריך להתקין את Xcode מאתר המפתחים של אפל. אם אתם לא רשומים כמפתחים של אפל, אתם צריכים ליצור 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 Open Source Project (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. החבילות של Ubuntu 15.04 OpenJDK 8 שימשו בהצלחה עם 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 with SHA256 0f5aba8db39088283b51e00054813063173a4d8809f70033976f83e214ab56c0
    • openjdk-8-jre_8u45-b14-1_amd64.deb with SHA256 9ef76c4562d39432b69baf6c18f199707c5c56a5b4566847df908b7d74e15849
    • openjdk-8-jdk_8u45-b14-1_amd64.deb with SHA256 6e47215cf6205aa829e6a0a64985075bd29d1f428a4006a80c9db371c2fc3c4c
  2. אופציונלי: מאמתים את סכומי הביקורת של הקבצים שהורדו מול מחרוזת SHA256 שמופיעה לצד כל חבילה משלב 1. לדוגמה, באמצעות הכלי sha256sum:

    sha256sum {downloaded.deb file}
    
  3. מתקינים את החבילות:

    sudo apt-get update
    
  4. מריצים את הפקודה dpkg לכל אחד מהקבצים .deb שהורדתם. יכול להיות שיוצגו שגיאות בגלל תלויות חסרות:

    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