قد يستخدم Android Q + واجهة برمجة تطبيقات Vulkan Graphics لتقديم واجهة المستخدم

من المقرر أن يصدر الإصدار الرئيسي التالي من Android ، Android 9 ، الشهر المقبل لعدة أجهزة. على عكس Android Oreo حيث كانت التحسينات الرئيسية في الغالب تحت غطاء محرك السيارة ، يوفر Android P المزيد من الميزات التي تواجه المستخدم مثل واجهة المستخدم التي تم تجديدها وإيماءات التنقل والرفاهية الرقمية مع الاستمرار في العمل على Project Treble. لكن من وراء الكواليس ، جددت Google كيفية عمل عرض الرسومات على نظام Android. في Android Oreo ، بدأت Google في اختبار الواجهة الخلفية المعجلة بأجهزة OpenGL لمحرك رسومات Skia والذي تم إكماله في Android P. ومع ذلك ، فإن Google لا تتوقف عند هذا الحد ، حيث تخطط الشركة لتنفيذ خلفية Vulkan الخلفية لمحرك رسومات Skia والتي الهبوط في Android Q أو إصدار لاحق.

الدليل على ذلك يأتي من تعليق مقدم من مهندس Google على المصدر المفتوح Chromium Gerrit. يشير التعليق إلى تقرير بالأخطاء حول التنفيذ القادم لواجهة برمجة تطبيقات Vulkan Graphics لمتصفح Google Chrome على Android. ينص التعليق على أنه ، في وقت ما في المستقبل ، "سيكون هناك شرط" للحصول على دعم واجهة برمجة تطبيقات Vulkan لنظام Android WebView عندما يبدأ "إطار عمل [Android] في استخدام Vulkan لـ HWUI."


تقديم الرسومات في Android

للتعرف على الخلفية ، فإن Skia هو محرك رسومات مفتوح المصدر ومحرك رسومات ثنائية الأبعاد يستخدم في Google Chrome و Chrome OS و Android و Flutter وغيرها من المشاريع الكبرى. يعد Skia محركًا لتقديم الرسومات يستخدم في الإصدارات الأولى من Android لتقديم View و Canvas (الفئات المستخدمة لإنشاء واجهة المستخدم ورسمها في معظم التطبيقات.) قام Android 3.0 Honeycomb باستبدال Skia جزئيًا بـ HWUI ، وهي مكتبة تقوم بتحويل أوامر Canvas إلى أجهزة - أوامر OpenGL المتسارعة ، على الرغم من أن مكتبة الرسومات 2D Skia كانت لا تزال تستخدم في بعض المناطق مثل تنقيط المسار. في موازاة ذلك ، أنشأت Google أيضًا واجهة OpenGL لـ Skia. والنتيجة هي أن بعض مكالمات الرسومات سيتم إجراؤها لمكتبة Skia بينما يذهب البعض الآخر إلى الواجهة الخلفية لبرنامج OpenGL. لتنظيف بنية الرسومات ، قررت Google أن HWUI ستتحدث الآن إلى Skia ، التي تتحدث هي نفسها عن الواجهة الخلفية لبرنامج OpenGL المعجزة بالأجهزة ، للقيام بعرض واجهة المستخدم. والنتيجة هي أن استدعاءات الرسومات لإطار عمل واجهة المستخدم ستتبع مسارًا واحدًا وليس مسارين.

قد يتذكر البعض منكم خيار Developer يسمى "Set GPU Renderer" في معاينات المطور في وقت مبكر من Android 8.0 Oreo. سمح لك خيار المطور هذا بإجبار HWUI على استخدام Skia وخلفية OpenGL المعجلة من قبل الأجهزة باعتبارها عارض GPU لإطار واجهة المستخدم. تمت إزالة خيار المطور لأن هذا السلوك هو الافتراضي الآن.

خيار المطور "ضبط GPU Renderer" في معاينات Android O Developer

التعليمات البرمجية المفككة من libhwui.so في / system / lib تُظهر قيم debug.hwui.renderer وقيمتها الافتراضية

مطابقة رمز C ++ في Android Oreo يُظهر القيمة الافتراضية كـ "skiagl"

property_get المنطق

تتمثل الخطوة التالية التي تتبعها Google لتحسين عرض الرسومات في التبديل من الواجهة الخلفية المعجلة بأجهزة OpenGL إلى الواجهة الخلفية المعجلة بأجهزة Vulkan. إنها خطوة غير متوقعة على الإطلاق وهي تقدم منطقي ، لكن من الجيد أن نرى أن العمل يتم على تحسين تقديم الرسومات على نظام Android. على الرغم من أن هذه الخطوة لن تصلح كل مصدر للتأخر في نظام Android ، إلا أنها يجب أن تقلل من أوقات تقديم الإطار عن طريق تقليل المعالجة التي تقوم بها وحدة المعالجة المركزية. نظرًا لأن هذا العمل مستمر إلى حد كبير (إنه غير مكتمل في Android P) ، نتوقع أن يتم تشغيله باستخدام Android Q أو إصدار Android آخر في المستقبل.


معاينة لاستخدام واجهة برمجة تطبيقات Vulkan Graphics لتقديم واجهة المستخدم

من الممكن بالفعل اختبار خلفية Vulkan لـ Skia على Android P الآن. هناك معلمة تصحيح يمكنك تعيينها لإجبار Android على استخدام خط أنابيب Skia Vulkan. ما عليك سوى إعادة التشغيل بعد إضافة السطر التالي إلى /system/build.prop:

 debug.hwui.renderer=skiavk 

Android P باستخدام خط أنابيب Skia OpenGL

Android P باستخدام خط أنابيب Skia Vulkan

ستؤدي إضافة هذا السطر على جهاز يعمل بنظام Android Oreo إلى حدوث عطل ، لذلك لا نوصي به. على الرغم من أن جهازك سيتم تشغيله باستخدام هذه العلامة على Android P ، إلا أنه في الوقت الحالي عربات التي تجرها الدواب. غالبًا ما يخفق Google Pixel Launcher في تقديم أي خلفيات ، بينما لا يتم تحميل مقاطع الفيديو المتحركة في الإعدادات ، وهناك العديد من مواطن الخلل الرسومية مع شريط الحالة والإشعارات. بخلاف ذلك ، يبدو أن معظم التطبيقات ، حتى مقاطع فيديو YouTube وألعابها مثل Doodle Jump ، يتم تحميلها على ما يرام.

شكراً جزيلاً للمطور المعترف به luca020400 لمساعدته في كتابة هذه المقالة ، وللتوفير على لقطات توضح رمز libhwui.so المفكك ، ولتوفير علامة التصحيح لاختبار الواجهة الخلفية لـ Vulkan.


المصدر 1: Talkin 'Treble: كيف ينتصر مهندسو Android في الحرب على التفتت [ArsTechnica]

المصدر 2: خط أندرويد لرسومات الجرافيك: من الزر إلى Framebuffer [inovex blog]

المصدر 3: صفحة ويب Skia [Google]

المصدر 4: تعليقات رومان غي ، Android Graphics & Kotlin @ Google [Reddit]