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