服务粉丝

我们一直在努力
当前位置:首页 > 财经 >

Lyft 团队新突破 | 借助 Android Vitals 缩短启动时间,提高用户体验

日期: 来源:Android Performance收集编辑:Android

作者 / 产品营销经理 Mauricio Vergara,且由 Thousand Ant 提供支持。


Lyft 致力于打造优秀的应用。作为一家网约车公司,Lyft 需要确保为数千万乘客和数十万司机提供时效性强的服务。因为市场规模巨大,应用的每一次运行缓慢、卡顿或崩溃都会浪费数千名用户的时间。即使一个小问题也可能带来不少用户流失。幸运的是,Lyft 的开发团队一直密切关注应用性能,这也帮助他们第一次注意到司机端 Android 应用启动变慢的问题。

他们要迅速找到问题的根源并提出解决方案,向领导层证明这一投入是值得且合理的。这意味着团队需要回答一些棘手的问题: 新方案瓶颈在哪里、如何影响用户体验以及对团队有多重要。值得庆幸的是,他们有一个强大的工具可以帮助他们找到答案。在 Android Vitals (可以提高 Android 设备应用稳定性和性能的 Google Play 工具) 的帮助下,他们确定了问题所在,也就有了充分理由说服领导层将其提上日程并投入相应的资源。接下来我们将为您介绍详细方法: 

  • Android Vitals
    https://play.google.com/console/about/vitals/

调整优先级



Lyft 开发团队首先要弄清楚这个问题的紧迫性,以便于说服领导层为其投入资源。加快 Lyft Driver 的启动时间,与任何提高应用质量的建议一样,都需要在开发者精力有限的前提下,在各种需求间相互权衡,譬如引入新的功能、优化系统架构或改善数据科学。通常来说,优化性能很难与业务指标相关联,这是说服领导层为其投入资源的挑战之一。

而 Android Vitals 可以帮助他们准确定位关键问题。Vitals 允许开发者访问其应用的相关性能数据,包括应用无响应 (ANR) 错误、电池电量消耗、渲染和应用启动时间。每个指标的当前和历史性能数据都基于真实设备反馈,还可以与同类别中其他应用的性能进行比较。开发团队借助 Android Vitals 发现了一个紧迫问题: Lyft Driver 应用的启动时间比其它 10 个同类应用慢 15-20%。

  • 应用启动时间
    https://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 阶段。确定瓶颈后,团队采取了以下几个步骤来解决问题。

  • 完全显示所用时间
    https://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
    https://developer.android.google.cn/studio/profile/macrobenchmark#startup


Jetpack 应用启动库提供了一种方法,使得初始化组件在应用启动时更简单、更高效。开发者使用此库来简化启动序列并明确设置初始化顺序。与此同时,"覆盖面和设备" 可以帮助您了解用户和问题分布,以便您更好地决定要针对哪些规格的设备开发应用,要将应用发布到哪些地方,以及要测试的内容。该工具提供的数据使您的团队能够优先考虑应用质量提升,并确定哪些改进能对大多数用户产生更大影响。Perfetto 是另一个宝贵的资源,作为一个开源系统跟踪工具,您可以使用它来检测您的代码和诊断启动问题。总之,这些工具可以帮助您的应用平稳运行,提高用户满意度,并且让您的整个团队都支持您在提升质量方面所做的工作。


  • Jetpack 应用启动库
    https://developer.android.google.cn/topic/libraries/app-startup
  • 覆盖面和设备
    https://play.google.com/console/about/reachanddevices/
  • Perfetto
    http://perfetto.dev


如果您有兴趣让自己的团队参与应用质量优化的计划,请前往官方网站,查看我们针对开发者的案例分享。也欢迎您持续关注 "Android 开发者" 微信公众号,及时了解更多精彩内容和开发者故事

  • 官方网站: 应用质量优化计划
    https://developer.android.google.cn/stories/apps/lyft

相关阅读

  • Jetpack 更新一览 | 2022 Android 开发者峰会

  • 作者 / 产品经理 Amanda AlexanderAndroid Jetpack 是现代 Android 开发 (Modern Android Development) 的关键组件。Android Jetpack 套件包含超过 100 个库、工具及指南,可
  • 关于调整校内核酸检测时间的通知

  • 点击蓝字关注我们关于校内核酸检测时间调整的通知各位同学: 鉴于目前核酸检测政策的调整,明日起校内核酸点(风雨操场一期)采集时间调整为:15:30-16:30,每日采集一小时,请各位同
  • 怎么理解CPU负载与CPU使用率

  • 1、简介存储、内存和 CPU(中央处理器)等系统资源不足会极大地影响应用程序的性能。因此,监控这些组件至关重要。与磁盘和内存不同,监控 Linux 系统上的 CPU 使用率并不那么简单
  • 怀孕的第九个月

  • 1距离预产期还有10天,现在我处于随时都有可能去医院生孩子的状态,所以想抓紧时间记录下人生中这独一无二的片刻和你们分享。是什么样的感觉呢?就像高考前夜,想好好睡觉但睡不着,
  • 本质问题就搞错了。。

  • 昨天有个小伙伴问了个很有意思的东西,他说现在不是房子不好卖,大家还贷款压力大么。为啥不能把房贷时间拉长,比如说现在最长贷款时间30年,拉长到40或者50年,每个月还款负担不就轻
  • 一个茶艺师转型程序员的小故事

  • 太稳说:别让梦想只是梦想,而要去创造机会,让它成为现实。今天分享的这个故事,是前段时间极客时间超级会员日的时候,我们一个超级会员分享的,让我非常感动。感动的不是因为他是我们

热门文章

  • “复活”半年后 京东拍拍二手杀入公益事业

  • 京东拍拍二手“复活”半年后,杀入公益事业,试图让企业捐的赠品、家庭闲置品变成实实在在的“爱心”。 把“闲置品”变爱心 6月12日,“益心一益·守护梦想每一步”2018年四

最新文章

  • Linux Readahead 预读机制分析(Linux 4.14)

  • 一、基本概念设计背景文件访问类型一般是顺序的,访问[A, B]范围的数据后,接下来很可能访问[B+1, B+N]数据。由于访问磁盘、flash等存储器件比较耗时,在访问 [A, B]的时候,如果提
  • Jetpack 更新一览 | 2022 Android 开发者峰会

  • 作者 / 产品经理 Amanda AlexanderAndroid Jetpack 是现代 Android 开发 (Modern Android Development) 的关键组件。Android Jetpack 套件包含超过 100 个库、工具及指南,可
  • 对父母的印象,是否定格在自己中学时期?

  • 人生的旅途中,难免会离开父母无论是外出求学,还是去大城市奋斗都减少了与父母相聚的时光我们对父母最深的印象也仿佛定格在了中学时期……2022年,我做了适老化项目,前后和团队访
  • 阳转阴了,记录一下和病毒两次团战失利的全过程

  • 为何记录?这一次感染,个人认为有几个点比较有代表性,又恰逢政策放开的当口,在每个人都会被感染的情况下,给大家提供一些参考:被传染的时间和地点很明确,方便大家计算潜伏期:因为之前
  • 梅西夺冠,一场精彩的比赛,一个时代的落幕

  • 当然,对梅西来说,是个美好的落幕,梅球王终于不再是无冕之王!​看到朋友圈有小伙伴发:“06年德国世界杯,天才少年梅西横空出世,但是因为主教太保守,在1:0领先德国后换下了里克尔梅,导