乐趣区

关于android:移动端性能优化系列启动速度

简介:挪动端性能对用户体验、留存有着至关重要的影响,作为开发者是不是被这样吐槽过,“这个 APP 怎么这么大?”、“怎么始终在 APP 封面图转悠,点不进去”、“进入详情成果有些卡”、“用 4G 应用你们的 APP,我的流量有点不够啊”等等,这些问题都直观反映出,一个体验良好的利用,只有性能健全还不够。
本文出自于“「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 其余性能,能够登录 官方网站 去体验。

原文链接
本文为阿里云原创内容,未经容许不得转载。

退出移动版