JioSaavn: アプリの起動時間を 30% 短縮して DAU を増加
コレクションでコンテンツを整理
必要に応じて、コンテンツの保存と分類を行います。
2007 年に設立された JioSaavn は、音楽とポッドキャスト向けの大手オーディオ ストリーミング サービスです。900 以上のレーベルとパートナーシップを結んでおり、8,000 万件以上のトラックを 16 の言語でストリーミングしています。JioSaavn アプリはインドの 6 つの地域言語でも利用できます。
1 か月のアクティブ ユーザー(MAU)が 1 億人を超える技術スタックにより、JioSaavn は迅速かつ大規模に事業を展開しています。このユーザー層は通常、リソースが限られている Android スマートフォンを使用しているため、ユーザー エクスペリエンスは JioSaavn チームにとって最も重要なものとなっています。
課題
ローミドル エンドのモバイル デバイスに見られるような制約のある環境での最適化は、エンジニアリングの観点からすると困難であるだけでなく、刺激的なものです。JioSaavn が直面した課題は、主にインドのティア 2 と 3 の都市で利用されており、ローミドルエンドのモバイル デバイスを使用して主要なターゲット オーディエンスのユーザー エクスペリエンスを最適化することでした。
ファネルを分析すると、アプリを起動したものの、曲を聴いていないユーザーは相当数いることがわかりました。担当チームは、アプリの起動時間がこの問題の原因であると判断しました。したがって、アプリの起動時間の短縮は、アプリのリスナー数の増加と関連していました。
活用方法
JioSaavn は包括的な分析と、Perfetto や dumpsys などの堅牢なツールセットを利用してこの問題を分析し、サステナブルなソリューションにたどり着きました。チームはこの課題に、「作業を同時に行うこと」と「遅延する」という 2 つの原則を使用して取り組んだ。
チームは Google の分析の力を借りて、次のタスクに優先順位を付け、
- systrace と perfetto を使用して、アプリフローの調査、課題の分析、アプリの起動時間の改善の検証を行いました。
- 初期化の遅延: ホームページが表示されるまで遅延する可能性があるフラグメント、インスタンス、クラスの初期化を特定しました。
- 広告
- 音楽サービス(フォアグラウンド サービス)とプレーヤー リソース(例: ExoPlayer、キャッシュ プレーヤー キューなど)
- 起動時に最小化されるプレーヤー フラグメント。
- オンデマンド初期化: ライブラリが必要なときの各種ライブラリ(Facebook lib など)。
- viewStub: ビューのインフレーションとリソースの読み込みが重くなりました。チームは viewStub を使用してレイアウトをフラット化し、画像を WebP に変換しました。
- ワーカー スレッド: UI スレッドを必要としない一部のタスクが、UI スレッドを解放するために b/g スレッドに移動されました。
- スプリット キャッシュ データ - ファイルから大量のキャッシュ データを読み取って解析するには非常に時間がかかります。チームはデータを重要なデータ(ホームページを表示するために必要)と重要でないデータに分割しました。
- 非同期 LayoutInflater: ホームページの recyclerview に必要なビューの一部が、非同期 LayoutInflater を使用して事前インフレートされました。
使用するツール - Perfetto、Systrace、Google Play Vitals、Android Studio の Profiler、Firebase Performance SDK
結果
JioSaavn チームは、アプリの安定性を維持するために、アプリの複数のバージョンにわたってこれらの変更をリリースしました。以下の結果が得られました。
- すべてのデバイスでアプリの起動時間が 30% 短縮され、ローミッド エンドのデバイスで 35 ~ 40% 短縮。
- ホーム画面の視聴者数 ÷ DAU が 5% 増加し、直帰率が減少。
この最適化の取り組みによってチーム全体が団結しました。詳細なチュートリアルを実施してチームが変更内容を理解して、アプリに対してパフォーマンス重視のアプローチを浸透させました。
「JioSaavn は、インドのさまざまな地域や都市のユーザーを対象に、
手頃な価格帯でユーザーのリスニング体験を向上させることを目指しています。そのため、各地域のモバイル接続インフラストラクチャの枠を超え、ユーザーのデバイス機能全体でユーザー エクスペリエンスを最適化することが、Google の継続的な課題となっています。Google のデベロッパー リレーションズ ガイダンスのおかげで、この方向への確実な一歩を踏み出すことができました。」
– JioSaavn プロダクト チーム
このページのコンテンツやコードサンプルは、コンテンツ ライセンスに記載のライセンスに従います。Java および OpenJDK は Oracle および関連会社の商標または登録商標です。
最終更新日 2025-07-27 UTC。
[[["わかりやすい","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 UTC。"],[],[],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**"]]