作者 / Ben Weiss
Turo 是全球最大的汽车共享市场,拥有值得信赖的车主,充满活力的社区,用户可以在任何地点预订他们想要的任何车辆。
Turo 的开发者最近致力于改善其 Android 应用的启动性能。启动时间 是用户对应用的第一印象,较慢的加载会对用户的留存和互动造成负面影响。Turo 团队希望用户在每次启动应用时获得更快速、更精简的体验。借助 Android 的最佳工具、资源和实践,他们成功将应用的启动时间缩短了 77%。
使用 App Startup 库做好准备
应用初始化包括应用的整个启动过程以及呈现第一个界面框架前运行的所有代码。对于 Turo 用户而言,这意味着他们在看到应用主屏幕之前,必须等待应用完成初始化启动、同步网络请求以及播放自定义启动画面动画。
Turo 的开发者意识到,为了缩短应用的加载时间,他们需要压缩并删除许多繁琐的启动项目。为了更快地实现这一目的,Turo 工程师使用了 Android 的 App Startup 库。
App Startup 库为 Turo 开发者提供了一种可在应用启动时初始化多个组件的简单且快速的方法。开发者可以借此选择要对哪些组件进行初始化,以及初始化的顺序,从而显著改善加载时间。App Startup 库为 Turo 后续的启动优化工作奠定了基础。
延迟网络请求并缩短启动画面的时间
在优化之前,应用会依次执行多个网络请求,然后显示一秒钟自定义的 启动画面动画,随后用户才会进入应用的主屏幕。这导致了应用启动过程缓慢,尤其是在用户网络连接不佳的时候。
对 Turo 开发者而言,移除启动画面是一种改善用户感知加载时间的简单方法。通过并行和异步处理网络请求,开发者可以大幅加快用户访问主屏幕的速度。Turo 的高级软件工程师 Pavlo Stavytskyi 说: "最初,我们使用了专用的 SplashActivity 来运行所有启动工作,然后将应用路由至 HomeActivity。但是,最新的指南并不推荐这种方法。因此,我们取消了冗余的 SplashActivity,并利用 Splash Screen API 将所有启动逻辑转移到根 Activity 中。"
与此同时,Turo 也执行了许多其他启动网络请求以为用户打造各不相同的个性化体验。"如果有客户访问此应用,一些网络请求有助于确定要在启动画面之后显示什么页面。"Pavlo 说,"虽然默认显示主屏幕,但在某些特殊情况下,用户可以直接重定向到正在进行的车辆预订或反馈页面。"
该团队不想因为检查这些特殊场景而降低应用每次的启动速度。Turo 目前采取了始终默认打开主屏幕的新方法,并异步执行网络请求。如果需要重定向,则会在主屏幕的上方显示相应的页面。
应用基准配置文件
Turo 团队还应用了 基准配置文件 来提升应用的性能。基准配置文件有助于预先编译启动代码路径。根据 Macrobenchmark 测试,这可以进一步将 Turo 的应用启动时间缩短 15%。Pavlo 说: "移除所有同步网络请求提高了启动持续时间的确定性,基准配置文件的应用也变得更有意义。"
性能的提升可以提高用户的留存率、交易量以及用户对应用的评级。基准配置文件是一种大幅提高应用性能的快速且可靠的方法。
优先考虑启动性能
应用的启动时间受众多因素影响。开发者需要确定要优化哪些因素、优化的时间和方式,才能确保实现最佳用户体验。
"重要的是从事半功倍的任务开始优化。"Pavlo 说,"工程师需要将时间和资源分配到不同的工作任务中,在许多情况下,他们都需要在产品开发和性能优化之间进行权衡。但是,将性能作为独立的产品特性是成功的必经之选。"
立即优化您的应用
借助 Android 应用优化最佳实践、Android App Startup 库,和基准配置文件来缩短应用的启动时间。
您还可以阅读完整文章,详细了解 Turo 如何借助 Android 开发者工具和最佳实践来提升应用启动效率。欢迎您持续关注 "Android 开发者" 微信公众号,及时了解更多开发技术和产品更新等资讯动态。
版权声明
禁止一切形式的转载-禁止商用-禁止衍生 申请授权