הקמת סביבת בנייה

חלק זה מתאר כיצד להגדיר את סביבת העבודה המקומית שלך לבניית קבצי המקור של Android. עליך להשתמש ב- Linux; אין תמיכה בבנייה תחת MacOS או Windows. זכור את השינוי החשוב אל /usr/bin/python בינארי גם כן.

לסקירה כללית של תהליך קוד ביקורת וקוד-עדכון כולו, לראות חיים של תיקון .

בחירת סניף

כמה דרישות לסביבת הבנייה נקבעות על ידי הגרסה של קוד המקור שאתה מתכנן לאסוף. לקבלת רשימה מלאה של סניפים זמינים, לראות מספרי בנה . אתה יכול גם לבחור להוריד ולבנות את קוד המקור האחרון (נקרא master ), ובמקרה כזה אתה פשוט להשמיט את המפרט סניף כשאתה לאתחל את מאגר נתון.

לאחר בחירת ענף, בצע את ההוראות המתאימות להלן כדי להגדיר את סביבת הבנייה שלך.

הקמת סביבת בניית לינוקס

הוראות אלו חלות על כל הענפים, כולל master .

בניית האנדרואיד נבדקת באופן שגרתי בבית ב- Ubuntu LTS (14.04) ובדיקות Debian. רוב ההפצות האחרות צריכות להיות זמינות בכלי הבנייה הנדרשים.

עבור Gingerbread (2.3.x) והגירסות גבוהות, כוללים master הסניף, סביבה 64 סיבית נדרשת. ניתן לאסוף גרסאות ישנות יותר במערכות 32 סיביות.

התקנת חבילות נדרשות (אובונטו 18.04)

אתה צריך גרסת 64 סיביות של אובונטו.

sudo apt-get install git-core gnupg flex bison build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z1-dev libgl1-mesa-dev libxml2-utils xsltproc unzip fontconfig

התקנת חבילות נדרשות (אובונטו 14.04)

אתה צריך גירסת 64 סיביות של אובונטו (מומלץ 14.04).

sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl zlib1g-dev gcc-multilib g++-multilib libc6-dev-i386 libncurses5 lib32ncurses5-dev x11proto-core-dev libx11-dev lib32z-dev libgl1-mesa-dev libxml2-utils xsltproc unzip

התקנת חבילות נדרשות (אובונטו 12.04)

תוכל להשתמש באובונטו 12.04 לבניית גרסאות ישנות יותר של אנדרואיד. 12.04 גרסה נתמכת לא על master או הגרסאות האחרונות.

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 g++-multilib 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

התקנת חבילות נדרשות (אובונטו 10.04-11.10)

בנייה על אובונטו 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 g++-multilib mingw32 tofrodos python-markdown libxml2-utils xsltproc

באובונטו 10.10:

sudo ln -s /usr/lib32/mesa/libGL.so.1 /usr/lib32/mesa/libGL.so

באובונטו 11.10:

sudo apt-get install libx11-dev:i386

הגדרת גישה ל- USB

התקן סט מחדל מתוחזק הקהילה של udev הכללים עבור כל מכשירי אנדרואיד על ידי ביצוע ההוראות כדי להגדיר מכשיר לפיתוח .

שימוש בספריית פלט נפרדת

כברירת מחדל, את הפלט של כול מבנה מאוחסן out/ בתיקייה של העץ התאמת המקור.

במכונות מסוימות עם התקני אחסון מרובים, הבנייה מהירה יותר בעת אחסון קבצי המקור והפלט בנפחים נפרדים. לקבלת ביצועים נוספים, ניתן לאחסן את הפלט במערכת קבצים המותאמת למהירות במקום לחוסן קריסה, מכיוון שניתן ליצור מחדש את כל הקבצים אם מערכת הקבצים פגומה.

כדי להגדיר זאת, לייצא את OUT_DIR_COMMON_BASE משתנה כדי להצביע על המיקום שבו ספריות פלט שלך יישמרו.

export OUT_DIR_COMMON_BASE=<path-to-your-out-directory>

ספריית הפלט של כל עץ מקור נפרד נקראת על שם הספרייה המחזיקה את עץ המקור. למשל, אם יש לך עצי מקור /source/master1 ו /source/master2 ואם OUT_DIR_COMMON_BASE מוגדר /output , ספריות הפלט הם /output/master1 ו /output/master2 .

הימנע מאחסון עצי מקור מרובים בספריות בעלות אותו שם, שכן עצי המקור היו משתפים בסופו של דבר ספריית פלט, עם תוצאות בלתי צפויות. זו נתמכת רק על Jelly Bean (4.1) ומעלה, כולל master הסניף.

הבא: הורד את המקור

סביבת הבנייה שלך טובה לביצוע! המשך הורדת המקור .