این بخش نحوه تنظیم محیط کاری محلی خود را برای ساخت فایل های منبع اندروید توضیح می دهد. شما باید از لینوکس استفاده کنید. ساخت تحت MacOS یا Windows پشتیبانی نمی شود. تغییر مهم در باینری /usr/bin/python
را نیز در نظر داشته باشید.
برای یک نمای کلی از کل فرآیند بررسی کد و بهروزرسانی کد، به Life of a Patch مراجعه کنید.
انتخاب شعبه
برخی از الزامات برای محیط ساخت توسط نسخه کد منبعی که قصد دارید کامپایل کنید تعیین می شود. برای فهرست کامل شاخههای موجود، به Build Numbers مراجعه کنید. همچنین میتوانید آخرین کد منبع (به نام master
) را دانلود و بسازید، در این صورت وقتی مخزن را مقداردهی میکنید، به سادگی مشخصات شاخه را حذف میکنید.
پس از انتخاب شعبه، دستورالعمل های زیر را برای تنظیم محیط ساخت خود دنبال کنید.
راه اندازی یک محیط ساخت لینوکس
این دستورالعمل ها برای همه شاخه ها از جمله master
اعمال می شود.
بیلد اندروید به طور معمول در خانه بر روی Ubuntu LTS (14.04) و تست دبیان آزمایش می شود. اکثر توزیع های دیگر باید ابزارهای ساخت مورد نیاز را در دسترس داشته باشند.
برای 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
حفظ شده توسط انجمن را برای همه دستگاههای 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/master1
و /source/master2
و اگر OUT_DIR_COMMON_BASE
تنظیم شده است /output
، دایرکتوری /output/master1
و /output/master2
.
اجتناب از داشتن درختان منبع های متعدد ذخیره شده در دایرکتوری که به همین نام، به عنوان درختان منبع را تا پایان به اشتراک گذاری یک دایرکتوری خروجی، با نتایج غیر قابل پیش بینی. این فقط در ژله باقلا سبز (4.1) پشتیبانی و بالاتر، از جمله master
شعبه است.
بعدی: دانلود منبع
محیط زیست ساخته شما خوب رفتن است! اقدام به دانلود منبع .