android profiler启动分析,Android冷启动优化总结(四)——profile分析

本文详细介绍了Android应用冷启动过程的三个阶段,包括LoadedApk.makeApplication、Activity.Thread.installContentProviders和Instrumentation.callApplicationOnCreate。通过对Profiler的分析,发现Tinker热修复初始化占据了大部分时间。为了优化启动速度,文章提出了移除Tinker并采用美团的Robust作为替代方案,同时展示了如何优化ContentProvider和Application的onCreate方法,以减少启动时间。此外,还讨论了多线程初始化和任务分配策略来进一步提升启动效率。
摘要由CSDN通过智能技术生成

小说明:冷启动在 Android 端分为两部分:

1. 进程启动 — application相关执行完毕

2. 第一个activity展示 — AdvertActivity进入activity栈,init,create,onCreate,onResume后展示。

这次我们分析并着手尝试优化下第一个部分

先看一下profile的耗时统计

437341cabbfd66402dc4d4091b22d11d.png

第一阶段:LoadedApk.makeApplication newApplication阶段,排除系统必须处理的流程,咱们自己可控部分又根据业务阶段拆分成3个小阶段在这个阶段会执行application的attachBaseContext和Application的构造方法

因为tinker的热修复机制,可以看到,这个阶段99.99%耗时都是在tinker的初始化和相关热修复准备上

application构造方法里,就YogaUtil.getProcessName() (第二列最后一个方法),获取进程名称,几毫秒是咱们自己的操作。

第二阶段:Activity.Thread.installContentProviders 创建contentProviders阶段,我们在这个阶段可以看到很多的contentProviders

YogaWorkManagerInitializer.onCreate

MobProvider.onCreate

Senso

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值