JioSaavn با بهبود زمان راهاندازی برنامه تا 30 درصد، DAU را افزایش میدهد.
با مجموعهها، منظم بمانید
ذخیره و طبقهبندی محتوا براساس اولویتهای شما.
JioSaavn که در سال 2007 تأسیس شد، یک سرویس پخش صوتی پیشرو برای موسیقی و پادکست است. آنها بیش از 900 شرکت برچسب دارند و بیش از 80 میلیون آهنگ را به 16 زبان پخش می کنند. برنامه JioSaavn همچنین به 6 زبان هندی منطقه ای موجود است.
با پشته فناوری که بیش از 100 میلیون کاربر فعال ماهانه (MAU) را پشتیبانی می کند، JioSaavn در مقیاس و سرعت عمل می کند. این مخاطبان معمولاً تلفنهای اندرویدی با منابع محدود دارند که تجربه کاربری آنها را برای تیم JioSaavn از اهمیت بالایی برخوردار میکند.
چالش
بهینهسازی در محیطی از محدودیتها، مانند مواردی که در دستگاههای تلفن همراه با قیمت متوسط وجود دارد، از منظر مهندسی میتواند چالشبرانگیز و هیجانانگیز باشد. چالشی که JioSaavn با آن روبرو شد بهینه سازی تجربه کاربری برای مخاطبان هدف اصلی خود با استفاده از دستگاه های تلفن همراه متوسط پایین بود که عمدتاً در شهرهای سطح 2 و 3 هند یافت می شود.
با تجزیه و تحلیل قیف، مشخص شد که بخش قابل توجهی از کاربران وجود دارند که برنامه را راه اندازی می کنند اما به آهنگی گوش نمی دهند. تیم زمان راه اندازی اپلیکیشن را دلیل این امر تشخیص داد. بنابراین، بهبود زمان راه اندازی برنامه با افزایش تعداد شنوندگان در برنامه همراه بود.
چگونه آنها آن را انجام دادند
JioSaavn برای تجزیه و تحلیل این مشکل و رسیدن به یک راه حل پایدار به تجزیه و تحلیل جامع و مجموعه ای قوی از ابزارها مانند Perfetto، dumpsys و غیره متکی بود. تیم با استفاده از دو اصل به این چالش برخورد کرد - کار را موازی کنید و تنبل باشید.
با کمک تجزیه و تحلیل گوگل، تیم وظایف را اولویت بندی کرد -
- از systrace و perfetto برای مطالعه جریان برنامه، تجزیه و تحلیل نقاط درد، اعتبارسنجی بهبود در زمان راهاندازی برنامه استفاده کرد.
- مقداردهی اولیه با تأخیر: مقداردهی اولیه قطعات/نمونهها/کلاسها شناسایی شده است که میتواند تا نمایش صفحه اصلی به تأخیر بیفتد -
- تبلیغات
- سرویس موسیقی (سرویس پیش زمینه) و منابع پخش کننده (به عنوان مثال Exoplayer، صف پخش کننده ذخیره شده و غیره)
- Player Fragment که در زمان راه اندازی به حداقل می رسد.
- مقداردهی اولیه برحسب تقاضا: کتابخانه های مختلف در صورت نیاز و زمانی که کتابخانه مورد نیاز است (به عنوان مثال lib Facebook).
- viewStubs: مشاهده تورم و بارگذاری منابع سنگین بود. این تیم با استفاده از viewStubs چیدمان های خود را مسطح کردند و تصاویر را به webP تبدیل کردند.
- Worker thread: برخی از کارهایی که به رشته UI نیاز نداشتند به رشته های b/g منتقل شدند تا رشته UI آزاد شود.
- تقسیم داده های کش - خواندن و تجزیه داده های ذخیره شده عظیم از یک فایل زمان زیادی می برد. تیم آن را به داده های حیاتی (لازم برای نمایش صفحه اصلی) و غیر حیاتی تقسیم کرد.
- Async LayoutInflater: برخی از نماهای مورد نیاز برای recyclerview صفحه اصلی با استفاده از Async LayoutInflater از قبل پر شده بودند.
ابزارهای مورد استفاده - Perfetto، Systrace، Google play vitals، Android Studio Profilers، Firebase performance SDK
نتایج
تیم JioSaavn این تغییرات را در چندین نسخه از برنامه برای حفظ ثبات برنامه منتشر کرد. آنها به نتایج زیر دست یافتند -
- 30٪ بهبود در زمان راه اندازی برنامه در همه دستگاه ها و 35 - 40٪ در دستگاه های متوسط پایین.
- 5% بهبود در نمایشگرهای صفحه اصلی/DAU، در نتیجه نرخ پرش را کاهش میدهد.
این تمرین بهینه سازی کل تیم را گرد هم آورد. بررسی های دقیق انجام شد تا تیم با تغییرات راحت باشد و رویکردی متمرکز بر عملکرد نسبت به برنامه القا شود.
هدف JioSaavn بهبود تجربه شنیداری کاربران ما که از مناطق مختلف آمدهاند
و شهرهای هند، و از نظر مقرون به صرفه بودن، طیف گسترده ای را در بر می گیرند. بنابراین عبور از زیرساخت اتصال تلفن همراه منطقه آنها و بهینه سازی تجربه کاربری در سراسر قابلیت های دستگاه کاربران، چالشی همیشگی است که ما برای آن تلاش می کنیم. به لطف راهنماییهای ارتباط با توسعهدهندگان گوگل، ما توانستیم گامی قطعی در این مسیر برداریم.»
– تیم محصول JioSaavn
محتوا و نمونه کدها در این صفحه مشمول پروانههای توصیفشده در پروانه محتوا هستند. جاوا و OpenJDK علامتهای تجاری یا علامتهای تجاری ثبتشده Oracle و/یا وابستههای آن هستند.
تاریخ آخرین بهروزرسانی 2025-07-29 بهوقت ساعت هماهنگ جهانی.
[[["درک آسان","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-29 بهوقت ساعت هماهنگ جهانی."],[],[],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**"]]