Josh 將應用程式啟動時間縮短了 30%,成功提升客戶留存率
透過集合功能整理內容
你可以依據偏好儲存及分類內容。
Josh 是印度製作的短片應用程式,於 2020 年 8 月推出。也是印度成長最快速的短片應用程式之一,每月活躍使用人數超過 1.24 億,每日活躍使用者達 6,000 萬人。
對所有應用程式開發人員來說,Josh 決定在各種裝置上 (高階、中、低階) 都進行最佳化,同時維持所有裝置的標準使用體驗,是任何應用程式開發人員都須遵循的一大重點,而且 Josh 從一開始就瞭解這一點。為了創造使用者滿意度,改善 Android Vitals 是該公司衝刺業務和重要性的一大任務。
此外,影片回應和啟動時間也很重要,因為影片是使用者在應用程式中互動和使用的主要格式。如果影片串流中有任何突兀或因不同互動中斷的地方,很快就會讓使用者失去興趣並退出應用程式。
Josh 投注心力改進應用程式啟動時間效能,讓一般使用者的應用程式啟動時間縮短了 30%,而較舊和低階裝置的使用者則加快了約 3 倍的啟動速度。
挑戰
Josh 應用程式在短短一年內,便迅速成長到超過 1 億名每月活躍使用者。在推出產品主導或事件導向功能的競賽中,應用程式最佳化往往會退場,他們透過 Google 的應用程式稽核與結構意見回饋,及早發現這些問題,並擬定修正問題的管道。
方法
監控 Android Vitals 時,我們發現了改善應用程式啟動的契機。該團隊決定優先縮短冷啟動時間,藉此自動縮短暖啟動和熱啟動時間。
該公司利用多項自訂追蹤記錄、Systrace、Android Studio Profiler 和 Perfetto 來進行調查,並找出瓶頸。明顯可以看出應用程式類別 onCreate 和其他同步方法耗費的時間可改善其他同步方法。
以下列舉該團隊的具體措施:
- 剖析應用程式啟動期間執行的每個程式碼區塊。
- 使用 Perfetto、Systrace、Dmpsys 等 Android 效能工具分析的系統追蹤記錄。
- 調查過第三方 SDK 在應用程式啟動期間的影響,並自動停用部分第三方 SDK。
- 淘汰舊版程式庫
- 部分模組會延遲並在背景執行
- 縮減啟動時啟動畫面使用的可繪項目大小,並針對螢幕大小進行最佳化
我們單獨進行測試來全面驗證上述所有項目,藉此確認應用程式會對應用程式帶來正面影響、模擬冷啟動並整合新的 Jetpack Macrobenchmark 程式庫。
成果
這些變動不僅讓所有指標立即有所改善,而且還提升了整體使用者體驗,以及為開發團隊提供寶貴的知識。
- 改善跳出率和留存率後,小喬能留住超過 100 萬人 (與基準線相比)。專注在這兩項指標也有助於提升應用程式的整體參與度。
- Play 商店的評分呈現上升趨勢,在應用程式推出時就推出多項啟動改良措施。
- 對一般使用者而言,應用程式啟動時間縮短了 30%,在較舊和低階裝置上讓約 10% 的使用者運作速度加快 3 倍,因此大幅改善了這類使用者的應用程式回應速度。
更重要的是,這項有助於改善 Android Vitals 的運動讓整個團隊凝聚在一起,激勵團隊的動力,尤其是初級成員。這不僅鞏固了 Vitals 的重要性,甚至也成功引導了相關團隊在其他應用程式中使用這些經驗。
「只要生態系統中的夥伴聚在一起,就能一起成長茁壯。資料與數據分析的強大威力已是前所未見的。身為以創作者為優先、以消費者為中心的平台,我們持續致力於打造終極的使用者體驗,而這類體驗十分仰賴應用程式的穩定性。Josh 在推出產品後發現立即加快成長。與 Google Play 團隊密切合作,協助我們及早發現並修正應用程式穩定性、最佳化等難題。在 Google 的合作下,我們得以提升穩定性,並增強使用者留存率和參與度。」
– VerSe Innovation 產品與工程部門資深副總裁 Shailendra Sharma
這個頁面中的內容和程式碼範例均受《內容授權》中的授權所規範。Java 與 OpenJDK 是 Oracle 和/或其關係企業的商標或註冊商標。
上次更新時間:2022-02-08 (世界標準時間)。
[null,null,["上次更新時間:2022-02-08 (世界標準時間)。"],[],[],null,["# Josh sees increased customer retention by improving app startup time by 30%\n\nJosh is a made-in-India, short-video app launched in August 2020. It is also one of the fastest growing short-video apps in India with over 124 million MAUs and 60 million DAUs.\n\nOptimizing Josh across a range of devices (high, mid, low end) and maintaining a standard experience across all of them is a tall order for any app developer, and the developers at Josh understood this from the very beginning. Improving Android Vitals was a major task in their sprints and importance was given to creating user delight by improving the app startup time and responsiveness.\n\nApp responsiveness and startup time were also important as video was the primary format users engaged with and consumed on the app. Any sputtering in the video stream or breaks in the different interactions could quickly result in the user losing interest and quitting the app.\n\nBy investing in app startup time performance, Josh improved app startup time by 30% for the average user and became 3x faster for \\~10% users on older and low end devices.\n\n### The Challenge\n\nJosh app has witnessed a rapid pace of growth to over 100 million MAU in less than a year. Often in the race to push out product-led or event-led features, app optimization takes a back seat. App audits and structural feedback from Google helped them identify these issues early on and lay down a path to fix them.\n\n### How They Did It\n\nWhile monitoring Android vitals, an opportunity to improve app startup was identified. The team decided to prioritize improving the cold startup times, as this would automatically improve the warm and hot start times.\n\nUsing multiple custom traces, systrace, Android Studio Profiler and Perfetto, the team was able to do an extensive investigation and identify the bottlenecks. It was clear that the time taken by the Application class' onCreate and other synchronous methods could be optimized.\n\nHere's what the team did specifically -\n\n- Profiled every block of code that executes during App startup.\n- Analyzed system traces using Android performance tools like Perfetto, Systrace, Dumpsys etc.\n- Impact of 3rd party SDKs during app startup was investigated and autostart of some 3rd party SDKs was disabled.\n- Eliminated legacy libraries\n- Some modules were deferred and executed in the background\n- Reduced the size of the drawables used on the splash screen on startup and optimized them for screen size\n\nAll the above were thoroughly validated by testing in isolation to confirm their positive impact on the app, emulating cold starts and integrating the new Jetpack [Macrobenchmark](https://developer.android.com/studio/profile/macrobenchmark-intro) library.\n\n### Results\n\nThese changes didn't just lead to an immediate improvement across all the metrics, it also helped enhance overall user experience, along with invaluable learnings for the development team at Josh.\n\n- Improving bounce rates and retention helped Josh **retain 1M+** users compared to the baseline. Focusing on these two metrics improved the overall engagement within the app as well.\n- Play Store **ratings showed an upward positive trend**, post the launch of the app with startup improvements.\n- App startup time improved by **30% for the average user and became 3x faster for \\~10% users on older and low end devices**, thereby helping improve app responsiveness significantly for these users.\n\nMore importantly, this exercise in improving Android Vitals brought the whole team together, increasing the motivation of the team, especially the junior members. It cemented the importance of Vitals and even led to the team using some of the learnings in their other apps.\n\u003e *\"When partners in an ecosystem come together, the ecosystem grows together. The power of data and analytics is unprecedented. As a creator-first, content-forward and consumer-focused platform, we have always focused on creating the ultimate user experience, which relies heavily on the app's stability. Josh witnessed immediate accelerated growth following its launch. Working closely with the Google Play team helped us identify and rectify challenges like app stability and optimization early on. Our efforts with Google have helped us drive improved stability and enhancements in user retention and engagement\"*\n\u003e\n\u003e **-- Shailendra Sharma, SVP Product and Engineering, VerSe Innovation.**"]]