تلتزم Google بتعزيز المساواة العرقية للمجتمعات السوداء. أنظر كيف.
ترجمت واجهة Cloud Translation API‏ هذه الصفحة.
Switch to English

بناء الروبوت

اتبع هذه التعليمات لبدء إنشاء Android.

قم بإعداد البيئة

تهيئة البيئة باستخدام البرنامج النصي envsetup.sh :

source build/envsetup.sh

أو

. build/envsetup.sh

اطلع على السيناريو في منصة / بناء / envsetup.sh لأوصاف الأوامر ذات الصلة، بما في ذلك lunch لاختيار أهداف الجهاز و tapas لبناء التطبيقات المفككة، مثل التطبيق TV المرجعية .

ستحتاج إلى إعادة إصدار هذا الأمر بعد كل repo sync لالتقاط أي تغييرات على هذا البرنامج النصي. لاحظ أن استبدال source بـ . (نقطة واحدة) يحفظ بضعة أحرف ، ويتم استخدام النموذج القصير بشكل أكثر شيوعًا في التوثيق.

يقوم البرنامج النصي envsetup.sh باستيراد العديد من الأوامر التي تمكنك من العمل مع شفرة مصدر Android ، بما في ذلك الأوامر المستخدمة في هذا التمرين. فيما يلي بعض الأمثلة على الأوامر الهامة:

  • lunch - lunch product_name - build_variant يختار product_name كمنتج للبناء ، و build_variant كمتغير للبناء ، ويخزن تلك التحديدات في البيئة ليقرأها من خلال الاستدعاءات اللاحقة لـ m وغيرها من الأوامر المشابهة.
  • m - يمتد من أعلى الشجرة. هذا مفيد لأنه يمكنك تشغيل make من داخل الدلائل الفرعية. إذا كان لديك مجموعة متغير البيئة TOP ، فإنه يستخدم ذلك. إذا لم تقم بذلك ، فإنه يبحث عن الشجرة من الدليل الحالي ، محاولًا العثور على الجزء العلوي من الشجرة. يمكنك إما بناء شجرة شفرة المصدر بأكملها عن طريق تشغيل m بدون وسيطات أو بناء أهداف محددة عن طريق تحديد أسمائها.
  • mma - يبني جميع الوحدات في الدليل الحالي وتبعياتها.
  • mmma - يبني جميع الوحدات في الدلائل الموردة ، وتبعياتها.
  • croot - cd إلى أعلى الشجرة.

لرؤية القائمة الكاملة للأوامر المتاحة ، قم بتشغيل:

hmm

اختر هدفًا

اختر الهدف الذي تريد بناءه مع lunch . يمكن تمرير التكوين الدقيق كوسيطة. على سبيل المثال ، يشير الأمر التالي إلى بناء كامل للمحاكي ، مع تمكين جميع التصحيح:

lunch aosp_arm-eng

إذا تشغيل بدون وسائط، lunch يطالبك لاختيار الهدف من القائمة. راجع تحديد تكوين جهاز لتكوينات الإنشاء لكافة الأجهزة الموجودة.

تتخذ جميع أهداف BUILD-BUILDTYPE الشكل BUILD-BUILDTYPE ، حيث BUILD هو اسم رمز يشير إلى مجموعة ميزات معينة. BUILDTYPE هو واحد مما يلي.

Buildtype استعمال
المستعمل وصول محدود؛ مناسبة للإنتاج
رمز المستخدم مثل المستخدم ولكن مع إمكانية الوصول إلى الجذر وتصحيحه ؛ يفضل التصحيح
م تكوين التطوير مع أدوات تصحيح إضافية

يجب أن تتصرف بنية userdebug بنفس طريقة بناء المستخدم ، مع القدرة على تمكين التصحيح الإضافي الذي ينتهك عادةً نموذج الأمان الخاص بالنظام الأساسي. وهذا يجعل بناء المستخدم جيدًا للاختبار من قِبل المستخدم وقدرات تشخيصية أكبر. عند التطوير باستخدام بنية userdebug ، اتبع إرشادات userdebug .

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

