استخدام "الجهاز الافتراضي المتوافق مع Android" كمنصة تطوير

لاستخدام أجهزة Android الافتراضية (AVD)، يتيح محاكي Android واجهة مستخدم رسومية (GUI) وواجهة سطر أوامر (CLI). يمكنك اختيار سير العمل الأنسب لبيئتك.

إنشاء جهاز محاكاة افتراضي للسيارة (AVD) في AOSP

تشبه عملية إنشاء جهاز AVD للسيارة في AOSP عملية إنشاء صور جهاز AVD للهاتف (على سبيل المثال، aosp_car_x86_64):

  1. لإعداد بيئة التطوير وتحديد فرع، يُرجى الاطّلاع على أدوات التحكّم في المصدر. بعد ذلك، راجِع تنزيل المصدر:
    ANDROID_BRANCH="android12L-release"
    REPO_URL="https://android.googlesource.com/platform/manifest"
    mkdir $ANDROID_BRANCH && cd $ANDROID_BRANCH && repo init -u $REPO_URL -b $ANDROID_BRANCH --partial-clone && repo sync -c -j8
  2. إنشاء صورة جهاز Android الافتراضي:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. شغِّل صورة AVD (أضِف خيارات بدء التشغيل من سطر الأوامر إضافية حسب الحاجة):
    emulator &

    مثلاً:

    الشكل 1. شاشة Android Virtual Emulator

    ملاحظات حول هذه العملية:

    • بما أنّ عملية الإنشاء هي نفسها المطلوبة لإنشاء نظام Android لجهاز فعلي، يجب الانتظار بعض الوقت لتنزيل المصدر ثم إنشائه.
    • للعمل على فروع أخرى، اضبط $ANDROID_BRANCH على فرع/علامة آخر.
    • يتم إنشاء صور الأجهزة الافتراضية لنظام التشغيل Android، مثل system.img، في $ANDROID_PRODUCT_OUT. لمزيد من المعلومات عن الصور الرئيسية، يُرجى الاطّلاع على دليل نظام AVD.
    • راجِع ملف README للتعرّف على كيفية استخدام برامج المحاكي الثنائية المجمَّعة مسبقًا في بنية Android لتشغيل المحاكي.

إنشاء جهاز محاكاة افتراضي للسيارة

تتشابه عملية إضافة جهاز محاكاة افتراضي جديد للسيارة إلى حد كبير مع عملية إضافة جهاز جديد. على سبيل المثال، يؤدي 1660554 إلى إنشاء avd_car AVD جديد.

لإنشاء جهاز محاكاة افتراضي للسيارة (AVD)، اتّبِع الخطوات التالية:

  1. أنشِئ شركة ومجلد جهاز حسب الحاجة. يستخدم هذا المثال $ANDROID_BUILD_TOP/device/google_car/avd_car.
  2. أنشئ ملف makefile الخاص بالمنتج، avd_car.mk، الذي يحدّد كيفية إنشاء المحاكي.
  3. أنشئ مجلدًا على الجهاز، avd_car_device، يحتوي على BoardConfig.mk وsource.properties.
  4. أضِف الخيار الجديد makefile والخيار الجديد lunch إلى AndroidProducts.mk.
  5. لإنشاء avd_car AVD الجديد وتشغيله، اتّبِع الخطوات التالية:
    . build/envsetup.sh && lunch acar-userdebug && m -j32 && emulator &
أنت الآن جاهز لإنشاء نماذج أولية لمعظم ميزات واجهة الجهاز البشري والتطبيق على جهاز AVD الجديد.

تعبئة ملف ZIP لصورة جهاز Android الافتراضي

يمكنك حزم جهاز AVD ومشاركته مع الآخرين أو استخدامه على جهاز كمبيوتر آخر. استخدِم emu_img_zip.mk لإنشاء ملف ZIP لصورة المحاكي:

  1. بعد إنشاء الجهاز الافتراضي الذي يعمل بنظام التشغيل Android، اضبط emu_img_zip كهدف:
    m emu_img_zip
  2. يتم إنشاء ملف ZIP لصورة المحاكي AVD، والذي يبدأ بالبادئة sdk-repo-linux-system-images، في المجلد المسمّى $ANDROID_PRODUCT_OUT.

إنشاء نواة جهاز Android الافتراضي (AVD)

تشبه نواة AVD نِوى Android الأخرى من حيث أنّها جميعًا صور مُنشأة مسبقًا. في العادة، يمكنك استخدام صور kernel القياسية المعدّة مسبقًا الخاصة بـ Goldfish كما هي من كل إصدار من إصدارات Android.

لتجربة تغييرات في النواة، اتّبِع الخطوات التالية:

  1. نفِّذ سلسلة التعليمات التالية:
    mkdir goldfish-kernel-54
    cd goldfish-kernel-54
    repo init -u https://android.googlesource.com/kernel/manifest -b
    common-android11-5.4
    repo sync
    BUILD_CONFIG=common/build.config.gki.x86_64 build/build.sh
    BUILD_CONFIG=common-modules/virtual-device/build.config.goldfish.x86_64
    build/build.sh
    ls -l ./out/android11-5.4/dist/
  2. استبدِل ملف kernel الثنائي في قاعدة الرموز البرمجية وفقًا لملف AVD makefile. على سبيل المثال، device/generic/goldfish/board/emu64x/details.mk يتضمّن device/generic/goldfish/board/kernel/x86_64.mk.

يقع رمز النواة والإعداد على النحو التالي:

