يجب تفسير الكلمات الأساسية MUST وMUST NOT وSHOULD وSTRONGLY RECOMMENDED في هذه الصفحة على النحو الموضّح في RFC 2119.
نظام الضيف (صورة الجهاز الظاهري)
تنطبق المتطلبات الواردة في هذا القسم على نظام الضيف.
الذاكرة
يجب أن يوفّر النظام ذاكرة بسعة 2 غيغابايت على الأقل لكل جهاز ظاهري.
واجهات التطبيق الثنائية
عمليات تنفيذ الأجهزة:
- يجب أن تكون متوافقة مع واحدة أو أكثر من واجهات التطبيق الثنائية (ABI) المحدّدة في حزمة تطوير التطبيقات الأصلية (NDK) لنظام Android.
- يجب أن تستخدم واجهة التطبيق الثنائية نفسها في Android NDK لجميع صور الأجهزة الظاهرية على الجهاز نفسه.
- يجب أن تكون متوافقة على مستوى المصدر (على سبيل المثال، متوافقة على مستوى ملفات الرأس) ومتوافقة على مستوى الملفات الثنائية (بالنسبة إلى واجهة التطبيق الثنائية) مع كل مكتبة مطلوبة في القائمة التالية.
يجب أن تتيح جميع المكتبات التالية لتطبيقات المركبات المحدّدة بالبرامج (SDV)، والتي توفّر واجهات برمجة تطبيقات أصلية:
-
libc(مكتبة C) -
libdl(الرابط الديناميكي) -
libdrm.so(مكتبة مساحة المستخدم في Direct Rendering Manager) -
libgbm.so(إدارة المخزن المؤقت العامة) -
libEGL.so(إدارة سطح OpenGL الأصلي) -
libGLESv1_CM.so(OpenGL ES 1.x) -
libGLESv2.so(OpenGL ES 2.0) -
libGLESv3.so(OpenGL ES 3.x) -
liblog(تسجيل الأحداث في Android) -
libtinyalsav2.so(تسجيل الصوت وتشغيله) -
libvulkan.so(Vulkan)
-
يجب عدم إضافة الدوال العلنية للمكتبات الأصلية السابقة أو إزالتها.
يجب تصدير جميع رموز الدوال في OpenGL ES 3.1 وAndroid Extension Pack، كما هو محدّد في حزمة تطوير التطبيقات الأصلية (NDK)، من خلال مكتبة libGLESv3.so. يُرجى العِلم أنّه على الرغم من وجوب توفّر جميع الرموز، يصف OpenGL ES بمزيد من التفصيل متطلبات توفّر التنفيذ الكامل لكل دالة مقابلة.
يجب تصدير رموز الدوال الأساسية في Vulkan 1.1، بالإضافة إلى الإضافات
VK_KHR_surfaceوVK_KHR_swapchainوVK_KHR_maintenance1وVK_KHR_get_physical_device_properties2من خلال مكتبةlibvulkan.so. يُرجى العِلم أنّه على الرغم من وجوب توفّر جميع الرموز، يصف Vulkan بمزيد من التفصيل متطلبات توفّر التنفيذ الكامل لكل دالة مقابلة.يجب إنشاء النظام باستخدام رمز المصدر وملفات الرأس المتوفّرة في مشروع Android مفتوح المصدر.
الرسومات
يجب أن يستخدم النظام virtio-gpu للرسومات المسرَّعة على الجهاز. يجب أن يستخدم برنامج التشغيل من جهة الضيف gfxstream للعرض.
الإدخال
يجب أن يتضمّن نظام الضيف إمكانية معالجة أحداث الإدخال التي يتم إعادة توجيهها من نظام المضيف باستخدام virtio-input.
OpenGL ES
عمليات تنفيذ الأجهزة:
- يجب تحديد إصدارات OpenGL ES المتوافقة (1.1 و2.0 و3.0 و3.1 و3.2) بشكلٍ صحيح من خلال واجهات برمجة التطبيقات الأصلية.
- يجب أن تتضمّن إمكانية معالجة جميع واجهات برمجة التطبيقات الأصلية المقابلة لكل إصدار من OpenGL ES متوافق.
- يجب أن تتوافق مع كلّ من OpenGL ES 1.1 و2.0.
- يُنصح بشدة أن تتوافق مع OpenGL ES 3.1.
- يجب أن تتوافق مع OpenGL ES 3.2.
- يجب أن تُبلغ عن أي إضافات أخرى من OpenGL ES تم تنفيذها باستخدام واجهات برمجة التطبيقات المُدارة وواجهات برمجة التطبيقات الأصلية، ويجب ألا تُبلغ عن سلاسل الإضافات التي لا تتوافق معها.
- يجب أن تتوافق مع الإضافات التالية:
EGL_EXT_image_dma_buf_importEGL_EXT_image_dma_buf_import_modifiersEGL_KHR_fence_syncEGL_KHR_image_baseEGL_KHR_wait_syncGL_OES_EGL_image
يُنصح بشدة أن تنفّذ الأجهزة OpenGL ES باستخدام مكتبة ANGLE مع واجهة Vulkan الخلفية.
Vulkan
عمليات تنفيذ الأجهزة:
- يُنصح بشدة أن تتضمّن إمكانية معالجة Vulkan 1.3.
- يجب ألا تتوافق مع إصدار مختلف من Vulkan (أي يجب أن يكون الجزء المختلف من الإصدار الأساسي في Vulkan صفرًا).
- يجب أن تتوافق مع الإضافات التالية:
VK_ANDROID_external_memory_android_hardware_bufferVK_EXT_external_memory_dma_bufVK_EXT_queue_family_foreignVK_KHR_external_memory_fdVK_KHR_external_semaphore_fd
التوافق مع الوسائط المتعددة
يجب أن تسمح عمليات تنفيذ الأجهزة بتشغيل محتوى صوتي غير مُعالَج بالخصائص التالية:
- تنسيقات المصدر: Linear PCM، 16 بت، 8 بت، float
- القنوات: أحادية، stereo، إعدادات صالحة لقنوات متعدّدة تصل إلى ثماني قنوات
- معدّلات البيانات في الملف الصوتي (بالهرتز):
- 8000 و11025 و16000 و22050 و24000 و32000 و44100 و48000 في إعدادات القنوات المُدرَجة سابقًا
- 96000 في القنوات الأحادية وstereo
يجب أن تسمح عمليات تنفيذ الأجهزة بتسجيل محتوى صوتي غير مُعالَج. يجب أن تتوافق عمليات تنفيذ الأجهزة مع الخصائص التالية على الأقل:
- التنسيق: Linear PCM، 16 بت
- معدّلات البيانات في الملف الصوتي: 8000 و11025 و16000 و44100 و48000 هرتز
- القنوات: أحادية
يجب أن تسمح عمليات تنفيذ الأجهزة بتسجيل محتوى صوتي غير مُعالَج بالخصائص التالية:
- التنسيق: Linear PCM، 16 بت و24 بت
- معدّلات البيانات في الملف الصوتي: 8000 و11025 و16000 و22050 و24000 و32000 و44100 و48000 هرتز
- القنوات: عدد القنوات يساوي عدد الميكروفونات على الجهاز
يجب أن توفّر عمليات تنفيذ الأجهزة إمكانية تشغيل الصوت وتسجيله من خلال واجهة برمجة التطبيقات
libtinyalsav2.so، باستخدام جهازvirtio-soundللوصول إلى الجهاز، ويجب أن تتوافق مع واجهة برمجة التطبيقات ALSA.يجب أن تتوافق برامج ترميز الفيديو مع تنسيق ألوان واحد على الأقل من تنسيقات YUV420 8:8:8 المسطّحة أو شبه المسطّحة.
يجب أن تتوافق برامج ترميز الفيديو مع برنامج ترميز H.264 AVC.
يجب أن تتوافق عمليات تنفيذ الأجهزة مع الملف الشخصي الرئيسي H.264 المستوى 3.1 والملف الشخصي للمرجع. إنّ إمكانية معالجة ترتيب الشرائح العشوائي (ASO) وترتيب الوحدات الكلية المرن (FMO) والشرائح الزائدة (RS) اختيارية.
برامج ترميز الفيديو:
- يجب أن تتوافق مع ملفات تعريف ترميز الفيديو بالدقة العادية (SD) في الجدول التالي.
يُنصح أن تتوافق مع ملفات تعريف ترميز الفيديو العالي الدقة (HD) كما هو موضّح في الجدول التالي.
الدقة العادية (جودة منخفضة) الدقة العادية (جودة عالية) الدقة العالية 720p الدقة العالية 1080p درجة دقة الفيديو 240 × 320 بكسل 480 × 720 بكسل 720 × 1280 بكسل 1080 × 1920 بكسل عدد اللقطات في الثانية للفيديو 20 لقطة في الثانية 30 لقطة في الثانية 30 لقطة في الثانية 30 لقطة في الثانية معدّل نقل بيانات الفيديو 384 كيلوبت في الثانية 2 ميغابت في الثانية 4 ميغابت في الثانية 10 ميغابت في الثانية
برامج فك ترميز الفيديو:
- يجب أن تتوافق مع ملفات تعريف فك ترميز الفيديو العالي الدقة 720p في الجدول التالي.
يجب أن تتوافق مع ملفات تعريف فك ترميز الفيديو العالي الدقة 1080p في الجدول التالي.
الدقة العادية (جودة منخفضة) الدقة العادية (جودة عالية) الدقة العالية 720p الدقة العالية 1080p درجة دقة الفيديو 240 × 320 بكسل 480 × 720 بكسل 720 × 1280 بكسل 1080 × 1920 بكسل عدد اللقطات في الثانية للفيديو 30 لقطة في الثانية 30 لقطة في الثانية 60 لقطة في الثانية 30 لقطة في الثانية معدّل نقل بيانات الفيديو 800 كيلوبت في الثانية 2 ميغابت في الثانية 8 ميغابت في الثانية 20 ميغابت في الثانية
يجب أن توفّر عمليات تنفيذ الأجهزة إمكانية معالجة برامج ترميز الوسائط باستخدام Video4Linux API.
يجب أن توفّر عمليات تنفيذ الأجهزة إمكانية الوصول إلى برنامج فك ترميز الفيديو على الجهاز باستخدام Video4Linux API.
يجب أن تتوافق جميع برامج ترميز الفيديو والصور المسرَّعة على الجهاز مع ترميز اللقطات من الكاميرات على الجهاز. يجب أن توفّر عمليات تنفيذ الأجهزة إمكانية الوصول إلى الجهاز لترميز الفيديو وفك ترميزه من خلال
virtio-media.يجب أن توفّر عمليات تنفيذ الأجهزة إمكانية الوصول إلى كاميرا الفيديو باستخدام Video4Linux API.
نظام المضيف (برنامج الإشراف والأجهزة)
تنطبق المتطلبات الواردة في هذا القسم على نظام المضيف وبيئة مراقب الأجهزة الافتراضية.
المحاكاة الافتراضية
- بالإضافة إلى أجهزة
virtioالمطلوبة من خلال الملف الشخصي الأساسي، يجب أن يوفّر نظام المضيف ما يلي:-
virtio-gpu: لوحدة معالجة الرسومات الظاهرية والشاشة -
virtio-input: لإعادة توجيه أحداث الإدخال (على سبيل المثال، اللمس ولوحة المفاتيح) -
virtio-sound: لأجهزة الصوت الظاهرية -
virtio-videoأوvirtio-media: لأجهزة برامج ترميز الفيديو الظاهرية
-
الإدخال
- يجب أن يتوافق الجهاز مع أجهزة الإدخال وأن يعيد توجيه الأحداث إلى أنظمة الضيف باستخدام
virtio-input. يجب أن يتوافق الجهاز مع إدخالات المؤشر والزر ووحدة التحكّم الدوّارة.