جهاز Android الافتراضي كنظام أساسي للتطوير

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

  • إنشاء الأجهزة الافتراضية وإدارتها إنّ واجهة المستخدم الرسومية هي أداة مباشرة توفّرها معظم شركات تطوير التطبيقات ومستخدميها.
  • بدء المحاكي من سطر الأوامر يقدّم طريقة مرنة للمستخدمين المتقدّمين وعمليات التشغيل الآلي. على سبيل المثال، لاستخدام أجهزة افتراضية متعددة لنظام التشغيل Android أو لإعداد الاختبار المستمر والدمج المستمر. للبدء، يمكنك الاطّلاع على الأمثلة في الأدوات).

تشغيل AVD لنظام التشغيل AOSP Car باستخدام إصدار مُعدّ مسبقًا

لبدء الاختبار بسرعة باستخدام 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

تشبه عملية إنشاء جهاز افتراضي لنظام التشغيل AOSP Car عملية إنشاء صور أجهزة افتراضية لنظام التشغيل 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 Virtual Emulator

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

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

إنشاء تجربة افتراضية للسيارة

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

لإنشاء بيئة افتراضية للسيارة:

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

حزم ملف zip لصورة AVD

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

  1. بعد إنشاء AVD، اجعل emu_img_zip هو الهدف:
    m emu_img_zip
  2. يتم إنشاء ملف zip لصورة AVD الذي يبدأ بالبادئة sdk-repo-linux-system-images في المجلد الذي يحمل الاسم $ANDROID_PRODUCT_OUT.

إنشاء نواة AVD

تشبه نوى AVD نوى Android الأخرى من حيث أنّها جميعًا صور مُنشأة مسبقًا. يمكنك عادةً استخدام الصور المُنشأة مسبقًا لنظام التشغيل goldfish kernel العادية كما هي من كل إصدار من إصدارات 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 makefile. على سبيل المثال، يحتوي العنوان x86_64-vendor.mk على x86_64-kernel.mk.

يمكن العثور على رمز وإعدادات kernel على النحو التالي:

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

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

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

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

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

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

  1. حضِّر ملفًا مضغوطًا لصورة AVD.
  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).

على سبيل المثال، لاستضافة AVD على 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.

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

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

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

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

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

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