蜂巢APP启动优化实践

蜂巢APP启动优化实践

性能优化任重道远,虽然道路坎坷,但我们从来没有停下脚步。



前言

时间过得很快,接触蜂巢移动版项目已经一年半了,期间项目进行过很多新功能开发,比如华为云会议,即时通讯等等。随着项目阶段的不同,也逐步进行过项目架构调整和优化,主要保证App性能,并逐渐向主流App靠拢。比如进行 项目基础架构重构 ,引入懒加载 ,统一、整合、优化图片加载框架和网络框架,迁移到AndroidX, 进程保活,部分业务逻辑代码结构、实现方式调整优化,资源优化等。
这一年半见证了蜂巢App快速发展, 从最初的20+M急剧增长到目前的60+M,业务越来越复杂,app体积也越来越大,性能问题也随之而来。比如启动性能,今天就简单记录一下优化过程。


一、启动性能

今天只说冷启动,因为这个是最耗时的。今天所说的冷启动过程是指从用户点击app图标到进入主页完全展示出来这段时间。基础知识大家可以自行查阅,本文重点在实践过程。
提前透露一下优化成果,启动时间减少了2S左右。

二、优化方法步骤

1.查看目前启动时间

因为我们这次关注的过程是 创建进程 + Application初始化+ 闪屏页Welcome初始化到界面显示的过程+主页MainActivity初始化到界面显示的过程+主页fragment显示完毕的过程,所以采用了Android Studio中 Profile 工具进行一个粗略的启动时间计算。为了方便,选取的截止时间点是ViewPager的onLayout()回调时刻。如下图,没有优化前的截图:
在这里插入图片描述
红框中的 00:07.170 就是这次的启动时间。好了,我们开工吧。

2.梳理耗时任务

Profile 可以清楚的看到每个过程的每个任务的CPU耗时,也就是执行耗时。不熟悉这个工具的同学可以自行查阅资料。 通过分析,找到了耗时点,然后根据业务需要,确定相应的优化策略。比如哪些可以异步,哪些可以延迟,甚至哪些可以移除,哪些需要优化等。经过分析,按照启动顺序进行优化。

Application:

由于项目引入的三方库比较多,三方库各种初始化逻辑不可控,有的时候会发现Application OnCreate() 执行多次,根据重要紧急程度区分异步策略,以及删除一些无用逻辑等,最终如下:

 @Override
    public void onCreate() {
   
        super.onCreate();
        if (Apputil.isMainProcess(this)) {
   
            // Debug.startMethodTracing();
            context = getApplicationContext<
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值