关于app启动时间优化的分析

20 篇文章 1 订阅
17 篇文章 0 订阅

每位用户都希望APP能够快速响应并加载。一个启动速度慢的APP 不符合用户期望,可能会令用户失望,并且可能会导致用户对您的应用程序评价不佳,甚至会卸载你的应用。那么针对这一现状如何改善呢?下面我们一起讨论应用的启动时间优化。首先我们需要了解APP启动的相关内容。

一、App 启动模式分类

App启动模式分以下三类 :

1.冷启动

APP从零开始,APP启动之前,系统没有为此 APP创建独立进程。比如:设备启动后,APP第一次Launch或者APP被Kill掉后的重启。这种类型的启动优化存在很大挑战,因为Android系统或应用还有其他更多的后台进程在运行。

启动流程大致如下:

点击Launcher 上的 icon开加载app -->立即显示白屏或黑屏等 --> Application onCreate --> Activity Init----> Activity onCreate ---> 初始化数据,填充显示View ---> Activity onResume等,详细请看下图:

App启动流程

2. 热启动

APP的热启动要比冷启动简单得多,内存开销也更低。APP热启动时候,所有的系统都是把你的Activity带到前台。如果APP的所有Activity仍驻留在内存中,则APP可以避免重复对象初始化、布局绘制和显示等工作。如果APP 在内存中被清理掉,比如调用ontrimmemory(),当响应热启动时,这些对象将重新被创建。

热启动与冷启动相同的屏幕行为:系统进程会显示一个空白屏幕,直到应用程序完成渲染后将此空白屏幕移除掉,此屏幕创建会在加载APP时候立即创建,如需查看创建流程,需要查看PhoneWindosManger中AddWindows方法。

3. 温热启动

处于冷启动与热启动之间,既包含一些冷启动的操作,又含有部分热启动的功能。例如以下两种状态:

1. 用户退出APP后重新Launch

此时此APP的进程可能会存在,然鹅,Activity 必须重新创建并调用onCreate方法

2. APP 被缓存中清理掉时。

此时用户重新Launch APP时,此APP的进程和Activity都需要重新创建,但是任务栈中会保存部分APP实例数据(bundle类型)传递个Activity onCreate方法

通过启动状态的相关描述,可以看出三者的过程各不相同,其中以冷启动过程最为繁琐,时间消耗最长。所以市面上所说的启动优化,一般都泛指冷启动的优化。

了解这些知识,那么应用的启动时间如何统计呢?在这里推荐友盟+U-APM性能检测工具

友盟U-APM启动分析核心功能

启动耗时趋势

友盟+U-APM 监控各版本应用的首次启动、热启动、冷启动耗时情况,整体评估应用的启动耗时是否符合预期;

统计启动的耗时数据并不是真正的目的,真正的目的在于对启动时间进行分析,找出启动过程中影响启动耗时的原因,所以除启动耗时功能外,友盟还提供了慢启动分析和启动崩溃分析,帮助开发人员查找问题。

慢启动设备分析

采集全量设备的启动情况,灵活自定义慢启动阈值,设置后实时生效,精准跟踪慢启动设备详情。

启动崩溃监控跟踪

监测采集启动条件下的应用崩溃信息,直接定位问题。

三、友盟U-APM性能检测工具

友盟提供App稳定性监控、性能监控和云真机测试平台。其中启动分析通过提供详尽的启动耗时、慢启动情况、启动崩溃数据。帮助您把控应用的启动性能状态,从源头减少客户流失提供云真机测试能力,助力开发者从研发测试质量验收到线上问题复现排查,保障应用品质,提升测试效率。在云真机测试期间自动采集崩溃信息,提供详尽的崩溃报告协助筛查,正实现监控测试全流程深度打通。

要做好应用的启动时间优化,就要先找出影响启动耗时的问题,不妨体验一下友盟+u-apm性能检测工具,这里只介绍了部分功能,友盟+u-apm平台已有demo,更多优质功能期待你的体验!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值