إصدار Android

اتّبِع التعليمات الواردة في هذه الصفحة لإنشاء 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_RELEASE-$TARGET_BUILD_VARIANT"

تحتوي السلسلة التي تمثل الهدف على التنسيق التالي:

lunch product_name-release-build_variant

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

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

    • يشير تطبيق "aosp" إلى نظام Android الأساسي المفتوح المصدر.
    • (اختياري) يتم تضمين cf عندما يكون الهدف المراد تنفيذه ضمن محاكي حبَّار
    • البنية والأجهزة (الاسم الرمزي)، مثل x86_64_phone أو husky وهو الاسم الرمزي لهاتف Pixel 8 Pro. للاطّلاع على قائمة الأسماء الرمزية لـ Google الأجهزة، انظر الأسماء البرمجية للأجهزة:
  • تم ضبط release على trunk_staging.

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

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

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

إنشاء الرمز البرمجي

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

$ 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
============================================

ستظهر نتائج إصدارك في $OUT_DIR. إذا كنت تضع أهدافًا مختلفة، تظهر كل عملية استهداف $OUT_DIR

ينشئ الأمر 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 الذي به مشكلات.