巧用友盟+U-APM 实现移动端性能优化—启动速度

本文涉及的产品
应用实时监控服务-用户体验监控,每月100OCU免费额度
应用实时监控服务-应用监控,每月50GB免费额度
简介: 移动端性能对用户体验、留存有着至关重要的影响,一个体验良好的应用,只有功能健全还不够,以下是我在性能优化上总结的几点:启动速度优化、流畅度优化、资源优化、内存优化、APK 体积优化。今天先聊聊,启动速度的那些事。

移动端性能对用户体验、留存有着至关重要的影响,作为开发者是不是被这样吐槽过,这个APP 怎么这么大?怎么一直在APP 封面图转悠,点不进去进入详情效果有些卡 4G 使用你们的APP,我的流量有点不够啊等等,这些问题都直观反映出,一个体验良好的应用,只有功能健全还不够,以下是我在性能优化上总结的几点:

启动速度优化

流畅度优化

资源优化

内存优化

APK 体积优化

今天先聊聊,启动速度的那些事

应用启动流程

冷启动

从点击应用图标到UI界面完全显示且用户可操作的全部过程。

特点:耗时最多,衡量标准

启动流程:Click Event -> IPC -> Process.start -> ActivityThread -> bindApplication -> LifeCycle -> ViewRootImpl

热启动

因为会从已有的应用进程启动,所以不会再创建和初始化Application,只会重新创建并初始化Activity

特点:耗时较少

启动流程:LifeCycle -> ViewRootImpl

因此判断应用启动速度的的标准是冷启动的速度,即杀掉应用后重新启动的速度,此项主要是和你的竞品对比。

不应在Application 以及Activity 的生命周期回调中做任何费时操作,具体指标大概是你在onCreateonResumeonStart 等回调中所花费的总时间最好不要超过400ms,否则用户在桌面点击你的应用图标后,将感觉到明显的卡顿。

冷启动分析及优化方向

冷启动涉及的相关任务

冷启动之前

1. 首先,会启动 App

2. 然后,加载空白Window

3. 最后,创建进程

需要注意的是,这些都是系统的行为,一般情况下我们是无法直接干预的。

随后任务

1. 首先,创建Application

2. 启动主线程

3. 创建MainActivity

4. 加载布局

5. 布置屏幕

6. 首帧绘制

通常到了界面首帧绘制完成后,我们就可以认为启动已经结束了。

下面是官方文档中的启动过程流程图,显示系统进程和应用进程之间如何交接工作。实际上对启动流程的简要概括。

1.jpg

优化方向

我们的优化方向就是Application Activity 的生命周期这个阶段,启动中的系统任务我们无法干预,能干预的就是在创建应用和创建Activity 的过程中可能会出现的性能问题。这一过程具体就是:

Application attachBaseContext

Application onCreate

activity onCreate

activity onStart

activity onResume

activity onResume 方法完成后才开始首帧的绘制。所以这些方法中的耗时操作我们是要极力避免的。并且,通常情况下,一个应用的主页的数据是需要进行网络请求的,那么用户启动应用是希望快速进入主页以及看到主页数据,这也是我们计算启动结束时间的一个依据。

U-APM 在启动优化上的应用

以前使用友盟统计来分析App 日活、埋点等数据,发现友盟推出的 U-APM,赶紧来尝尝鲜。

U-APM 是友盟+推出的App 稳定性监控、性能监控和云真机测试平台。通过轻量级的集成接入即可拥有实时、可靠、全面的应用崩溃、ANR、自定义异常等捕获能力,及卡顿、启动分析等性能能力,支持多场景、多通道智能告警监控,帮助开发者高效还原异常、卡顿用户的访问路径和业务现场,缩短故障排查时间。就启动分析这项能力来看看,U-APM都做了什么。

U-APM支持启动趋势分析、慢启动分析、启动崩溃分析。

启动趋势分析

启动趋势较为直观的展示应用启动耗时的平均值、分位值、区间分布等数据,以及启动阶段的性能分解数据,也能分析出,多版本迭代后,启动时间的分布状况。

2.jpg

3.jpg

4.jpg

慢启动分析

慢启动分析,有助于开发者追根溯源,该功能展示慢启动情况的占比以及慢启动设备列表,您可以在启动设置中自定义慢启动的划分,默认首次启动/冷启动超过3秒为慢启动,热启动超过1秒为慢启动。

冷启动阶段的慢启动分析,直观表现出慢启动比例以及慢启动平均耗时。

5.jpg

6.jpg

启动崩溃分析

归纳启动阶段中出现的崩溃信息,支持划分首次启动、冷启动、热启动状态下的崩溃,默认启动耗时上限为8秒,超出时间的崩溃不被划分至启动崩溃。

7.jpg

8.jpg

这对减少应用启动时间,提供了巨大帮助,官方已提供Demo

总结

移动端性能优化环环相扣,启动时间优化也是较为重要的一个环节,U-APM的出现,无疑是开发者的福利,帮助开发者及早发现问题,解决问题,至于U-APM其他功能,可以登录官方网站去体验。

作者:任裕斌

