شركة JioSaavn تزيد عدد المستخدمين النشطين يوميًا من خلال تحسين وقت بدء تشغيل التطبيق بنسبة 30%
تنظيم صفحاتك في مجموعات
يمكنك حفظ المحتوى وتصنيفه حسب إعداداتك المفضّلة.
تأسست شركة JioSaavn في عام 2007، وهي خدمة رائدة لبث الموسيقى وملفات البودكاست. تضم الشركة أكثر من 900 شركة إنتاج وتبث ما يزيد عن 80 مليون أغنية بـ 16 لغة. ويتوفّر تطبيق JioSaavn أيضًا بست لغات إقليمية هندية.
تعمل JioSaavn على نطاق واسع وسرعة بفضل حزمة تكنولوجيات تدعم أكثر من 100 مليون مستخدم نشط شهريًا. يمتلك هذا الجمهور عادةً هواتف Android ذات موارد محدودة، ما يجعل تجربة المستخدم ذات أهمية قصوى لفريق JioSaavn.
التحدّي
يمكن أن يكون التحسين في بيئة من القيود، مثل تلك الموجودة في الأجهزة المحمولة ذات المستوى المنخفض من المتوسط، أمرًا صعبًا ومثيرًا من منظور هندسي. كان التحدي الذي واجهته شركة JioSaavn هو تحسين تجربة المستخدم للجمهور المستهدف الرئيسي باستخدام أجهزة الجوّال منخفضة القيمة، وهي تقع بشكل أساسي في مدينتَي المستويين الثاني والثالث في الهند.
عند تحليل مسار الإحالة الناجحة، كان واضحًا أن هناك قسمًا كبيرًا من المستخدمين الذين سيشغّلون التطبيق ولكن لا يستمعون إلى أغنية. حدد الفريق أن وقت بدء تشغيل التطبيق هو سبب ذلك. وبالتالي، ارتبط تحسين وقت بدء تشغيل التطبيق بزيادة عدد المستمعين في التطبيق.
طريقة التنفيذ
اعتمدت شركة JioSaavn على التحليل الشامل ومجموعة أدوات فعّالة، مثل Perfetto وdumpsys وغيرها، لتحليل هذه المشكلة والوصول إلى حلّ مستدام. وتعامل الفريق مع هذا التحدي باستخدام مبدأين - موازاة العمل والكسل.
بمساعدة تحليل Google، أعطى الفريق الأولوية للمهام -
- تم استخدام systrace وperfetto لدراسة مسار التطبيق وتحليل المشاكل والتحقق من صحة التحسينات في وقت بدء تشغيل التطبيق.
- تأخير الإعداد: تحديد الأجزاء/المثيلات/تهيئة الفئات التي قد تتأخر إلى أن يتم عرض الصفحة الرئيسية -
- الإعلانات
- خدمة الموسيقى (الخدمة التي تعمل في المقدّمة) وموارد المشغّل (مثل مشغّل Exo Player، وقائمة انتظار المشغّل المخزّنة مؤقتًا، وغير ذلك)
- جزء من مشغّل الفيديو يتم تصغيره وقت الإطلاق.
- إعداد عند الطلب: لمكتبات مختلفة حسب الحاجة ومتى تكون المكتبة مطلوبة (مثل Facebook lib).
- viewStubs: عرض التضخم وتحميل الموارد كان مكثفًا. عمل الفريق على تبسيط التخطيطات باستخدام viewStubs وتحويل الصور إلى تنسيق WebP.
- سلسلة محادثات العامل: تم نقل بعض المهام التي لا تتطلب سلسلة محادثات واجهة المستخدم إلى سلاسل محادثات b/g لإخلاء سلسلة محادثات واجهة المستخدم.
- تقسيم بيانات ذاكرة التخزين المؤقت - تستغرق قراءة وتحليل بيانات ذاكرة التخزين المؤقت الضخمة من ملف وقتًا طويلاً. وقسّمها الفريق هذه البيانات إلى بيانات حرجة (ضرورية لعرض الصفحة الرئيسية) وبيانات غير مهمة.
- عدم مزامنة LayoutInflater: بعض طرق العرض المطلوبة لعرض إعادة تدوير الصفحة الرئيسية تم تضخيمها مسبقًا باستخدام LayoutInflater غير متزامن.
الأدوات المستخدَمة: Perfetto وSystrace ومؤشرات Google Play الحيوية وأدوات التعريف في استوديو Android وحزمة تطوير البرامج (SDK) للأداء من Firebase
النتائج
أصدر فريق JioSaavn هذه التغييرات على إصدارات متعددة من التطبيق للحفاظ على استقرار التطبيق. وقد حققوا النتائج التالية:
- تحسُّن بنسبة 30% في وقت بدء تشغيل التطبيق على جميع الأجهزة وبنسبة تتراوح بين 35 و40% في الأجهزة ذات المواصفات المنخفضة.
- تحسّن بنسبة% 5 في عدد المشاهدين على الشاشة الرئيسية/ المستخدمون النشطون يوميًا، ما يؤدي إلى تقليل معدّل الارتداد
جمع تمرين التحسين هذا الفريق بأكمله معًا. تم إجراء جولات تفصيلية لجعل الفريق يشعر بالراحة تجاه التغييرات، وغرض نهج يركز على الأداء تجاه التطبيق.
"تهدف JuSaavn إلى تحسين تجربة الاستماع للمستخدمين الذين يأتون من مناطق مختلفة
ومدن في الهند، في نطاق واسع من حيث التكلفة المعقولة. وبالتالي، فإن تجاوز البنية الأساسية لاتصال الجوّال في منطقتهم، وتحسين تجربة المستخدم عبر إمكانات أجهزة المستخدمين
يمثل تحديًا مستمرًا نعمل من أجله.
وبفضل إرشادات العلاقات بين مطوّري البرامج في Google، تمكّنا من اتخاذ خطوة حاسمة في هذا الاتجاه".
– فريق منتجات JioSaavn
يخضع كل من المحتوى وعيّنات التعليمات البرمجية في هذه الصفحة للتراخيص الموضحّة في ترخيص استخدام المحتوى. إنّ Java وOpenJDK هما علامتان تجاريتان مسجَّلتان لشركة Oracle و/أو الشركات التابعة لها.
تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)
[[["يسهُل فهم المحتوى.","easyToUnderstand","thumb-up"],["ساعَدني المحتوى في حلّ مشكلتي.","solvedMyProblem","thumb-up"],["غير ذلك","otherUp","thumb-up"]],[["لا يحتوي على المعلومات التي أحتاج إليها.","missingTheInformationINeed","thumb-down"],["الخطوات معقدة للغاية / كثيرة جدًا.","tooComplicatedTooManySteps","thumb-down"],["المحتوى قديم.","outOfDate","thumb-down"],["ثمة مشكلة في الترجمة.","translationIssue","thumb-down"],["مشكلة في العيّنات / التعليمات البرمجية","samplesCodeIssue","thumb-down"],["غير ذلك","otherDown","thumb-down"]],["تاريخ التعديل الأخير: 2025-07-27 (حسب التوقيت العالمي المتفَّق عليه)"],[],[],null,["# JioSaavn increases DAUs by improving app startup time by 30%\n\nFounded in 2007, JioSaavn is a leading audio streaming service for music and podcasts. They have 900+ label partnerships and stream 80+ million tracks in 16 languages. JioSaavn app is also available in 6 regional Indian languages.\n\nWith a tech stack that supports over 100 million monthly active users (MAUs), JioSaavn operates at scale and speed. This audience usually has resource-limited Android phones, making their user experience of paramount importance to the JioSaavn team.\n\nThe Challenge\n-------------\n\nOptimizing in an environment of constraints, like those found in low-mid end mobile devices, can be both challenging and exciting from an engineering perspective. The challenge JioSaavn faced was to optimize user experience for their key target audience using low-mid end mobile devices and primarily found in Tier 2 \\& 3 cities of India.\n\nAnalysing the funnel, it was evident that there was a considerable section of users who would launch the app but not listen to a song. The team determined the app startup time to be the cause for this. Thus, improving the app startup time was associated with an increase in the number of listeners on the app.\n\nHow They Did It\n---------------\n\nJioSaavn relied on comprehensive analysis and a robust set of tools like Perfetto, dumpsys, etc to analyze this problem and arrive at a sustainable solution. The team approached this challenge using two principles - parallelize work and be lazy.\n\nWith the help of Google's analysis, the team prioritized tasks -\n\n- Used systrace and perfetto to study the app flow, analyze pain points, validate improvements in app startup time.\n- Delayed initialization: Identified fragments/instances/classes initialization that could be delayed until the homepage is displayed -\n - Ads\n - Music Service (Foreground Service) and Player Resources (e.g. Exoplayer, cached player queue etc)\n - Player Fragment which is minimized at the time of launch.\n- On-demand initialization: of various libraries as and when the library is required (eg Facebook lib).\n- viewStubs: View Inflation and resource loading was heavy. The team flattened their layouts using viewStubs and converted the images to webP.\n- Worker thread: Some tasks which didn't require UI thread were moved to b/g threads to free up the UI thread.\n- Split Cache Data - Reading and parsing huge cached data from a file takes a lot of time. The team split it into critical (necessary for showing homepage) and non-critical data.\n- Async LayoutInflater: Some of the views required for homepage recyclerview were pre-inflated using Async LayoutInflater.\n\nTools Used - Perfetto, Systrace, Google play vitals, Android studio Profilers, Firebase performance SDK\n\nResults\n-------\n\nThe JioSaavn team released these changes over multiple versions of the app to maintain app stability. They achieved the following results -\n\n- 30% improvement in app startup time on all devices and 35 - 40% in low-mid end devices.\n- 5% improvement in Home Screen Viewers/ DAU, thus reducing the bounce rate.\n\nThis optimization exercise brought the whole team together. Detailed walkthroughs were done to make the team comfortable with the changes, and inculcate a performance-focused approach towards the app.\n\u003e \"JioSaavn aims to better the listening experience of our users who come from various regions \n\u003e\n\u003e and cities in India, and span across the spectrum\n\u003e in terms of affordability. Thus going past the mobile connectivity\n\u003e infrastructure of their region, and optimizing the user experience across the\n\u003e users' device capabilities is a constant challenge we work for.\n\u003e Thanks to Google's developer relations guidance, we were able to take a definitive step\n\u003e in this direction.\"\n\u003e\n\u003e **-- JioSaavn Product Team**"]]