لمزيد من المعلومات حول إنشاء الأجهزة الفعلية وتشغيلها ، راجع تشغيل الإصدارات .

بناء الكود

هذا القسم هو ملخص سريع للتأكد من اكتمال الإعداد.

بناء كل شيء مع m . يستطيع m التعامل مع المهام المتوازية بحجة -jN . إذا لم تقدم وسيطة -j ، -j نظام البناء تلقائيًا بتحديد عدد المهام الموازية التي يعتقد أنها مثالية لنظامك.

m

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

  • droid - m droid هو البناء العادي. هذا الهدف هنا لأن الهدف الافتراضي يتطلب اسمًا.
  • all - m all يبني كل شيء يفعله m droid ، بالإضافة إلى كل شيء لا يحتوي على علامة droid . يقوم خادم الإنشاء بتشغيل هذا للتأكد من أن كل شيء موجود في الشجرة ولديه ملف Android.mk يبني.
  • clean - m clean يقوم بحذف كافة ملفات الإخراج والملفات المتوسطة لهذا التكوين. هذا هو نفس rm -rf out/ .

تشغيل m help لمعرفة ما pseudotargets البعض m يقدمها.

شغلها!

يمكنك إما تشغيل جهازك على محاكي أو تشغيله على جهاز. نظرًا لأنك حددت بالفعل هدف الإنشاء مع lunch ، فمن غير المحتمل أن تعمل على هدف مختلف عن الهدف الذي تم إنشاؤه من أجله.

وامض مع fastboot

لفلاش جهاز ، استخدم fastboot ، الذي يجب تضمينه في المسار الخاص بك بعد بناء ناجح. انظر وميض جهاز للحصول على التعليمات.

محاكاة جهاز Android

تتم إضافة المحاكي إلى مسارك تلقائيًا من خلال عملية الإنشاء. لتشغيل المحاكي ، اكتب:

emulator

استكشاف أخطاء البناء الشائعة وإصلاحها

إصدار Java خاطئ

إذا كنت تحاول بناء نسخة من الروبوت وهذا يتعارض مع إصدار جافا، make إحباط مع رسالة مثل:

************************************************************
You are attempting to build with the incorrect version
of java.

Your version is: WRONG_VERSION.
The correct version is: RIGHT_VERSION.

Please follow the machine setup instructions at
    https://source.android.com/source/initializing.html
************************************************************

فيما يلي الأسباب والحلول المحتملة:

  • فشل في تثبيت JDK الصحيح كما هو محدد في متطلبات JDK . تأكد من أنك اتبعت الخطوات في إعداد البيئة واختيار هدف .
  • JDK آخر مثبت مسبقًا يظهر في المسار الخاص بك. قم بتجهيز JDK الصحيح إلى بداية المسار أو قم بإزالة JDK التي بها مشاكل.

Python الإصدار 3

تم إنشاء Repo على وظائف معينة من Python 2.x وهو غير متوافق مع Python 3. لاستخدام Repo ، قم بتثبيت Python 2.x:

apt-get install python

نظام ملفات غير حساس لحالة الأحرف

إذا كنت تبني على نظام ملفات HFS على نظام macOS ، فقد تواجه خطأ مثل:

************************************************************
You are building on a case-insensitive filesystem.
Please move your source tree to a case-sensitive filesystem.
************************************************************

اتبع الإرشادات الموجودة في إنشاء صورة قرص حساسة لحالة الأحرف .

لا يوجد إذن USB

بشكل افتراضي على معظم أنظمة Linux ، لا يمكن للمستخدمين غير المميزين الوصول إلى منافذ USB. إذا رأيت إذنًا تم رفض الإذن ، فاتبع الإرشادات الواردة في تكوين وصول USB .

إذا كان [adb] (adb.md) قيد التشغيل بالفعل ولا يمكنه الاتصال بالجهاز بعد إعداد هذه القواعد ، يمكنك قتله باستخدام adb kill-server . يؤدي هذا الأمر إلى إعادة تشغيل adb مع التكوين الجديد.