إنشاء بيئة بناء

تنظيم صفحاتك في مجموعات يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.

يصف هذا القسم كيفية إعداد بيئة العمل المحلية الخاصة بك لإنشاء ملفات مصدر Android. يجب عليك استخدام Linux ؛ البناء تحت أي من نظام التشغيل MacOS أو Windows غير مدعوم. ضع في اعتبارك التغيير المهم في /usr/bin/python الثنائي أيضًا.

للحصول على نظرة عامة حول عملية مراجعة التعليمات البرمجية وتحديث التعليمات البرمجية بالكامل ، راجع Life of a Patch .

اختيار الفرع

يتم تحديد بعض متطلبات بيئة الإنشاء من خلال إصدار التعليمات البرمجية المصدر التي تخطط لتجميعها. للحصول على قائمة كاملة بالفروع المتاحة ، راجع أرقام البناء . يمكنك أيضًا اختيار تنزيل وإنشاء أحدث كود مصدر (يسمى master ) ، وفي هذه الحالة يمكنك ببساطة حذف مواصفات الفرع عند تهيئة المستودع.

بعد اختيار الفرع ، اتبع التعليمات المناسبة أدناه لإعداد بيئة البناء الخاصة بك.

إعداد بيئة بناء Linux

تنطبق هذه التعليمات على جميع الفروع ، بما في ذلك master .

يتم اختبار إصدار Android بشكل روتيني في المنزل على Ubuntu LTS (14.04) واختبار Debian. يجب أن تحتوي معظم التوزيعات الأخرى على أدوات البناء المطلوبة المتاحة.

بالنسبة إلى Gingerbread (2.3.x) والإصدارات الأعلى ، بما في ذلك الفرع master ، يلزم وجود بيئة 64 بت. يمكن تجميع الإصدارات الأقدم على أنظمة 32 بت.

تثبيت الحزم المطلوبة (أوبونتو 18.04)

أنت بحاجة إلى إصدار 64 بت من Ubuntu.

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 بت من Ubuntu (يوصى باستخدام 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)

يمكنك استخدام Ubuntu 12.04 لإنشاء إصدارات أقدم من Android. الإصدار 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)

لم يعد البناء على 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 g++-multilib 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/master1 1 و /source/master2 رئيسي 2 وإذا تم ضبط OUT_DIR_COMMON_BASE على /output ، فإن أدلة الإخراج هي /output/master1 و /output/master2 .

تجنب وجود أشجار مصدر متعددة مخزنة في أدلة لها نفس الاسم ، حيث سينتهي الأمر بمشاركة أشجار المصدر في دليل الإخراج ، مع نتائج غير متوقعة. هذا مدعوم فقط في Jelly Bean (4.1) والإصدارات الأحدث ، بما في ذلك الفرع master .

التالي: قم بتنزيل المصدر

بيئة البناء الخاصة بك جيدة للذهاب! انتقل إلى تنزيل المصدر .