جهاز Android الظاهري كمنصة تطوير

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

بناء سيارة AOSP AVD

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

  1. لإعداد بيئة التطوير وتحديد الفرع ، راجع أدوات التحكم في المصدر . ثم راجع تنزيل المصدر :
    ANDROID_BRANCH="android11-qpr2-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. قم ببناء صورة AVD:
    . build/envsetup.sh && lunch aosp_car_x86_64-userdebug && m -j32
  3. قم بتشغيل صورة AVD (قم بإلحاق خيارات بدء تشغيل سطر الأوامر الإضافية حسب الحاجة):
    emulator &

    فمثلا:

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

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

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

إنشاء سيارة AVD

إن إضافة سيارة جديدة AVD يكاد يكون مطابقًا لإضافة جهاز جديد . على سبيل المثال ، يقوم 1660554 بإنشاء avd_car AVD جديد.

لإنشاء سيارة AVD:

  1. قم بإنشاء شركة ومجلد جهاز حسب الحاجة. يستخدم هذا المثال $ANDROID_BUILD_TOP/device/google_car/avd_car .
  2. قم بإنشاء ملف makefile للمنتج ، avd_car.mk ، والذي يحدد كيفية إنشاء AVD.
  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 &
أنت الآن جاهز لوضع نماذج أولية لمعظم ميزات HMI والتطبيقات على جهاز AVD الجديد.

قم بتعبئة ملف مضغوط بتنسيق AVD

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

  1. بعد إنشاء AVD ، اجعل emu_img_zip هو الهدف:
    m emu_img_zip
  2. يتم إنشاء ملف AVD image zip ، مسبوقًا بـ sdk-repo-linux-system-images ، في المجلد المسمى $ANDROID_PRODUCT_OUT .

بناء نواة AVD

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

لتجربة تغييرات kernel:

  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 binary في قاعدة الكود وفقًا لملف AVD makefile. على سبيل المثال ، يتضمن x86_64-vendor.mk x86_64-kernel.mk .

يقع كود kernel والتكوين على النحو التالي:

العنصر قيمة
فرع common-android11-5.4 (يستخدم في Android 11)
قائمة kernel/manifest/common-android11-5.4
الوحدات المشتركة / الجهاز الظاهري kernel/common-modules/virtual-device/android11-5.4
نواة kernel/common/android11-5.4

قم بإنشاء ملف تعريف جهاز جديد

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

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

قم بإنشاء ملف AVD image XML

يمكن لصانعي الأجهزة إنشاء ملف AVD Image XML لـ Android Studio لتنزيله.

  • على سبيل المثال ، راجع ملف XML لصورة AAOS AVD ، sys-img2-1.xml .
  • يمكن لصانعي الأجهزة تحديد اتفاقية ترخيص OEM AVD الخاصة بهم لمستخدميهم المستهدفين (باستخدام نظام الشرف) ، مع ترخيص Android Emulator. يحصل Android Studio على إجماع المستخدم عند تضمين هذا الترخيص.

لإنشاء الصورة:

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

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

لتحميل ملف 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 الإضافي لصورة AVD SDK كما يلي: 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 .

مشاركة صورة AVD مع مستخدمي Android Studio

حتى يتمكن المستخدمون من تنزيل صور AVD واستخدام AVD بواسطة Android Studio ، يمكنك توفير ملف XML الإضافي لـ SDK. للحصول على التفاصيل ، راجع تحديث أدوات IDE و SDK .

لتنزيل AVD من الشبكة:

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

بدلاً من ذلك ، لتسريع التطوير ، قم بتنزيل AVD إلى دليل محلي:

  1. احفظ ملفات XML وجميع العناصر المحددة في ملف XML إلى مجلد (على سبيل المثال ، جميع ملفات AVD بتنسيق zip) باسم ADDON_DIR .
  2. حدد عنوان URL file://$ADDON_DIR/oem-sys-img2-1.xml .