当前位置: 首页 > 后端技术 > Java

移动端性能优化系列—启动速度

时间:2023-04-02 00:19:18 Java

介绍:移动端性能对用户体验和留存有着至关重要的影响。作为开发者,你有没有被这样抱怨过,“这个APP怎么这么大?”在APP封面图上晃来晃去,点不进去”,“进入详情效果有点卡”,“4G用你的APP,我的流量有点不够用”等等这些问题直观反映一个有良好体验的应用程序,仅仅有功能是不够的。本文来自《2021友盟+移动应用性能挑战赛》的一个词条,作者:子铭;本文介绍笔者是如何借助友盟+U-APM工具解决启动问题的。移动端性能的好坏对用户体验和留存有着至关重要的影响。作为开发者,你有没有被这样抱怨过,“这个APP怎么这么大?”,“为什么我一直在APP封面图转悠,就是点不进去”,“效果输入细节有点卡”,“4G用你的APP,我的流量不够用”等等这些问题都直观的体现出来了,一个好的APP体验仅仅靠完善的功能是不够的。以下是我在性能优化方面总结的几点:启动速度优化流畅度优化资源优化内存优化APK体积优化今天我们来说说启动速度。应用程序启动流程冷启动从点击应用程序图标到UI界面完整展示并可供用户操作的整个过程。特点:最耗时,衡量标准的启动流程:点击Event->IPC->Process.start->ActivityThread->bindApplication->LifeCycle->ViewRootImpl热启动会从已有的应用进程启动,所以不会创建并初始化应用程序,但只会重新创建和初始化活动。特点:耗时少启动流程:LifeCycle->ViewRootImpl所以判断应用启动速度标准是冷启动的速度,即杀掉应用后重启的速度。此项目主要与您的竞争产品进行比较。你不应该在Application和Activity的生命周期回调中做任何耗时的操作。具体指标大概是你的onCreate、onResume、onStart等回调的总耗时不要超过400ms,否则用户在桌面上点击你的应用图标后会感觉到明显的卡顿。冷启动分析及优化方向冷启动涉及的相关任务在冷启动之前,首先会启动app,然后会加载一个空白窗口。最后,创建过程需要注意的是,这些都是系统的行为,一般情况下我们是不能直接干预的。.后续任务首先,创建一个Application,启动主线程,创建一个MainActivity,加载布局,安排屏幕第一帧。通常,第一帧界面绘制完成后,我们就可以认为启动结束了。下面是官方文档中的启动流程流程图,展示了系统进程和应用进程之间的切换是如何进行的。实际上是对启动过程的简要概述。优化方向我们的优化方向是Application和Activity生命周期阶段。我们不能在启动过程中干预系统任务。我们可以干预的是在创建应用程序和创建Activity的过程中可能出现的性能问题。这个过程具体是:Application的AttachBaseContextApplication的onCreateactivity的onResume方法,onResumeactivity的onStartactivity的onCreateactivity,完成第一帧的绘制。因此,我们必须尽量避免在这些方法中进行耗时的操作。而且一般情况下,一个应用的首页数据是需要通过网络请求的,所以用户启动应用希望能够快速进入首页,看到首页数据,这也是我们的一个基础来计算启动结束时间。U-APM在启动优化后的应用程序之前,使用友盟统计分析应用程序的日常活动和埋点等数据。当你发现友盟推出的U-APM时,快来试试吧。U-APM是友盟+推出的一款应用稳定性监测、性能监测和云真机测试平台。通过轻量级集成接入,您可以拥有实时、可靠、全面的应用崩溃、ANR、自定义异常等捕获能力,以及卡顿、启动分析等性能能力。支持多场景、多渠道的智能告警监控,帮助开发者高效恢复异常、停滞的用户访问路径、业务站点,缩短故障排查时间。下面我们来看一下启动分析的能力,看看U-APM都做了什么。U-APM支持开机趋势分析、慢启动分析、开机死机分析。启动趋势分析启动趋势可以直观展示应用程序启动时间的平均值、分位数、区间分布等数据,以及启动阶段的性能分解数据。它还可以分析多个版本迭代后启动时间的分布。慢启动分析慢启动分析有助于开发者溯源。该函数显示慢启动比例和慢启动设备列表。您可以在启动设置中自定义慢启动的划分。默认情况下,首次启动/冷启动超过3秒为慢启动,热启动超过1秒为慢启动。冷启动阶段的慢启动分析直观地显示了慢启动比例和平均慢启动时间。慢启动分布直观地展示了慢启动分布的设备、系统、运营商、版本、通道和区域。启动崩溃分析汇总了启动阶段的崩溃信息,支持对首次启动、冷启动、热启动三种状态的崩溃进行分类。默认启动时间限制为8秒,超过该时间的崩溃不会被归类为启动崩溃。这对于减少应用程序的启动时间有很大的帮助。官方提供了一个Demo总结,移动端性能优化是环环相扣的,启动时间优化也是一个比较重要的环节。U-APM的出现无疑是开发者的福音,帮助开发者及早发现问题并解决问题。至于U-APM的其他功能,大家可以登录官网体验。原文链接本文为阿里云原创内容,未经许可不得转载。