إنشاء إصدار Android

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

إعداد بيئة الإصدار

من داخل دليل العمل، شغِّل النص البرمجي envsetup.sh لإعداد بيئة الإنشاء:

source build/envsetup.sh

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

اختيار هدف

قبل إنشاء Android، يجب تحديد هدف لإنشائه. يمثّل الهدف النظام الأساسي المستهدف الذي يتم إنشاء التطبيق له. لتحديد الهدف الذي تريد إنشاءه، استخدِم الأمر lunch متبوعًا بسلسلة تمثّل الهدف. مثلاً:

lunch aosp_cf_x86_64_only_phone-aosp_current-userdebug

من المفترض أن يظهر لك ملخّص للبيئة المستهدَفة وبيئة الإنشاء:

============================================
PLATFORM_VERSION_CODENAME=Baklava
PLATFORM_VERSION=Baklava
TARGET_PRODUCT=aosp_cf_x86_64_only_phone
TARGET_BUILD_VARIANT=userdebug
TARGET_ARCH=x86_64
TARGET_ARCH_VARIANT=silvermont
HOST_OS=linux
HOST_OS_EXTRA=Linux-6.10.11-1rodete2-amd64-x86_64-Debian-GNU/Linux-rodete
HOST_CROSS_OS=windows
BUILD_ID=BP1A.250305.020
OUT_DIR=out
============================================

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

lunch product_name-release_config-build_variant

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

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

    • يشير aosp إلى "منصة Android المفتوحة المصدر".
    • (اختياري) يتم تضمين cf عندما يكون الهدف هو التشغيل داخل محاكي Cuttlefish.
    • البنية والأجهزة (الاسم الرمزي)، مثل x86_64_only_phone أو husky، وهو الاسم الرمزي لهاتف Pixel 8 Pro للاطّلاع على قائمة بالأسماء الرمزية لأجهزة Google، يُرجى الرجوع إلى الأسماء الرمزية للأجهزة.
  • تم ضبط release_config على إعداد إصدار، مثل إعداد إصدار التطوير المسمّى aosp_current. تحدّد إعدادات الإصدار ميزات معيّنة ورموزًا برمجية تقع خلف علامات إطلاق الميزات، ويتم تفعيلها أو إيقافها في إصدار معيّن. لمزيد من المعلومات حول إعدادات الإصدار، اطّلِع على ضبط قيم إطلاق علامات الميزات.

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

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

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

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

للاطّلاع على إعدادات الغداء الحالية، نفِّذ ما يلي:

$ echo "$TARGET_PRODUCT-$TARGET_BUILD_VARIANT"

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

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

m

يظهر ناتج عملية الإنشاء في $OUT_DIR. في حال إنشاء إصدارات مختلفة للاستهداف، سيظهر كل إصدار في $OUT_DIR.

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

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

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

تحديد مشاكل أخطاء الإصدار وحلّها (الإصدار 8.0 أو الإصدارات الأقدم)

إذا كنت بصدد إنشاء الإصدار 8 من AOSP أو إصدار أقدم، قد يتم إيقاف 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
************************************************************

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

  • تعذّر عليك تثبيت حزمة تطوير Java الصحيحة كما هو محدّد في أقسام حزمة تطوير Java ضمن الإعداد لتطوير AOSP (الإصدارات من 2.3 إلى 8.0) .
  • يظهر في مسارك حزمة تطوير برامج Java (JDK) أخرى تم تثبيتها سابقًا. أضِف JDK الصحيح في بداية المسار أو أزِل JDK الذي يسبب المشكلة.