共计 1903 个字符,预计需要花费 5 分钟才能阅读完成。
本文出自于“「2021 友盟 + 挪动利用性能挑战赛」”中的参赛作品,该文章表述了作者如何借助友盟 + U-APM 工具解决了启动问题。
挪动端性能对用户体验、留存有着至关重要的影响,作为开发者是不是被这样吐槽过,“这个 APP 怎么这么大?”、“怎么始终在 APP 封面图转悠,点不进去”、“进入详情成果有些卡”、“用 4G 应用你们的 APP,我的流量有点不够啊”等等,这些问题都直观反映出,一个体验良好的利用,只有性能健全还不够,以下是我在性能优化上总结的几点:
- 启动速度优化
- 晦涩度优化
- 资源优化
- 内存优化
- APK 体积优化
明天先聊聊,启动速度的那些事
利用启动流程
冷启动
从点击利用图标到 UI 界面齐全显示且用户可操作的全副过程。
特点:耗时最多,衡量标准
启动流程:Click Event -> IPC -> Process.start -> ActivityThread -> bindApplication -> LifeCycle -> ViewRootImpl
热启动
因为会从已有的利用过程启动,所以不会再创立和初始化 Application,只会从新创立并初始化 Activity。
特点:耗时较少
启动流程:LifeCycle -> ViewRootImpl
因而判断利用启动速度的的规范是冷启动的速度,即杀掉利用后重新启动的速度,此项次要是和你的竞品比照。
不应在 Application 以及 Activity 的生命周期回调中做任何费时操作,具体指标大略是你在 onCreate,onResume,onStart 等回调中所破费的总工夫最好不要超过 400ms,否则用户在桌面点击你的利用图标后,将感觉到显著的卡顿。
冷启动剖析及优化方向
冷启动波及的相干工作
冷启动之前
- 首先,会启动 App
- 而后,加载空白 Window
- 最初,创立过程
须要留神的是,这些都是零碎的行为,个别状况下咱们是无奈间接干涉的。
随后工作
- 首先,创立 Application
- 启动主线程
- 创立 MainActivity
- 加载布局
- 安排屏幕
- 首帧绘制
通常到了界面首帧绘制实现后,咱们就能够认为启动曾经完结了。
上面是官网文档中的启动过程流程图,显示零碎过程和利用过程之间如何交接工作。实际上对启动流程的简要概括。
优化方向
咱们的优化方向就是 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
反对启动趋势剖析、慢启动剖析、启动解体剖析。
启动趋势剖析
启动趋势较为直观的展现利用启动耗时的平均值、分位值、区间散布等数据,以及启动阶段的性能合成数据,也能剖析出,多版本迭代后,启动工夫的散布情况。
慢启动剖析
慢启动剖析,有助于开发者追根溯源,该性能展现慢启动状况的占比以及慢启动设施列表,您能够在启动设置中自定义慢启动的划分,默认首次启动 / 冷启动超过 3 秒为慢启动,热启动超过 1 秒为慢启动。
冷启动阶段的慢启动剖析,直观体现出慢启动比例以及慢启动均匀耗时。
慢启动散布,直观体现出,慢启动散布的设施、零碎、运营商、版本、渠道、地区。
启动解体剖析
演绎启动阶段中呈现的解体信息,反对划分首次启动、冷启动、热启动状态下的解体,默认启动耗时下限为 8 秒,超出工夫的解体不被划分至启动解体。
这对缩小利用启动工夫,提供了微小帮忙,官网已提供 Demo
总结
挪动端性能优化环环相扣,启动工夫优化也是较为重要的一个环节,U-APM
的呈现,无疑是开发者的福利,帮忙开发者及早发现问题,解决问题,至于 U-APM
其余性能,能够登录 官方网站 去体验。