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

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

قم بتشغيل AOSP Car AVD باستخدام مُصمم مسبقًا

للتشغيل والاختبار سريعًا باستخدام AOSP Car AVD الذي تم إنشاؤه مسبقًا، استخدم برنامجًا نصيًا مفتوح المصدر لتنزيل إصدار المحاكي وتشغيله من ci.android.com . تم اختبار البرنامج النصي على نظامي التشغيل MacOS وLinux.

ستحتاج إلى Curl لاستخدام هذا البرنامج النصي.

لتشغيل البرنامج النصي:

  1. انسخ محتويات البرنامج النصي launch_emu.sh إلى ملفك المحلي، على افتراض أنك تستخدم launch_emu.sh كاسم للملف المحلي.
  2. اجعل البرنامج النصي المحلي الخاص بك قابلاً للتنفيذ. على سبيل المثال، قم بتشغيل chmod +x ./launch_emu.sh .
  3. تحقق من الخيارات المتاحة عن طريق تشغيل البرنامج النصي باستخدام ./launch_emu.sh -h .
  4. على ci.android.com ، انتقل إلى فرع aosp-main-throttled وحدد إصدارًا حديثًا يكون فيه sdk_car_x86_64 باللون الأخضر. على سبيل المثال، 11370359. إذا كنت لا ترى معلومات الإصدار، فقم بتسجيل الخروج من حسابك في Google وحاول مرة أخرى.
  5. قم بتنزيل وتثبيت الملفات الثنائية ذات الصلة بالمحاكي باستخدام معرف البنية. على سبيل المثال، ./launch_emu.sh -i -a 11370359 .
  6. بعد ذلك، يمكنك استخدام ./launch_emu.sh لتشغيل المحاكي الذي تم تنزيله وتثبيته (لا تستخدم الخيارين -i أو -a ).
  7. لتنزيل معرف إصدار آخر وتثبيته، قم بتشغيل ./launch_emu.sh -c لتنظيف مساحة العمل الخاصة بك ثم كرر الخطوة 4 والخطوة 5 أعلاه.

لتحديد خيارات خيارات بدء تشغيل سطر الأوامر لمحاكي Android عند تشغيل المحاكي، استخدم الخيار -v . على سبيل المثال:

  ./launch_emu.sh -v “-cores 4 -memory 6144 -no-snapshot"

قم ببناء AOSP Car AVD

تشبه عملية إنشاء AOSP Car AVD عملية إنشاء صور 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. قم ببناء صورة AVD:
    . build/envsetup.sh && lunch sdk_car_x86_64-userdebug && m -j32
  3. قم بتشغيل صورة AVD (أضف خيارات إضافية لبدء تشغيل سطر الأوامر حسب الحاجة):
    emulator &

    على سبيل المثال:

    الشكل 1. شاشة محاكي Android الافتراضي

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

    • نظرًا لأن عملية الإنشاء هي نفسها المطلوبة لإنشاء 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. قم بإنشاء ملف تعريف المنتج، 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.

لتجربة تغييرات النواة:

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

يوجد رمز النواة والتكوين على النحو التالي:

غرض قيمة
فرع 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 .
  • يمكن لصانعي الأجهزة أيضًا إنشاء غلاف محاكي . على سبيل المثال، لتحديد أزرار الأجهزة الإضافية للحصول على دقة أعلى لتجربة المستخدم. وهذا ليس مفيدًا فقط لسير عمل المطورين، ولكن أيضًا للمهام الأخرى مثل البحث والمراجعة في تجربة المستخدم.

قم بإنشاء ملف XML لصورة AVD

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

  • على سبيل المثال، راجع ملف AAOS AVD image XML، 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. قم بتحديث اسم الملف المضغوط وحجمه و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 image 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 المضغوطة) المسمى ADDON_DIR .
  2. حدد عنوان URL file://$ADDON_DIR/oem-sys-img2-1.xml .