友盟+解析:Android的app启动耗时分析及启动时间优化

IT科技观

2022-01-20 10:13游戏领域创作者
关注

Android的app启动耗时是指:手指离开屏幕的前一帧开始计时,至页面跳转到信息页面完全展示结束。这段时间可称之为启动耗时。经研究得出:9.0版本耗时比8.1版本要多些,机体版本不同耗时也就不同,究竟是何问题导致的,下面就带大家理清楚Android的app启动耗时分析及启动时间优化。

一、Android的app启动耗时分析有三种方式:

· 冷启动

· 暖启动

· 热启动

以上三种方式从上到下依次启动耗时会减少。接下来一一讲解

冷启动

冷启动会出现在系统启动后或应用被系统kill掉后,首次启动应用,冷启动包括三个大步骤:

1. 启动APP,创建APP进程

· 加载和启动APP

· 显示一个空白的window

· 创建APP进程

2. 创建主线程,渲染第一帧画面

· 创建APP对象

· 启动主线程

· 创建MainActivity

· inflate页面的view

· 布局首屏

· 执行首次绘制

3. 将启动时创建的空白window替换为绘制好的activity,开始接受用户交互

使用上一步绘制完成的首屏替换第1步显示的空白window,开始接收用户的交互事件

热启动

热启动是耗时最少的启动方式,这种方式发生在应用进程退后台后,重新被用户唤起。此时内存中依旧保存着应用进程,因此系统只需要将应用进程从后台调至前台,无需做各种初始化、inflate、layout和渲染等等操作。

暖启动

暖启动的耗时介于以上两者之间,这种启动方式发生在以下可能情况:

用户退出应用后,系统依旧缓存这应用进程,没有回收,此时用户重新启动应用,此时无需再次创建进程,但依旧要创建activity,重走生命周期方法。

系统因内存紧张,回收了退居后台的原因进程,然后用户返回到该应用,此时应用需要重新创建进程和activity,但可以使用保留的数据对activity进行初始化。

针对具体的操作采用延时处理,对各个生命周期进行分析,着重优先加载界面,一般的ap启动速度都会在几百毫秒之内,由于系统的差异性,具体问题还需具体分析…当然也可以使用友盟+来解除顾虑,友盟+应用性能监控平台U-APM核心优势:

1.错误捕获能力强,类型丰富,提供Java崩溃、Native崩溃、Swift崩溃、Objective-C崩溃、ANR、自定义异常的捕捉

2.快速定位错误根源,提供行为日志、详细日志、内存快照、设备信息、自定义字段,帮您快速发现问题原因,提升问题解决效率

3.多种告警通道,提供邮件、钉钉、飞书、企业微信的告警触达通道,助您7*24小时监控应用情况。

4.专业产品服务,提供专业的客服+技术支持,以及丰富的用户课程,线下沙龙等活动,帮助您快速上手

二、Android的app启动时间优化

启动时间是系统性能的重要组成部分,因为用户必须等待启动完成后才能使用设备。就拿日常使用的汽车设备而言,冷启动的汽车,较短的启动时间至关重要(没有人喜欢在等待几十秒后才能输入导航目的地)。

首先需要明确的是,在Application的onCreate之前,这个时间都是无法进行优化的,因为这部分是系统替我们完成的,开发者无能为力。所以我们能做的,就是从Application的onCreate方法开始,到lauyout_main.xml第一次布局绘制完成之前,来进行启动时间的优化。

启动时间优化一个很好用的工具:友盟+U-APM启动分析功能。

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

有了这样方便的工具,再也不用担心启动优化时间这一个较为重要的环节出现问题了。

总结:

Android的app启动耗时分析及启动时间优化,一定要掌握最基本的优化方案,才能更加深入探讨性能原理问题。

U-APM应用性能监控平台,通过轻量级的集成接入即可拥有实时、可靠、全面的应用崩溃、ANR、自定义异常等捕获能力, 及卡顿、启动分析、内存分析、网络分析等性能监测能力,支持多场景、多通道智能告警监测,帮助 开发者高效还原异常、卡顿用户的访问路径和业务现场,缩短故障排查时间。提供云真机测试能力, 助力开发者从研发测试质量验收到线上问题复现排查,保障应用品质,提升测试效率。在云真机测试 期间自动采集崩溃信息,提供详尽的崩溃报告协助筛查,真正实现监控测试全流程深度打通。

举报/反馈