共计 1621 个字符,预计需要花费 5 分钟才能阅读完成。
一、浅谈 APP 启动性能优化起因
1、引起性能问题的起因
随着我的项目一直的疾速迭代,往往会造成 App 启动卡慢景象,因为可能在 App 主过程启动阶段或者在主界面启动阶段放了很多初始化其余业务的逻辑,而这些业务落地可能一开始并不需要用到;
2、为什么要做启动速度优化
App 启动卡慢会影响一个 App 的卸载率和使用率;
启动速度快会给人一种轻快的感觉,缩小用户等待时间;
如果一个 App 从点击桌面图标到看到主界面花了 10 秒,请问你能承受么?忍受不好的预计间接就卸载了,或者没等关上就间接 Home 键按进来,而后杀过程了;这样一来 App 卸载率晋升了,使用率降落了。所以对于有大量用户的 App 来说,这些性能细节是很重要的;
3、APP 启动性能优化工具的抉择
作为 APP 的开发者,我应用的始终都是一款友盟 + 软件,U-APM 是友盟 + 推出的 App 稳定性监控、性能监控和云真机测试平台。通过轻量级的集成接入即可领有实时、牢靠、全面的利用解体、ANR、自定义异样等捕捉能力,及卡顿、启动剖析等性能能力,反对多场景、多通道智能告警监控,帮忙开发者高效还原异样、卡顿用户的拜访门路和业务现场,缩短故障排查工夫。
二、剖析怎么做启动优化
1、启动过程简略剖析
App 从点击桌面图标到咱们看到 App 的主界面整个过程中通过了哪些步骤,哪些地方是咱们能够优化的中央;
2、从启动过程找出优化点
App 启动过程中咱们优化的中央包含主过程启动流程和主界面启动流程,主过程启动就是 Application 的创立过程,主界面启动就是 MainActivity 的创立过程;
只须要别离对这两个局部进行优化即可:
Application 中 attachBaseContext 最早被调用,随后是 onCreate 办法,尽量在这两个办法中不要有耗时操作;
MainActivity 中重点关注 onCreate,onResume,onWindowFocusChange;
三、启动优化步骤
1、Application 中退出异步线程
是把不必要提前做的操作放到异步线程中去做,也就是咱们常常做的异步加载;
2、主页面退出异步线程和提早加载性能
与 Application 的优化思路一样,也是封装 onSyncLoad 和 onAsyncLoad 办法对现有代码进行一个分类,然而这两个办法的调用机会要晚一点,是在主界面首屏绘制实现的时候调用。这个步骤也须要 new 一个 Thead,属于额定的开销,不过这不影响咱们整体性能;
3、态加载布局:主布局文件优化
把主界面中不须要第一次就用到的布局全副应用动静加载的形式来解决,应用 ViewStub 或者间接在应用时动静 addView 的形式;
4、主布局文件深度优化
如果做了下面这些优化还是会发现进入主界面还是有些慢,那么须要重点关注主布局文件了。主布局文件的复杂度间接影响到了 Activity 的加载速度,这个时候须要对主布局文件进行深度优化了;
Activity 在加载布局的时候,会对整个布局文件进行解析,测量(measure), 布局(layout)和绘制(draw),所以设计简略正当的布局尤为重要。几个重要的优化如下:
●缩小布局层级
●缩小首次加载 View 的数量
●缩小适度绘制
5、页面性能的分模块化和懒加载
一个页面上有很多功能模块,最好每个功能模块都独自的离开,模块之间用接口进行数据沟通;
按需加载所须要的性能,不要关上一个页面都加载所有的性能;
加载完所须要的性能,如果是一次性加载不须要放弃在内存中,尽快销毁掉,造成良好的习惯。
APP 启动性能优化是一条继续之路,通过优化咱们能够理解到影响启动性能的因素有哪些,这样咱们平时在编码的过程中就会多留神本人的代码性能。开发者可利用友盟 +U-APM 对 APP 启动进行监控,另外友盟 +U-APM 还提供云真机测试能力,助力开发者从研发测试品质验收到线上问题复现排查,保障利用品质,晋升测试效率。在云真机测试期间主动采集解体信息,提供详尽的解体报告帮助筛查,真正实现监控测试全流程深度买通。