يوفّر 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 الفيديوهات التي تلي Reel الحالي مباشرةً جاهزة في الذاكرة. يضمن هذا النهج الثنائي الاتجاه أن يظل الانتقال فوريًا وسلسًا سواء مرّر المستخدم سريعًا للأعلى أو للأسفل. أدى ذلك إلى تحسين كبير في جودة التجربة، بما في ذلك تحسينات في بدء التشغيل والوقت اللازم لعرض الإطار الأول للمستخدم.
التوسّع لمنظومة أجهزة عالمية متنوعة
يتطلّب توسيع نطاق مجموعة فيديوهات عالية الأداء على مليارات الأجهزة أكثر من مجرد التحميل المسبق المكثّف، بل يتطلّب أيضًا ذكاءً. واجهت Meta تحديات أولية تتعلق بضغط الذاكرة وبطء التصفّح، لا سيّما على الأجهزة ذات الأداء المتوسط والمنخفض. لحلّ هذه المشكلة، أنشأوا نظام رصد ضغط الجهاز استنادًا إلى عملية تنفيذ Media3. تراقب التطبيقات الآن إشارات الإدخال والإخراج ووحدة المعالجة المركزية في الوقت الفعلي. إذا كان الجهاز تحت حمولة كبيرة، يتم إيقاف التحميل المسبق مؤقتًا لإعطاء الأولوية لاستجابة واجهة المستخدم.
يضمن هذا التحسين الذي يراعي الجهاز ألا يكون التشغيل الفوري على حساب استقرار النظام، ما يسمح حتى للمستخدمين على الأجهزة القديمة بتجربة خلاصة أكثر سلاسة وبدون انقطاع.
المزايا المعمارية وسلامة الرمز
بالإضافة إلى المقاييس التي يراها المستخدمون، قدّمت عملية النقل إلى PreloadManager في Media3 مزايا معمارية طويلة الأمد. على الرغم من أنّ عملية الدمج والتوليف تطلّبت عدة تكرارات لتحقيق التوازن في الأداء، إلا أنّ قاعدة الرموز البرمجية الناتجة أصبحت أسهل في الصيانة. وجد الفريق أنّ واجهة برمجة التطبيقات PreloadManager تم دمجها بسلاسة مع منظومة Media3 الحالية، ما يسمح بمشاركة أفضل للموارد. بالنسبة إلى Meta، كان استخدام Media3 PreloadManager استثمارًا استراتيجيًا في مستقبل استهلاك الفيديوهات.
من خلال استخدام التحميل المسبق وإضافة بوابات ذكية تراعي الجهاز، نجحوا في زيادة إجمالي وقت المشاهدة على تطبيقاتهم وتحسين التفاعل العام لمجتمعهم العالمي.
التأثير الناتج على Instagram وFacebook
قدّمت البنية الاستباقية تحسينات فورية وقابلة للقياس على كلتا المنصتَين.
- شهد Facebook بدء تشغيل أسرع، وانخفاضًا في معدّلات توقّف التشغيل، وانخفاضًا في الجلسات السيئة (مثل إعادة التخزين المؤقت، وتأخير وقت البدء، والجودة المنخفضة، وما إلى ذلك)، ما أدى بشكل عام إلى زيادة وقت المشاهدة.
- شهد Instagram بدء تشغيل أسرع وزيادة في إجمالي وقت المشاهدة. أدى إزالة وقت استجابة الانضمام (الفترة الفاصلة بين إجراء المستخدم وعرض الإطار الأول) إلى زيادة مقاييس التفاعل بشكل مباشر. أدى انخفاض عدد الانقطاعات بسبب تقليل التخزين المؤقت إلى مشاهدة المستخدمين المزيد من المحتوى، وهو ما ظهر من خلال مقاييس التفاعل.
الدروس الهندسية الرئيسية على نطاق واسع
مع تطوّر عادات استهلاك الوسائط، سيستمر الطلب على التجارب الفورية في الازدياد. يضمن تنفيذ إدارة استباقية للذاكرة والتحسين من أجل التوسّع وتنوّع الأجهزة أن يتمكّن تطبيقك من تلبية هذه التوقعات بكفاءة.
- إعطاء الأولوية للتحميل المسبق الذكي
ركِّز على تقديم تجربة موثوقة من خلال تقليل التقطّعات وأوقات التحميل من خلال التحميل المسبق. بدلاً من التخزين المؤقت البسيط على القرص، يضمن استخدام التحميل المسبق على مستوى الذاكرة أن يكون المحتوى جاهزًا في اللحظة التي يتفاعل فيها المستخدم معه.
- مواءمة عملية التنفيذ مع أنماط واجهة المستخدم
خصِّص سلوك التحميل المسبق وفقًا لواجهة مستخدم تطبيقاتك. على سبيل المثال، استخدِم التركيز على "الحالي فقط" للخلاصات المختلطة مثل Facebook لتوفير الذاكرة، واستراتيجية "التحميل المسبق المجاور" للبيئات العمودية مثل Instagram Reels.
- الاستفادة من Media3 لضمان سلامة الرمز على المدى الطويل
يسمح التكامل مع واجهات برمجة تطبيقات Media3 بدلاً من حل تخزين مؤقت مخصّص بمشاركة أفضل للموارد بين المشغّل وPreloadManager، ما يتيح لك إدارة فيديوهات متعددة باستخدام مثيل مشغّل واحد. يؤدي ذلك إلى قاعدة رموز برمجية جاهزة للمستقبل يسهل على الفِرق الهندسية صيانتها وتحسينها بمرور الوقت والاستفادة أيضًا من آخر تحديثات الميزات.
- تنفيذ تحسينات تراعي الجهاز
وسِّع نطاق وصولك إلى السوق من خلال الاختبار على أجهزة مختلفة، بما في ذلك النماذج ذات الأداء المتوسط والمنخفض. استخدِم إشارات في الوقت الفعلي، مثل وحدة المعالجة المركزية والذاكرة والإدخال والإخراج، لتكييف الميزات واستخدام الموارد بشكل ديناميكي.
مزيد من المعلومات
للبدء ومعرفة المزيد، انتقِل إلى
- استكشاف مستندات Media3 PreloadManager.
- قراءة سلسلة مشاركات المدونة للحصول على تفاصيل فنية وعملية تنفيذ متقدّمة.
- الاطّلاع على نموذج التطبيق لمعرفة كيفية عمل التحميل المسبق
أنت الآن تعرف أسرار التشغيل الفوري. ننصحك بتجربتها.
-
دراسات الحالةKarrot هو تطبيق سوق من نظير إلى نظير يعتمد على المجتمع ويستهدف منطقة جغرافية محدّدة، ويتيح للمستخدمين شراء المنتجات وبيعها ومبادلتها مع مستخدمين آخرين تم التحقّق منهم. منذ إطلاق المنصة في كوريا الجنوبية في عام 2015، توسّعت لتشمل الأسواق العالمية، وجمعت أكثر من 43 مليون مستخدم مسجّل.
Thomas Ezan, Tracy Agyemang • مدة القراءة: دقيقتان -
دراسات الحالةMonzo هو بنك رقمي في المملكة المتحدة يضم 15 مليون عميل، والعدد في ازدياد. مع توسّع نطاق التطبيق، حدّد الفريق الهندسي وقت بدء تشغيل التطبيق كمنطقة مهمة للتحسين، لكنّه كان قلقًا من أنّ ذلك سيتطلّب تغييرات كبيرة في قاعدة الرموز البرمجية.
Ben Weiss, Tracy Agyemang • مدة القراءة: دقيقتان -
دراسات الحالةعند إنشاء تطبيق Android لجهاز قابل للارتداء، يبدأ العمل الحقيقي عند إيقاف تشغيل الشاشة.
Breana Tate, Tracy Agyemang • مدة القراءة: 4 دقائق
يمكنك تلقّي آخر الإحصاءات حول تطوير تطبيقات Android في بريدك الوارد أسبوعيًا.