直播间页面优化

You have to believe in yourself. That’s the secret of success. —卓别林

好久没有更新博客了,自己转作直播类应用已经一年多。接触了一些应用开发的框架技巧,不记录,久了就容易忘记,现在重新开始更新博客。

最近发现我们直播应用在进入直播间时,能感受到明显的卡顿。本篇博文记录优化该问题的过程。

优化前

systrace作为分析卡顿问题的利器,本篇记录的优化方法,正是借助它实现的,优化前的systrace如下图。优化前

透过systrace 标1的地方可以看到启动直播间的观看页面耗时近乎1s钟,难怪用户会感受到卡顿。标2跟标3的地方都是耗时的大户,放大systrace文件分别进行排查。

帧动画资源过大

标2放大图
透过放大后的标2处,发现一个combo_anim.xml 资源文件竟然耗时60ms,打开该文件如下:
combo_anim
这个帧动画是为了播放直播间小礼物而存在的,由于是通过数十张图片组合而成的,难怪加载耗时那么久,在接着排查,发现了好几处类似的资源,这些都是需要优化的地方。礼物相关的资源文件在刚进入直播间是没有必要加载的,因此这里通过ViewStub控件让礼物相关的布局实现惰性加载。

加载了不必要的webview

在接着看标3的地方
在这里插入图片描述
这里WebViewChromium初始化占据了大部分时间,WebView是为了加载游戏直播房间内的网页游戏而生的,进入直播间加载也不需要,可以通过判断是否是游戏房间在决定是否初始化webview来进行优化。

按需加载语音业务模块

再继续看有一块audiolive相关的view也在进入房间时被初始化了。
在这里插入图片描述
通过判断是否是语言房间来决定是否加载该块view。

优化后效果

最后看下优化后的效果,从900ms优化到了300ms。
优化后
在优化的过程中,透过systrace文件还是比较容易发现卡顿的症结在哪,但在修改的过程中,要注意可能导致的风险。任何修改旧业务的代码都可能会导致新的问题,如果引起了新的问题,那优化工作就得不偿失了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值