اسم القيمة
Branch common-android11-5.4 (مستخدَم في Android 11)
البيان kernel/manifest/common-android11-5.4
common-modules/virtual-device kernel/common-modules/virtual-device/android11-5.4
فرقعة kernel/common/android11-5.4

إنشاء ملف جهاز جديد

للسماح للمستخدمين بإنشاء جهاز افتراضي Android محدّد في "أداة إدارة الأجهزة الافتراضية" في Android Studio، راجِع إنشاء الأجهزة الافتراضية وإدارتها. يمكن لمصنّعي الأجهزة تحديد مواصفات الأجهزة الخاصة بهم، مثل حجم الشاشة وعدد النقاط لكل بوصة، من خلال استخدام ملف devices.xml مضمّن في صورة المحاكي.

  • على سبيل المثال، اطّلِع على ملفات تعريف أجهزة السيارات في automotive.xml.
  • بالنسبة إلى تطوير واجهات الجهاز البشري أو إنشاء نماذج أولية لها، يمكن إضافة أجهزة متعددة إلى الملف لصورة AVD نفسها.
  • أدرِج الملف في ملف ZIP الخاص بصورة OEM AVD في المجلد [ABI]. على سبيل المثال، x86_64.
  • يمكن لمصنّعي الأجهزة أيضًا إنشاء مظهر محاكي. على سبيل المثال، لتحديد أزرار أجهزة إضافية لتوفير تجربة مستخدم أكثر دقة. لا يفيد ذلك في سير عمل المطوّرين فحسب، بل أيضًا في مهام أخرى، مثل البحث في تجربة المستخدم ومراجعتها.

إنشاء ملف XML لصورة الجهاز الافتراضي لنظام التشغيل Android

يمكن لمصنّعي الأجهزة إنشاء ملف XML لصورة جهاز Android الافتراضي (AVD) كي يتمكّن "استوديو Android" من تنزيله.

  • على سبيل المثال، اطّلِع على ملف XML لصورة جهاز Android الافتراضي على نظام التشغيل Android Automotive، sys-img2-1.xml.
  • يمكن لمصنّعي الأجهزة تحديد اتفاقية ترخيص خاصة بهم بشأن "جهاز Android الافتراضي" (AVD) للمستخدمين المستهدَفين (باستخدام نظام الثقة)، مع ترخيص "محاكي Android". يحصل Android Studio على موافقة المستخدم عند تضمين هذا الترخيص.

لإنشاء الصورة، اتّبِع الخطوات التالية:

  1. جهِّز ملف ZIP لصورة جهاز Android الافتراضي.
  2. فك ضغط ${ANDROID_PRODUCT_OUT}/sdk-repo-linux-system-images-*.zip
  3. أضِف devices.xml إلى المجلد x86_64، ثم اضغط الملف في ملف zip. على سبيل المثال، oem_avd_img_x86_64.zip.
  4. تحديث oem-sys-img2-1.xml
  5. عدِّل اسم ملف ZIP وحجمه وshasum (يتم توفير نماذج ملفات XML في tools).

على سبيل المثال، لاستضافة الجهاز الافتراضي Android على Cloud Storage من Google، راجِع إنشاء حِزم تخزين.

لتحميل AVD وإتاحتها للجميع، يُرجى الاطّلاع على إتاحة البيانات للجميع:

BUCKET_NAME="aaos-avd"
gsutil mb gs://$BUCKET_NAME
gsutil cp oem_avd_img_x86_64.zip gs://$BUCKET_NAME
gsutil cp oem-sys-img2-1.xml gs://$BUCKET_NAME
gsutil iam ch allUsers:objectViewer gs://$BUCKET_NAME

يكون تنسيق عنوان URL الخاص بإضافة حزمة تطوير البرامج (SDK) لصورة المحاكي AVD على النحو التالي: https://storage.googleapis.com/$BUCKET_NAME/oem-sys-img2-1.xml. على سبيل المثال، إذا كان BUCKET_NAME هو aaos-avd، سيكون عنوان URL هو: https://storage.googleapis.com/aaos-avd/oem-sys-img2-1.xml.

مشاركة صورة جهاز افتراضي يعمل بنظام التشغيل Android مع مستخدمي "استوديو Android"

لكي يتمكّن المستخدمون من تنزيل صور "الجهاز الافتراضي لنظام التشغيل Android" واستخدامها من خلال "استوديو Android"، يمكنك توفير ملف XML لإضافة حزمة تطوير البرامج (SDK). لمزيد من التفاصيل، يُرجى الاطّلاع على مقالة تحديث بيئة التطوير المتكاملة وأدوات حزمة تطوير البرامج (SDK).

لتنزيل محاكي Android الظاهري من الشبكة، اتّبِع الخطوات التالية:

  1. استضافة ملف ZIP للصور وملفات XML على خادم
  2. قدِّم عنوان URL للمستخدمين المستهدَفين.
  3. (اختياري) يمكنك حصر الوصول حسب اسم المستخدم وكلمة المرور.

بدلاً من ذلك، لتسريع عملية التطوير، نزِّل محاكي Android إلى دليل محلي:

  1. احفظ ملفات XML وجميع العناصر المحدّدة في ملف XML في مجلد (على سبيل المثال، جميع ملفات ZIP الخاصة بصور المحاكي) باسم ADDON_DIR.
  2. حدِّد عنوان URL على أنّه file://$ADDON_DIR/oem-sys-img2-1.xml.