马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
目次
配景形貌
启动时间是用户对应用的第一印象,较慢的加载会对用户的留存和互动造成负面影响
在刚上线的Android原生&flutter的B端项目中:
- 进步启动速率能进步团体流程的服从
- 进步初次运行速率能进步应用推广的初体验结果
标题形貌
项目刚上线没多久、现在存在冷启动过程存在多少标题亟需优化 比如flutter hotrestart 不可用 、启动500ms黑屏标题
初期项目标启动流程
办理方案及工具
从结果上分为两大类,此中之一是以SplashScreen为代表的体验优化方向, 另一个是懒加载、淘汰包体积等的功能性优化方向。在现实开发中,我们可以利用AppUploader如许的iOS开发助手工具来辅助分析应用的启动性能指标。
没有专门大块的时间去搞优化 于是分优先级、分阶段实现
检测工具
Jetpack Macrobenchmark库
Macrobenchmark
- 在项目中New Module出来
- 将设置改为你所必要的
- @RunWith(AndroidJUnit4::class)
- class ExampleStartupBenchmark {
- @get:Rule
- val benchmarkRule = MacrobenchmarkRule()
- @Test
- fun startup() = benchmarkRule.measureRepeated(
- packageName = "com.test.app",
- metrics = listOf(StartupTimingMetric()),
- iterations = 5,
- startupMode = StartupMode.COLD
- ) {
- pressHome()
- startActivityAndWait()
- }
- }
复制代码
- 更改设置及运行
app部分为benchmark,把其他Module都改成release后运行
优化前(0.0V)标题分析
天生结果
运行benchmark后天生结果:
Time to initial display & Time to full display
名称形貌用处初始表现时间启动流程和完成在屏幕上绘制相应活动之间颠末的时间量让用户以为不卡完全表现时间丈量应用步伐启动和全部资源和视图条理结构的完备表现之间颠末的时间让用户正常利用分析
此中max时间很长、总体时间也不短 中位数靠近最小值
作为初期项目 Time to initial display & Time to full display我全都要办理
接下来我们看看到底什么地方用了这么长时间 点击进入Traces:Iteration详细如下图所示
可以看到bindApplication时间很长等标题
确认优化点
综上并团结现实表现的标题有几个大的优化向:
- 紧缩总时长(办理黑屏标题、懒启动、优化流程)
- 优化启动项(利用App Startup)
- 提升用户体验
对于iOS开发者,可以利用AppUploader这类工具来监测应用的启动性能,它提供了详细的启动时间分析陈诉,资助开发者快速定位性能瓶颈。
|