دراسات الحالة
توفّر Instagram وFacebook تشغيلًا فوريًا وتعزّزان تفاعل المستخدمين من خلال Media3 PreloadManager
قراءة لمدة 4 دقائق
في عالم وسائل التواصل الاجتماعي الديناميكي، يمكن جذب انتباه المستخدمين أو فقدانه بسرعة. تُعدّ تطبيقات Meta (Facebook وInstagram) من بين أكبر المنصات الاجتماعية في العالم، وهي تخدم مليارات المستخدمين على مستوى العالم. بالنسبة إلى Meta، لا يقتصر توفير الفيديوهات بسلاسة على مجرد ميزة، بل هو أساس تجربة المستخدم. أصبحت الفيديوهات القصيرة، لا سيما تلك المنشورة على "خلاصة أخبار Facebook" وInstagram Reels، من أهم العوامل التي تحفّز التفاعل. فهي تتيح التعبير الإبداعي عن الذات واستهلاك المحتوى بسرعة، كما تتيح التواصل مع الأشخاص حول العالم وتسلّيهم.
تأخذك مشاركة المدوّنة هذه في رحلة توضّح كيف غيّرت Meta تجربة تشغيل الفيديو لمليارات المستخدمين من خلال توفير تشغيل فوري حقيقي.
فجوة وقت الاستجابة في الفيديوهات القصيرة
تؤدي الفيديوهات القصيرة إلى تفاعلات سريعة جدًا لأنّ المستخدمين يتصفّحون خلاصاتهم بسرعة. إنّ توفير انتقال سلس بين الفيديوهات في خلاصة دائمة التغيّر يفرض تحديات فريدة على التشغيل الفوري. لذلك، نحن بحاجة إلى حلول تتجاوز التخزين المؤقت التقليدي على القرص واستراتيجيات التشغيل التفاعلي العادية.
المسار المستقبلي باستخدام Media3 PreloadManager
لمواكبة التغيّرات في عادات الاستهلاك الناتجة عن زيادة المحتوى القصير وقيود بنية التشغيل التقليدية للمحتوى الطويل، قدّمت مكتبة Jetpack Media3 PreloadManager. يتيح هذا المكوّن للمطوّرين تجاوز ذاكرة التخزين المؤقت للقرص، ما يوفّر تحكّمًا وتخصيصًا دقيقًا لإبقاء الوسائط جاهزة في الذاكرة قبل أن ينقر المستخدم على زر التشغيل. يمكنك قراءة سلسلة المدونات هذه للتعرّف على التفاصيل الفنية حول تشغيل الوسائط باستخدام PreloadManager.
كيف حقّقت Meta ميزة التشغيل الفوري الحقيقي؟
التعقيدات الحالية
في السابق، كانت Meta تستخدم مزيجًا من عملية الإحماء (لتجهيز اللاعبين) والجلب المسبق (لتخزين المحتوى مؤقتًا على القرص) لعرض الفيديو. وعلى الرغم من أنّ هذه الطرق ساعدت في تحسين كفاءة الشبكة، إلا أنّها أدت إلى ظهور تحديات كبيرة. كانت عملية الإحماء تتطلّب إنشاء مثيلات متعدّدة من المشغّل بالتسلسل، ما أدّى إلى استهلاك كبير للذاكرة واقتصر التحميل المُسبَق على عدد قليل من الفيديوهات. وقد أدّى هذا الطلب الكبير على الموارد إلى إمكانية تطبيق حلّ أكثر فعالية وقابلية للتوسّع من أجل توفير التشغيل الفوري المتوقّع على خلاصات الوسائط الاجتماعية الحديثة التي تتيح التمرير السريع.
دمج Media3 PreloadManager
لتحقيق تشغيل فوري حقًا، دمج فريق Media Foundation Client في Meta أداة Jetpack Media3 PreloadManager في Facebook وInstagram. واختاروا DefaultPreloadManager لتوحيد أنظمة التحميل المسبق والتشغيل. تطلّب هذا الدمج إعادة تصميم البنية الحالية في Meta من أجل إتاحة مشاركة الموارد بكفاءة بين مثيلات PreloadManager وExoPlayer. وقد وفّر هذا التغيير الاستراتيجي ميزة معمارية أساسية، وهي إمكانية تنفيذ مهام التحميل المسبق بالتوازي وإدارة العديد من الفيديوهات باستخدام مثيل مشغّل واحد. وقد أدّى ذلك إلى زيادة سعة التحميل المُسبَق بشكل كبير مع التخلّص من تعقيدات الذاكرة العالية التي كان يتضمّنها الأسلوب السابق.
التحسين وضبط الأداء
بعد ذلك، أجرى الفريق اختبارات وتكرارات مكثّفة لتحسين الأداء على مستوى منظومة الأجهزة المتنوعة في Meta على مستوى العالم. في بعض الأحيان، كان التحميل المسبق الأولي المكثّف يتسبّب في حدوث مشاكل، بما في ذلك زيادة استخدام الذاكرة وبطء أداء التمرير. ولحلّ هذه المشكلة، تم تحسين التنفيذ من خلال إجراء قياسات دقيقة للذاكرة، مع مراعاة اختلاف الأجهزة، وتصميم النظام ليناسب أنماطًا معيّنة لواجهة المستخدم.
ضبط التنفيذ بدقة ليناسب أنماطًا معيّنة لواجهة المستخدم
طبّقت Meta استراتيجيات تحميل مسبق مختلفة وصمّمت السلوك ليناسب أنماط واجهة المستخدم المحدّدة لكل تطبيق:
- خلاصة الأخبار على Facebook: تعطي واجهة المستخدم الأولوية للفيديو الذي يظهر حاليًا على الشاشة. لا يحمّل المدير مسبقًا سوى الفيديو الحالي لضمان بدء تشغيله فورًا عندما يوقف المستخدم التمرير مؤقتًا. يؤدي التركيز على "الحالي فقط" إلى تقليل مساحة البيانات والذاكرة في بيئة قد يرى فيها المستخدمون العديد من المنشورات الثابتة بين الفيديوهات. مع أنّ النظام مصمّم حاليًا لتحميل الفيديو المعروض مسبقًا فقط، يمكن تعديله لتحميل الفيديوهات القادمة (المستقبلية) مسبقًا أيضًا.
- Instagram Reels: هذه بيئة فيديو خالصة حيث يمرّر المستخدمون الشاشة عموديًا. بالنسبة إلى واجهة المستخدم هذه، نفّذ الفريق استراتيجية "التحميل المُسبَق المجاور". يحتفظ PreloadManager بالفيديوهات في الذاكرة بعد أن يصبح الفيديو الحالي جاهزًا. يضمن هذا الأسلوب الثنائي الاتجاه أن يظل الانتقال فوريًا وسلسًا سواء مرّر المستخدم سريعًا للأعلى أو للأسفل. وقد أدّى ذلك إلى تحسين كبير في جودة التجربة، بما في ذلك تحسينات في بدء التشغيل والوقت اللازم لعرض الإطار الأول للمستخدم.
التوسّع في منظومة متكاملة عالمية ومتنوعة من الأجهزة
يتطلّب توسيع نطاق حزمة فيديوهات عالية الأداء على مستوى مليارات الأجهزة أكثر من مجرد التحميل المُسبَق المكثّف، بل يتطلّب ذكاءً. واجهت Meta تحديات أولية بشأن ضغط الذاكرة وتأخّر التمرير، لا سيما على الأجهزة المتوسطة إلى المنخفضة المواصفات. لحلّ هذه المشكلة، أنشأ الفريق نظام رصد إجهاد الجهاز استنادًا إلى عملية تنفيذ Media3. تراقب التطبيقات الآن إشارات الإدخال/الإخراج ووحدة المعالجة المركزية في الوقت الفعلي. إذا كان الجهاز تحت حمولة كبيرة، يتم إيقاف التحميل المُسبَق مؤقتًا لإعطاء الأولوية لاستجابة واجهة المستخدم.
يضمن هذا التحسين المتوافق مع الأجهزة ألا يؤثر التشغيل الفوري في ثبات النظام، ما يتيح حتى للمستخدمين الذين لديهم أجهزة قديمة الاستمتاع بتجربة أكثر سلاسة وبدون انقطاع.
التحسينات المعمارية وسلامة الرمز البرمجي
بالإضافة إلى المقاييس التي يراها المستخدم، قدّمت عملية نقل البيانات إلى Media3 PreloadManager مزايا معمارية طويلة الأمد. على الرغم من أنّ عملية الدمج والتعديل تطلّبت تكرارات متعددة لتحقيق التوازن في الأداء، إلا أنّ قاعدة الرموز الناتجة أصبحت أسهل في الصيانة. تبيّن للفريق أنّ واجهة برمجة التطبيقات PreloadManager تتكامل بسلاسة مع منظومة Media3 المتكاملة الحالية، ما يتيح مشاركة الموارد بشكل أفضل. بالنسبة إلى Meta، كان استخدام Media3 PreloadManager استثمارًا استراتيجيًا في مستقبل استهلاك الفيديو.
ومن خلال استخدام ميزة التحميل المُسبَق وإضافة بوابات ذكية للأجهزة، تمكّنوا من زيادة إجمالي وقت المشاهدة على تطبيقاتهم وتحسين التفاعل العام مع المنتدى العالمي.
التأثير الناتج على Instagram وFacebook
حقّقت البنية الاستباقية تحسينات فورية وقابلة للقياس على كلتا المنصّتَين.
- حقّق Facebook سرعة أكبر في بدء تشغيل الفيديوهات وانخفاضًا في معدّلات توقّف التشغيل وانخفاضًا في الجلسات السيئة (مثل إعادة التخزين المؤقّت وتأخّر وقت البدء وانخفاض الجودة وما إلى ذلك)، ما أدّى بشكل عام إلى زيادة وقت المشاهدة.
- شهدت منصة Instagram بدء تشغيل أسرع وزيادة في إجمالي وقت المشاهدة. أدّى إلغاء وقت الاستجابة عند الانضمام (الفترة الزمنية بين إجراء المستخدم وعرض الإطار الأول) إلى زيادة مقاييس التفاعل بشكل مباشر. أدّى انخفاض عدد مرات الانقطاع بسبب تقليل التخزين المؤقت إلى مشاهدة المستخدمين المزيد من المحتوى، وهو ما ظهر من خلال مقاييس التفاعل.
الدروس الهندسية الأساسية على نطاق واسع
مع تطوّر عادات استهلاك الوسائط، سيستمر الطلب على التجارب الفورية في النمو. يضمن تنفيذ إدارة استباقية للذاكرة والتحسين من أجل التوافق مع مختلف الأجهزة أن يتمكّن تطبيقك من تلبية هذه التوقعات بكفاءة.
- تحديد أولوية التحميل المُسبَق الذكي
ركِّز على تقديم تجربة موثوقة من خلال تقليل التقطّع وأوقات التحميل من خلال التحميل المُسبَق. بدلاً من التخزين المؤقت البسيط على القرص، يضمن الاستفادة من التحميل المُسبَق على مستوى الذاكرة أن يكون المحتوى جاهزًا في اللحظة التي يتفاعل فيها المستخدم معه.
- مواءمة عملية التنفيذ مع أنماط واجهة المستخدم
تخصيص سلوك التحميل المُسبَق وفقًا لواجهة المستخدم في تطبيقاتك على سبيل المثال، استخدِم التركيز على "العناصر الحالية فقط" للخلاصات المختلطة، مثل Facebook، لتوفير الذاكرة، واستراتيجية "التحميل المُسبَق للعناصر المجاورة" للبيئات العمودية، مثل فيديوهات Instagram Reels.
- الاستفادة من Media3 لضمان سلامة الرمز البرمجي على المدى الطويل
يتيح لك الدمج مع واجهات برمجة تطبيقات Media3 بدلاً من حلّ التخزين المؤقت المخصّص مشاركة الموارد بشكل أفضل بين المشغّل وPreloadManager، ما يتيح لك إدارة فيديوهات متعددة باستخدام مثيل مشغّل واحد. وينتج عن ذلك قاعدة رموز برمجية متوافقة مع المستقبل، ما يسهّل على فِرق الهندسة صيانتها وتحسينها بمرور الوقت، بالإضافة إلى الاستفادة من آخر تحديثات الميزات.
- تنفيذ تحسينات متوافقة مع الأجهزة
يمكنك توسيع نطاق وصولك إلى السوق من خلال الاختبار على أجهزة مختلفة، بما في ذلك الطُرز المتوسطة إلى المنخفضة المواصفات. استخدِم إشارات في الوقت الفعلي، مثل وحدة المعالجة المركزية والذاكرة وعمليات الإدخال والإخراج، لتكييف الميزات واستخدام الموارد بشكلٍ ديناميكي.
مزيد من المعلومات
لبدء الاستخدام والاطّلاع على مزيد من المعلومات، يُرجى الانتقال إلى
- استكشِف مستندات PreloadManager في Media3.
- يمكنك الاطّلاع على سلسلة المدونات للحصول على تفاصيل فنية ومفصّلة حول التنفيذ.
- يمكنك الاطّلاع على نموذج التطبيق لمعرفة طريقة عمل التحميل المُسبَق.
أنت الآن تعرف أسرار التشغيل الفوري. ننصحك بتجربتها.
متابعة القراءة
-
دراسات الحالة
Monzo هو بنك رقمي في المملكة المتحدة يضم 15 مليون عميل، وما زال عدد عملائه في ازدياد. مع توسّع التطبيق، أدرك فريق الهندسة أنّ وقت بدء تشغيل التطبيق يمثّل مجالًا مهمًا للتحسين، ولكنّه كان قلقًا من أنّ ذلك سيتطلّب إجراء تغييرات كبيرة على قاعدة الرموز البرمجية.
Ben Weiss • مدة القراءة: دقيقتان
-
دراسات الحالة
TikTok هي منصة عالمية للفيديوهات القصيرة تشتهر بقاعدة المستخدمين الضخمة والميزات المبتكرة.
Ben Trengrove, Ajesh Pai • مدة القراءة: دقيقتان
-
دراسات الحالة
عند إنشاء تطبيق Android للأجهزة القابلة للارتداء، يبدأ العمل الفعلي عند إيقاف تشغيل الشاشة.
Breana Tate • مدة القراءة: 4 دقائق
البقاء على اطّلاع على آخر التحديثات
يمكنك تلقّي أحدث الإحصاءات حول تطوير تطبيقات Android في بريدك الوارد أسبوعيًا.