当前位置: 首页 > Web前端 > HTML

APP启动性能优化

时间:2023-03-28 12:29:26 HTML

一、APP启动性能优化的原因1.性能问题产生原因随着项目的不断快速迭代,经常会造成App启动缓慢的现象,因为可能是在应用的启动阶段App主进程或启动过程中。主界面的启动阶段放了很多初始化其他业务的逻辑,这些业务一开始可能不需要用到;2、为什么要优化启动速度?应用启动卡慢会影响应用的卸载率和使用率;启动速度快,给人轻快的感觉,减少用户的等待时间;如果一个应用程序点击桌面图标需要10秒才能看到主界面,你能接受吗?耐心不好的可以直接卸载,或者打开前先按Home键,然后杀掉进程;这样,应用的卸载率就会增加,使用率就会下降。因此,对于拥有大量用户的应用程序,这些性能细节非常重要;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方法,用于当前有代码进行分类,但是调用的时机这两个方法稍晚一些,在主界面首屏绘制完成时调用。这一步还需要一个新的Thead,这是一个额外的开销,但不影响我们的整体性能;3.动态加载布局:主布局文件优化对主界面中不需要第一次使用的所有布局采用动态加载4.主布局文件的深度优化如果你做了以上优化,你仍然会发现进入主界面还是有点慢,需要关注主布局文件。主布局文件的复杂程度直接影响到Activity的加载速度。这时候就需要对主布局文件进行深度优化;当Activity加载布局时,会分析整个布局文件,度量(measure),布局(layout)和绘图(draw),所以设计一个简单合理的布局就显得尤为重要。几个重要的优化如下:减少布局层次减少第一次加载View的数量减少透支5.页面功能的模块化和延迟加载一个页面上有很多功能模块,每个功能模块最好分开分离,使用接口进行模块之间的数据通信;按需加载需要的功能,不要打开一个页面加载所有功能;加载完需要的功能后,如果是一次性加载,不需要一直保存在内存中,要尽快销毁掉,养成良好的习惯。APP启动性能优化是一条不断的路。通过优化,我们可以了解影响启动性能的因素,从而使我们平时在编码过程中更加关注自己的代码性能。开发者可以使用友盟+U-APM来监控APP启动。此外,友盟+U-APM还提供云端真机测试能力,帮助开发者从研发测试质量验收到线上问题复现排查,保障应用质量,提升测试效率。自动采集云端真机测试时的崩溃信息,提供详细的崩溃报告辅助筛选,真正实现监控测试全流程的深度开放。