Lyft 團隊新突破 | 藉助 Android Vitals 縮短啟動時間,提高使用者體驗
作者 / 產品營銷經理 Mauricio Vergara,且由 Thousand Ant 提供支援。
Lyft 致 力於打造優秀的應用。作為一家網約車公司,Lyft 需要確保為數千萬乘客和數十萬司機提供時效性強的服務。因為市場規模巨大,應用的每一次執行緩慢、卡頓或崩潰都會浪費數千名使用者的時間。即使一個小問題也可能帶來不少使用者流失。幸運的是,Lyft 的開發團隊一直密切關注應用效能,這也幫助他們第一次注意到司機端 Android 應用啟動變慢的問題。
他們要迅速找到問題的根源並提出解決方案,向領導層證明這一投入是值得且合理的。這意味著團隊需要回答一些棘手的問題: 新方案瓶頸在哪裡、如何影響使用者體驗以及對團隊有多重要。值得慶幸的是,他們有一個強大的工具可以幫助他們找到答案。在 Android Vitals (可以提高 Android 裝置應用穩定性和效能的 Google Play 工具) 的幫助下,他們確定了問題所在,也就有了充分理由說服領導層將其提上日程並投入相應的資源。接下來我們將為您介紹詳細方法:
-
Android Vitals
http://play.google.com/console/about/vitals/
調整優先順序
Lyft 開發團隊首先要弄清楚這個問題的緊迫性,以便於說服領導層為其投入資源。加快 Lyft Driver 的啟動時間,與任何提高應用質量的建議一樣,都需要在開發者精力有限的前提下,在各種需求間相互權衡,譬如引入新的功能、優化系統架構或改善資料科學。通常來說,優化效能很難與業務指標相關聯,這是說服領導層為其投入資源的挑戰之一。
而 Android Vitals 可以幫助他們準確定位關鍵問題。Vitals 允許開發者訪問其應用的相關效能資料,包括應用無響應 (ANR) 錯誤、電池電量消耗、渲染和 應用啟動時間 。每個指標的當前和歷史性能資料都基於真實裝置反饋,還可以與同類別中其他應用的效能進行比較。開發團隊藉助 Android Vitals 發現了一個緊迫問題: Lyft Driver 應用的啟動時間比其它 10 個同類應用慢 15-20%。
-
應用啟動時間
http://support.google.com/googleplay/android-developer/answer/9844486
接下來,團隊需要為專案確定合適的改進目標,即啟動緩慢對業務目標與使用者體驗的影響需要相匹配。Android Vitals 為應用提供了在網約車行業中與其他同類應用的直接對比資料,清楚地表明瞭這一點。開發團隊推測: 一位開發者花費一個月的時間研究該問題,就足以顯著縮短應用啟動時間。
利用 Android Vitals 提供的豐富資料,團隊積極響應 Lyft 對構建優秀應用的承諾,向領導層展示了改善客戶體驗的時機、合理範圍、可實現的目標以及明確的競爭策略,在如此充分的理由下他們獲得了批准。
實現方法
Lyft 使用 "互動時間" (也被稱為 完全顯示所用時間 ) 作為主要的啟動時間指標。Lyft 團隊分析了應用的每個釋出階段,尋找影響它的因素。Lyft Driver 應用啟動分四個階段: 1) 啟動應用程序 2) "Activity" 啟動介面渲染。3) "Bootstrap" 傳送網路請求以獲取渲染主螢幕所需的資料。4) "Display" 開啟 Driver 應用的介面。在嚴謹的分析後發現,減速發生在第三階段,即 bootstrapping 階段。確定瓶頸後,團隊採取了以下幾個步驟來解決問題。
-
完全顯示所用時間
http://developer.android.google.cn/topic/performance/vitals/launch-time#time-full
首先,他們減少了關鍵啟動路徑上不需要的網路呼叫。在拆解後端服務後,他們可以安全地徹底刪除啟動路徑中的一些網路呼叫,也可以選擇非同步執行網路呼叫。如果某些資料在應用執行期間仍然需要,但在應用啟動期間不需要它們,這些呼叫將被設為非阻塞,以允許在沒有它們的情況下啟動可以繼續進行。阻塞的網路呼叫可以安全地移到後臺。最後,他們還選擇在會話之間快取資料。
這些細微的改進使得應用啟動時間顯著減少了 21%。並且 Lyft Driver 中的打車訂單也增加了 5%。有了如此顯著的效果,團隊得到了足夠的支援,專門建立了一個移動裝置效能工作流,並新加入了一名工程師以便繼續改進應用。這一舉措的成功引起了整個團體的注意,幾位經理主動聯絡他們,探討在改進應用質量方面如何進行進一步投入。
經驗與洞察
這些努力的成功帶來了幾個深刻的洞察,適用於任何團隊。
隨著應用和團隊的發展,應用的優秀體驗變得愈發重要。雖然開發者會密切關注應用,並通常在第一時間發現效能存在的問題,但很難引起整個團隊的注意。Android Vitals 向開發者提供了一種更直觀的方式,用資料支援開發者的分析,使其更容易將效能指標與業務目標相結合。
當您開始準備啟動 應用質量優化計劃 時,可以先從小的點入手,再持續改善並著眼於可執行的方向,藉助適當的資源取得顯著成果。
及時溝通並讓團隊的其他成員參與開發團隊的質量管理工作也很重要。這些關於目標、計劃和結果的持續更新將幫助您保持整個團隊步調一致,同心協力。
更多資源
Android Vitals 只是 Android 生態系統中用於幫助瞭解和改善應用啟動時間和整體效能的眾多工具之一。另一個補充工具是 Jetpack Macrobenchmark ,它有助於在開發和測試期間提供各種指標的資訊。與提供來自真實使用者裝置資料的 Android Vitals 相比,Macrobenchmark 允許您在本地對程式碼的特定區域進行基準測試和特定測試,包括應用啟動時間。
-
Jetpack Macrobenchmark
http://developer.android.google.cn/studio/profile/macrobenchmark#startup
Jetpack 應用啟動庫 提供了一種方法,使得初始化元件在應用啟動時更簡單、更高效。開發者使用此庫來簡化啟動序列並明確設定初始化順序。與此同時," 覆蓋面和裝置 " 可以幫助您瞭解使用者和問題分佈,以便您更好地決定要針對哪些規格的裝置開發應用,要將應用釋出到哪些地方,以及要測試的內容。該工具提供的資料使您的團隊能夠優先考慮應用質量提升,並確定哪些改進能對大多數使用者產生更大影響。 Perfetto 是另一個寶貴的資源,作為一個開源系統跟蹤工具,您可以使用它來檢測您的程式碼和診斷啟動問題。總之,這些工具可以幫助您的應用平穩執行,提高使用者滿意度,並且讓您的整個團隊都支援您在提升質量方面所做的工作。
-
Jetpack 應用啟動庫
http://developer.android.google.cn/topic/libraries/app-startup -
覆蓋面和裝置
http://play.google.com/console/about/reachanddevices/ -
Perfetto
http://perfetto.dev
如果您有興趣讓自己的團隊參與 應用質量優化 的計劃,請前往 官方網站 ,檢視我們針對開發者的案例分享。也歡迎您持續關注 "Android 開發者" 微信公眾號,及時瞭解更多精彩內容和 開發者故事 。
-
官方網站: 應用質量優化計劃
http://developer.android.google.cn/stories/apps/lyft
您可以通過下方二維碼或在文章底部私信,向我們提交反饋,分享您喜歡的內容、發現的問題。您的反饋對我們非常重要,感謝您的支援!
推薦閱讀
如頁面未載入,請重新整理重試
點選屏末 | 閱讀原文 | 即刻 瞭解關於 Android Vitals 的更多內容
- 共碼未來 | 持續賦能開發者和初創生態
- 要近萬元買iPhone 14 Pro才能玩靈動島?Android 開發者:別急,我給你自制了一個 App
- 揭祕 Jetpack Compose 快照系統 | 開發者說·DTalk
- 輕鬆學習,考取證書 | 商品詳情繫列內容第十講
- 是時候讓所有人能一起聊個痛快了!
- 在 Jetpack Compose 中安全地使用資料流
- 共碼未來 | 助力打造現代、高效、流暢的開發體驗
- 共碼未來丨2022 Google 谷歌開發者大會主旨演講亮點回顧
- 京東金融客戶端使用者觸達方式的探索與實踐
- 微信安卓測試版 8.0.28 開發者更新內容公佈:統一檔案相關介面錯誤碼,升級地圖 SDK 等
- 讓您的遊戲在 PC 閃耀 | Google Play Games Beta 版現已開放更多市場
- 打造卓越的 Android 遊戲體驗
- Android 老手翻車了,竟拿不到 Application Context?| 開發者說·DTalk
- 2022 OPPO 開發者大會拉開帷幕,這些重點你不容錯過!
- Firebase Crashlytics 近期更新 | 在 Android Studio 中更好地除錯應用
- 谷歌為 Pixel 6 系列推出 Android 13 降級 12 方案:繞過防回滾機制,只面向開發者
- 提升效率,減少錯誤 | Twitter 採用 Jetpack Compose 進行功能開發
- Android Jetpack: 利用 Palette 進行圖片取色 | 開發者說·DTalk
- Android 官方現代 App 架構指南 | 開發者說·DTalk
- Smule 藉助 Oboe 音訊庫提升使用者體驗,助力音樂創作 | Android 開發者故事