اتّبِع التعليمات الواردة في هذه الصفحة لإنشاء Android.
إعداد بيئة الإصدار
من داخل دليل العمل، استخدِم نص envsetup.sh
لإعداد
بيئة الإنشاء:
source build/envsetup.sh
يستورد هذا النص البرمجي العديد من الأوامر التي تتيح لك العمل مع ملف رمز المصدر
لنظام التشغيل Android، بما في ذلك الأوامر المستخدَمة في هذه الصفحة. للاطّلاع على مصدر النص البرمجي،
انتقِل إلى
platform/build/envsetup.sh
.
لعرض المساعدة المضمَّنة، اكتب hmm
.
اختيار هدف
قبل إنشاء نظام التشغيل Android، عليك تحديد هدف للإنشاء. يعكس الهدف النظام
الأساسي المستهدف الذي تنشئ من أجله. لتحديد الهدف المطلوب إنشاؤه، استخدِم الأمر lunch
متبوعًا بسلسلة تمثّل الهدف. مثلاً:
lunch aosp_cf_x86_64_phone-trunk_staging-userdebug
من المفترض أن يظهر لك ملخّص عن الهدف وبيئة الإنشاء:
============================================
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
============================================
lunch
تكون السلسلة التي تمثّل الهدف بالشكل التالي:
lunch product_name-release-build_variant
مكونات هذه السلسلة هي:
تمثّل السمة
product_name
اسم المنتج الذي تريد إنشاءه، مثلaosp_cf_x86_64_phone
أوaosp_husky
. يمكن أن يتّبعproduct_name
الخاص بك التنسيق الخاص بجهازك، ولكن التنسيق الذي تستخدمه Google لأجهزة Android يتضمّن المكوّنات التالية:- يشير تطبيق "
aosp
" إلى نظام Android الأساسي المفتوح المصدر. - (اختياري) يتم تضمين
cf
عندما يكون الهدف مخصّصًا للتشغيل داخل محاكي Cuttlefish. - البنية والأجهزة (الاسم الرمزي)، مثل
x86_64_phone
أوhusky
وهو الاسم الرمزي لهاتف Pixel 8 Pro. للحصول على قائمة بالأسماء الرمزية لأجهزة Google، يُرجى الاطّلاع على الأسماء الرمزية للأجهزة.
- يشير تطبيق "
تم ضبط
release
علىtrunk_staging
.يمكن أن يكون الجزء
build_variant
من السلسلة إحدى القيم الثلاث الواردة في الجدول التالي:build_variant
الوصف user
توفِّر صيغة الإصدار هذه إمكانية وصول محدودة إلى الأمان، وهي مناسبة للإصدار العلني. 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 أو الإصدارات الأقدم)
إذا كنت بصدد إنشاء 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 التي تتضمّن مشكلة.