相关实践学习
通过云拨测对指定服务器进行Ping/DNS监测
本实验将通过云拨测对指定服务器进行Ping/DNS监测,评估网站服务质量和用户体验。
相关文章
|
监控 测试技术 API
移动端性能监测工具篇之U-APM
移动端性能监测工具篇之U-APM
374 0
|
监控 测试技术 API
巧用友盟+U-APM 实现移动端性能监测
善用工具可以高效地去监控App的性能问题,帮助开发者及时修复产品体验上的缺陷。市面上APM工具很多,因为笔者曾在项目中使用过U-App进行过应用信息的统计,在此来说一些使用友盟U-APM的体验。
巧用友盟+U-APM 实现移动端性能监测
|
监控 JavaScript 前端开发
巧用友盟+U-APM 解决uniapp移动端崩溃的问题
本案例是为我校订制的智慧校园APP,由于我校并没有官方的校园APP所以导致学生需要频繁登陆教务系统网站,且因本校教务系统网站对移动端的兼容不是很完善,所以导致部分信息无法清晰查看,基于此,本项目应运而生。在开发工具方面,选择了使用uniapp,uniapp是一个使用Vue.js 开发所有前端应用的框架,开发者编写一套代码,可发布到iOS、Android、Web(响应式)、以及各种小程序(微信/支付宝/百度/头条/QQ/快手/钉钉/淘宝)、快应用等多个平台。这能为我们大幅度减少开发时间,提高开发效率。
巧用友盟+U-APM 解决uniapp移动端崩溃的问题
|
存储 监控 Java
1个小时接入友盟+ U-APM:解决移动应用崩溃、性能、内存的云监控分析
本文主要是一次产品需求讨论之后的功能论证,公司正式的APP接入友盟+ U-APM还未上线。而本文也是花了一个小时尝试接入U-APM的一种实验,过程比较顺利,而产品部对于这种性能指标的监控方式也比较认可,毕竟一次接入之后就可以实现多种应用。而友盟+ U-APM的功能不止于此,后续对于U-APM的深入对接也不会止步。
1个小时接入友盟+ U-APM:解决移动应用崩溃、性能、内存的云监控分析
|
监控 前端开发 小程序
使用友盟+的APM服务实现解决卡顿眩晕问题提高用户体验
解决多张静态图片移动卡顿的问题,那么就需要有一定的逻辑处理基础,编写代码到一个让图片流畅的过程。找到一个平滑移动的方法,对于一个初学者来说也许是个不小的挑战。
使用友盟+的APM服务实现解决卡顿眩晕问题提高用户体验
|
存储 JSON Java
使用友盟+的APM服务实现基于Xamarin.Android的应用程序启动性能优化
随着开发平台的普及, 我们需要正确的⼯具和⽅法来满⾜不断增⻓的需求。Xamarin就是这样⼀种框架, 它⽀持在 Android、 iOS 和 Windows 平台上共享单个代码库。所以,我们将在 Xamarin.Android应⽤程序中测试性能, 就像在 AndroidStudio 中使⽤ Java 开发⼀样, 我们可以使⽤c#对性能进⾏测试, 从⽽优化启动时间。
使用友盟+的APM服务实现基于Xamarin.Android的应用程序启动性能优化
|
XML Java 数据库
使用友盟+的APM服务实现基于APK加速启动时间的Android系统资源优化
为了尽可能减⼩应⽤的⼤⼩,我们应该在发布版本中移除不使⽤的代码和资源。 另外还存在两个优化⽅向可以⽤来缩减应⽤程序的占⽤空间,⼀项是使⽤混淆处理功能,该功能会缩短应⽤的类 和成员的名称;另⼀项是使⽤优化功能,该功能会采⽤更积极的策略来进⼀步减⼩应⽤的⼤⼩。本⽂将介绍如何通过APK的资源优化来减轻应⽤程序的占⽤空间从⽽节省⽤户资源。
使用友盟+的APM服务实现基于APK加速启动时间的Android系统资源优化
|
数据采集 监控 小程序
使用友盟+的APM服务实现对移动端APP的性能监控
对于信息系统服务,一般我们的重点监控对象都是核心的后端服务,通常会采用一些主流的APM(Application Performance Management)框架进行监控、告警、分析。那么对于移动端的APP、小程序的运行时状态如何进行实时监控与分析呢?经过这次CSDN官方的推荐,友盟+提供的APM服务可以实现我们的这一目标,下面我们就尝试集成体验下友盟+提供的这款APM服务。
使用友盟+的APM服务实现对移动端APP的性能监控
|
监控 数据处理 调度
友盟+U-APM 移动应用性能体验报告:Android崩溃率达0.32%,OPPO 、华为、VIVO 崩溃表现良好
应用性能稳定是良好用户体验中非常关键的一环,而现实情况却是应用崩溃、卡顿、加载缓慢、页面白屏等问题,频频出现在用户的真实体验之中,成为影响业务表现的直接杀手。为此,应用性能管理(APM)正在国内外蓬勃发展,被越来越多的企业所认可。
友盟+U-APM 移动应用性能体验报告:Android崩溃率达0.32%,OPPO 、华为、VIVO 崩溃表现良好
|
监控 数据处理 开发工具
友盟+U-APM 移动应用性能体验报告 :APM越发受到关注,第三方监控工具覆盖已超四成
近日,国内领先的全域数据智能服务商——友盟+,发布了《友盟+U-APM 移动应用性能体验报告》。据悉,友盟+于去年将原移动分析U-App错误分析模块正式升级为U-APM应用性能监控平台,经过近一年的观察,通过DEM 视角分析移动应用端的性能表现发布这份报告,旨在帮助开发者清晰了解行业动态,精准定位自身产品位置。
友盟+U-APM 移动应用性能体验报告 :APM越发受到关注,第三方监控工具覆盖已超四成