当前位置: 首页 > news >正文

Cloud Foundation Kit启动预加载,赋能喜马拉雅秒启秒开流畅体验

喜马拉雅是国内领先的音频分享平台,汇集了大量有声内容,移动端主应用程序平均月活在国内在线音频应用中排名第一。然而,在鸿蒙系统的开发适配过程中,喜马拉雅曾面临首页加载慢的挑战。由于首页需请求大量数据,若在用户进入首页后再发起请求,会导致长时间的等待,严重影响用户体验,甚至可能导致用户直接关闭应用不再使用。

图片2

为了实现首页的秒开,喜马拉雅探索了多种优化方案。

首先,尝试在每次请求后将数据缓存到本地,下次启动应用时,先展示上次保存的数据,再发起新的请求。然而,这一方案存在明显缺陷:首页部分数据具有时效性,不能每次都使用旧数据渲染,这会导致页面出现闪烁问题,影响用户体验。

1111

随后,尝试将首页请求的时机提前至欢迎页启动时。这样可以将部分请求时间前置,有效减少用户在首页的等待时间。不过,当网络环境较差时,首页加载时间仍可能过长,无法彻底解决问题。

图片1

最终,喜马拉雅接入了HarmonyOS SDK 云开发服务(Cloud Foundation Kit)中的预加载能力,这是一种可提前加载所需资源的服务。通过预加载,可以将页面所需的文本、图片、音频、视频等资源数据提前加载到本地进行缓存,以提升应用页面加载速度。预加载仅以原始二进制数据进行缓存,应用使用预加载时不需要修改原有数据格式,获取缓存后可直接进行解析,并且可以对隐私、敏感数据进行加密。 预加载分为两种场景:安装预加载和周期性预加载。安装预加载是在应用安装时,应用下载完成后,同时下载首页所需数据,用户打开App进入首页时即可直接渲染本地数据,实现瞬间加载。对于非首次打开App的情况,则可以结合使用周期性预加载,通过向预加载服务注册周期性任务,在用户退出App时,预加载服务每隔12小时自动拉取一次首页数据并缓存本地。下次启动应用时,直接使用缓存的数据渲染,实现秒开。

图片3

在开发方案上,预加载功能分为云侧和端侧开发。云侧开发的关键在于指导预加载服务如何获取数据,这环节可以通过云函数实现,端侧开发则专注于如何高效展示这些数据。而在周期性预加载方案中,应用退出时会向预加载服务注册一个周期性任务,设置每12小时自动拉取一次数据,确保数据的时效性。 喜马拉雅APP在使用预加载方案后,效果对比显著:未使用预加载时,用户会经历白屏等待;而使用预加载后,从欢迎页到首页的切换变得丝滑流畅,首页秒开,大幅提升了用户体验。

总结预加载的优点如下:

  1. 提前缓存数据:将数据提前下载到本地,免去实时等待过程,减少用户等待时间。

  2. 数据实时性:安装预加载在安装时拉取数据,周期性预加载则每隔12小时自动拉取一次数据,用户在无感知的情况下即可获取内容。

  3. 适用范围广泛:除了数据,字体、图片等各类静态资源也可以通过预加载提前缓存到本地。

11111
111111_compressed

除了首页,其他需要实现秒开的页面同样可以通过预加载来优化体验。例如,欢迎页在不同时间段会展示不同的背景图片。通过预加载,这些图片可以在应用启动前直接下载到本地,从而避免用户在打开应用时看到白屏或Loading动画,实现瞬间加载的效果。

图片5

未来,HarmonyOS SDK将继续深化与喜马拉雅的合作,通过技术创新和内容升级,为用户打造更智能、更沉浸的音频体验。

了解更多详情>>

访问云开发服务官网

获取预加载功能开发指导文档

http://www.rkmt.cn/news/2187.html

相关文章:

  • 领嵌iLeadE-588网关全新一代Alot高端应用芯片支持二次开发
  • Gitee Wiki:重塑关键领域软件研发的知识管理新范式
  • 解决 windows远程桌面报错“CredSSP加密数据库修正”
  • 【科普系列】隐藏在OSI模型里的“交通指挥员”——UDS会话层
  • H5游戏性能优化系列-----总纲
  • 阿里云边缘安全加速ESA保障服务安全
  • rancher服务启动失败
  • C# Web开发教程(四)
  • HarmonyOS运动开发
  • 【2025-09-09】家庭决策
  • 多变量递归-全排列问题
  • Gitee DevOps:中国开发者效率革命的本土化解决方案
  • fastapi
  • Oracle主键primary key
  • Kubernetes标签(Label)
  • MCU联网
  • 算法-A*-01 - jack
  • [antlr] 如何在Linux(Ubuntu)环境中安装配置antlr4.9.2
  • 国内开发者如何选择代码管理平台?Gitee、GitHub与Bitbucket深度对比
  • Spring-Android-即时入门-全-
  • 4. 链表
  • 测试用例设计检查项
  • 版本发布| IvorySQL 4.6 发布
  • Avalonia Calendar 日历控件遇到 Flyout 或者切换页面时出现的鼠标按下失效的解决方法
  • Vue 2 + Element UI 技术栈的管理端项目和Git使用教程
  • ubuntu22.04.5系统重启后网络配置消失问题
  • 第十届计算机技术与机械电气工程国际学术论坛(ISCME 2025)暨2025年泰山学术论坛-鲁东大学微纳传感器及系统专题论坛
  • FinRL(2)China_A_share_market_tushare.ipynb
  • 应急响应:某网站被挂非法链接
  • 用惯了VO,什么时候需要DTO?