بناء أندرويد

اتبع الإرشادات الموجودة على هذه الصفحة لإنشاء Android.

قم بإعداد بيئة البناء الخاصة بك

من داخل دليل العمل الخاص بك، قم بمصدر البرنامج النصي envsetup.sh لإعداد بيئة البناء الخاصة بك:

$ source build/envsetup.sh

يستورد هذا البرنامج النصي العديد من الأوامر التي تتيح لك العمل مع كود مصدر Android، بما في ذلك الأوامر المستخدمة في هذه الصفحة. لعرض مصدر البرنامج النصي، راجع platform/build/envsetup.sh . لعرض التعليمات المضمنة، اكتب hmm .

اختر هدفا

قبل بناء Android، يجب عليك تحديد هدف للبناء. لتحديد هدفك للبناء، استخدم أمر lunch بالهدف الذي يحدد المنتج المستهدف والبناء:

lunch aosp_cf_x86_64_phone-trunk_staging-userdebug

عرض الهدف الحالي

لرؤية إعدادات الغداء الحالية، قم بتشغيل:

$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"

السلسلة التي تمثل الهدف لها التنسيق التالي:

lunch product_name-release-build_variant

مكونات هذه السلسلة هي:

  • product_name هو اسم المنتج الذي تريد إنشاءه، مثل aosp_cf_x86_64_phone أو aosp_husky . يمكن أن يتبع product_name المحدد التنسيق الخاص بك، ولكن التنسيق الذي تستخدمه Google يحتوي على هذه المكونات:

    • يشير aosp إلى نظام Android مفتوح المصدر.
    • (اختياري) يتم تضمين cf عندما يكون الهدف هو التشغيل داخل محاكي Cuttlefish.
    • البنية والأجهزة، مثل x86_64_phone أو husky (Pixel 8 pro).
  • تم ضبط release على trunk-staging .

  • يمكن أن يكون الجزء build_variant من السلسلة إحدى القيم الثلاث في الجدول التالي:

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

قم ببناء الكود

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

$ m

الناتج الأول الذي يجب أن تراه هو ملخص للبيئة المستهدفة والبناء:

============================================
PLATFORM_VERSION_CODENAME=VanillaIceCream
PLATFORM_VERSION=VanillaIceCream
PRODUCT_INCLUDE_TAGS=com.android.mainline
TARGET_PRODUCT=aosp_arm
TARGET_BUILD_VARIANT=eng
TARGET_ARCH=arm
TARGET_ARCH_VARIANT=armv7-a-neon
TARGET_CPU_VARIANT=generic
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.5.13-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=AOSP.MAIN
OUT_DIR=out
============================================

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

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

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

استكشاف أخطاء البناء وإصلاحها (8.0 أو أقدم)

إذا كنت تقوم بإنشاء AOSP 8 أو إصدار أقدم، فقد يتم إيقاف تشغيل m عندما يواجه مشكلة في إصدار Java لديك. على سبيل المثال، قد تحصل على هذه الرسالة:

************************************************************
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 لإعداد تطوير AOSP (2.3 - 8.0) .
  • هناك JDK آخر تم تثبيته مسبقًا يظهر في المسار الخاص بك. قم بإضافة JDK الصحيح إلى بداية المسار الخاص بك أو قم بإزالة JDK الذي به مشكلة.