百度Android直播秒开技术深度优化

作者:php是最好的2024.11.29 11:30浏览量:3

简介:百度APP通过优化插件逻辑、设计新监控报表定位耗时点、使用一级插件起播等措施,实现了Android直播秒开体验的优化,提升了用户观看直播的流畅度和满意度。

随着网络直播功能的日益普及,为用户提供极速、流畅的直播观看体验已成为各大平台竞争的关键。百度APP,作为百度的核心应用,同样将直播功能视为重要服务之一,不断优化其直播体验,以满足用户日益增长的需求。

一、背景与挑战

在百度APP的Android版本中,直播功能是通过插件方式接入的。这种方式虽然在一定程度上降低了应用包体积,但也带来了新的问题:用户在首次使用直播功能时,需要等待插件的下载、安装和加载,这无疑增加了起播的延迟。此外,由于百度APP的直播功能涉及多个插件和复杂的业务场景,使得起播链路变得复杂且难以监控,进一步影响了直播的秒开体验。

二、问题定位与分析

针对上述问题,百度直播团队首先对起播过程进行了详细的梳理和分析。起播过程大致可以描述为用户点击直播资源,打开直播页面,请求起播地址,调用内核起播,内核起播完成,内核通知业务,业务起播完成打点。通过对内核起播时长的监控,团队发现直播资源在内核中的起播耗时大约为600-700毫秒。然而,由于插件逻辑和业务场景的复杂性,整体起播时长却远远超过了这一数值。

为了找到起播链路中的耗时点,团队设计了一个新的监控方案。他们观察到,虽然起播链路中的节点数量和链路无法确定,但两个关键节点的先后顺序是一定的:从用户点击到页面Activity的onCreate,以及从onCreate到创建播放器。因此,团队设计了一个自定义链路起点和终点的查询报表,通过计算这两个节点间的时间差,来定位起播链路中的耗时点。

三、优化措施

1. 设计新报表,定位耗时点

通过新报表的统计和分析,团队发现直播间列表创建(模版组件创建)到真正调用起播(业务视图就绪)中间耗时较长,且这个耗时随着版本收敛会逐步增加。经过进一步分析,他们发现这是由于二级插件中业务组件较多,逐个加载需要耗时,以及一级到二级中逐层调用或事件分发也存在一定耗时。

2. 一跳使用一级插件起播

针对上述问题,团队决定修改一跳场景的起播逻辑,即一跳全部使用一级插件起播。由于一级插件体积较小,加载速度更快,因此可以显著降低起播延迟。同时,团队还保证了一级插件和二级插件创建的播放器父容器id相同,这样在一级插件中初始化播放器父容器后,当内核首帧回调时起播过程就可以结束。

3. 直播间数据请求管理器

为了优化进直播间时只传入了房间room_id未携带流地址场景的耗时,团队设计了一个直播间数据请求管理器,提供了缓存数据和超时清理逻辑。在页面onCreate时就会触发管理器进行接口请求,直播间模版创建完成后会通过管理器获取已经请求到的直播数据。如果管理器接口请求还未结束,则会复用进行中请求,待请求结束后立刻返回数据。

四、优化效果

通过上述优化措施的实施,百度APP的Android直播秒开体验得到了显著提升。团队不仅成功缩短了起播时长,还提高了起播的成功率和稳定性。用户现在可以在点击直播资源后几乎立即看到直播画面,大大提升了观看直播的流畅度和满意度。

五、技术展望与产品关联

在未来的发展中,百度直播团队将继续致力于提升直播技术的性能和稳定性。他们计划引入更多的优化技术和算法,以进一步缩短起播时长和降低延迟。同时,他们也将积极探索与百度其他产品的深度融合和联动,为用户提供更加丰富和便捷的直播服务。

值得一提的是,百度旗下的千帆大模型开发与服务平台,可以为直播技术提供强大的算法支持和模型训练能力。通过利用该平台的技术优势,百度直播团队可以更加高效地开发出更加智能和高效的直播算法,进一步提升用户的直播观看体验。例如,通过模型训练和优化,可以实现更加精准的直播内容推荐和个性化推送,让用户能够更快地找到自己感兴趣的直播内容。此外,千帆大模型开发与服务平台还可以为直播技术提供实时的数据分析和监控能力,帮助团队及时发现和解决潜在的技术问题,确保直播服务的稳定性和可靠性。

综上所述,百度APP通过优化插件逻辑、设计新监控报表定位耗时点、使用一级插件起播等措施,成功实现了Android直播秒开体验的优化。未来,随着技术的不断进步和产品的深度融合,我们有理由相信百度APP的直播服务将会变得更加出色和精彩。