启动耗时分析之启动耗时趋势及启动崩溃跟踪

性能优化中启动耗时分析,有利于开发者进行启动时长优化。用户在使用APP的过程中能直观感受APP启动耗时情况,如果耗时过长,对用户来说体验感是不好的,如今,APP越来越内卷,用户的需求越来越挑剔,我们作为开发者不得不把启动耗时优化提上日程。

很多用户也会反馈与性能有关的问题,比如App启动时间太长、页面卡死、闪退等。 随着线上用户诉求的提高,很多开发同学也从线下测试性能演变到更关注线上性能问题,以此保障用户体验。

基于用户关于启动分析指标的使用需求反馈,友盟+U-APM来帮忙,支持双端Android和iOS采集的启动分析功能。

启动分析功能帮助把控应用的启动性能状态,助力从源头减少客户流失,帮助开发者日常监控应用的启动性能,及时发现导致慢启动、启动崩溃等问题并解决,评估应用的启动性能, 测试慢启动、启动崩溃等问题。

一、友盟u-apm功能亮点

1、启动耗时趋势:

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

启动性能拆解:

通过U-A PM预置或手动埋点的方式定义启动阶段拆解方式,监控各步骤的性能耗时;

慢启动设备分析:

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

2、启动崩溃监控跟踪

监测采集启动条件下的应用崩溃信息,观测启动阶段应用的用户流失情况。

二、友盟u-apm如何实现双端接入

满足以下条件,即可实现Android 和iOS双端的接入:

Android端:U-APM SDK版本 V1.3.0及以上;基础组件包commonV9.3.8及以上

1、在工程build.gradle配置脚本中buildscript和allprojects段中添加【友盟+】SDK新maven仓库地址。(注意由原来的maven 修改为:maven)

2、一定要做好合规哦!

3、完成初始化后,按照集成文档做启动分析相关设置。

IOS端:

Cocoapods自动集成(推荐)

更新Pod环境

在终端执行pod setup命令,拉取最新pod库时间较长。

$ pod setup

集成组件化各业务SDK

Cocoapods集成友盟+可灵活配置所需SDK,如工程target名为UMPlusDemo,可选添下面的SDK,如在项目根目录的Podfile的格式:

target 'UMPlusDemo'do

pod ‘<友盟+sdk名>'

end

三、启动耗时中有哪些可以优化的方向

1、提前加载SharedPreferences

在multidex之前CPU是空闲的,加载系统类是可行的,所以可充分利用这段时间加载SharedPreferences。

2、启动阶段不启动子进程

初始化子进程会消耗CPU资源,在启动阶段会导致主进程CPU资源紧张,导致启动阶段资源紧张初始化过慢。

3、启动阶段不启动Service ContentProvider

在Application 生命周期方法attachBaseContext方法和onCreate方法中间还会执行ContentProvider生命周期方法,如果在application初始化过程中启动了service或者contentprovider会执行ContentProvider生命周期方法,非常耗时。

4、 提前异步类加载

对启动阶段用到的类进行提前异步加载,加载方法有两种:

A.Class.forName() 只加载类本身及其静态变量的引用类

B.new 类实例 可以额外加载类成员变量的引用类

文章就介绍到这里,希望能够帮助到大家!文章中介绍到的友盟,官网可以免费体验,另外,u-apm搭载的“云真机”功能具有代表性,助力开发者平衡成本与需求,提升研发效率。提供了灵活地测试操作界面,支持ADB调试、WEB远程调试、扫码、抓包、虚拟定位等测试功能,并提供了测试报告供开发者后续查看!

你可能感兴趣的:(启动耗时分析之启动耗时趋势及启动崩溃跟踪)