إصدار 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_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 التي بها مشاكل.