全部产品

缓存

缓存在节省流量和提升用户体验方面发挥着重要的作用。多媒体 SDK 的文件、图片、语音、视频下载等接口都优先从缓存获取数据。

APMCache

多媒体 SDK 有单独的缓存组件 APMCache,MPMultimedia (mPaaS) 调用 APMCache 接口实现缓存功能。APMCache 提供如下能力:

  • 实现内存 + 磁盘 + Sqlite DB 三级缓存,优先从内存查找,在内存查找不到的情况下,根据 key 对应的沙盒路径从磁盘获取,若仍无法从磁盘获取数据,则查询数据信息;
  • 内存和磁盘缓存分优先级,可设置不同的清理阈值和策略;
  • 基于 LRU(Least Recently Used)算法淘汰内存 + 磁盘缓存;
  • 可根据时间、磁盘大小、数量阈值清理缓存;
  • 缓存内部实现了并发控制;
  • 采取多种策略优化了 Sqlite 性能和稳定性;

功能特性

基于 APMCache,Multimedia SDK 在上层封装和实现了相关的业务逻辑,提供如下特性:

  • 在内存告警或者压后台时清理内存缓存,降低内存占用,防止 APP 被杀死;
  • 设置了内存缓存 + 磁盘缓存的阈值,超过阈值时基于 LRU 算法清理缓存,避免因为缓存导致内存 + 磁盘占用率过高;
  • 在磁盘空间告警时,清理缓存,释放磁盘空间。