抖音小游戏是一种基于抖音平台开发的小型游戏,与传统的 APP 不同,抖音小游戏运行在抖音客户端内部,可以通过抖音的分享、推荐等功能进行传播。在抖音小游戏开发过程中,文件存储系统是一个非常重要的组成部分,本文将详细介绍抖音小游戏文件存储系统的实现原理和使用方法。
官方文档:使用新文件系统说明, 内容包括了:
- 新文件系统的背景
- 已有存档文件迁移方法:
- 数据对比:在老文件系统上写入约400MB的文件后,打开游戏后占用内存约1G,在迁移后则基本不会再占用内存,游戏内存将至630MB左右
在原有实现中,C#标准的文件接口,如等,是将数据写入到内存文件系统,然后再在合适的时机自动同步内存数据到IndexedDB中存储。由于采用了IndexedDB文件存储系统,使得运行时内存有一定的增加,如果文件数量过多,可能会发生闪退。
另外,IndexedDB文件存储系统兼容性不够好,在部分iOS系统上会无法正常使用,从而导致无法正常进入游戏的情况。所以我们提供 接口作为替换,开发者可以通过调用方法来使用新的文件存储系统。
在使用文件系统时,我会习惯性的做一个初始化:首先需要获取文件系统管理器对象,然后获取到一个用户数据存储的路径。
后面的文件相关操作都要在 , 两个变量的基础上进行操作。
初始化参考代码如下:
创建目录有同步和异步两种写法:
同步方法:
:
- 第一个参数表示:创建的目录路径,注意:地址要以上面获取的 dyFilePath 作为根目录。
- 第二个参数表示:是否在递归创建该目录的上级目录后再创建该目录。如果对应的上级目录已经存在,则不创建该上级目录。
示例代码:
异步方法
参数与同步方法一致,可添加创建成功或失败回调。
若创建失败,则可根据errMsg进行修改,若不清楚如何修改可以使用errCode和官方文档进行比较。
官方文件系统文档地址
涉及知识点:
- 写入文件 可以写入字符串 或者 字节数组两种类型,也有同步异步两种方式。
- 读取文件 写入时用的什么类型存储,读取时就使用使用类型。字符串方式写入默认编码格式为。
- 校验文件/目录是否存在
同步写法参考代码如下:
:
- 第一个参数表示:删除目录/文件的路径。
- 第二个参数表示:是否递归删除目录。如果为 true,则删除该目录和该目录下的所有子目录以及文件。为false则删除指定目录/文件。
复制文件:也同样有同步和异步两种方法,使用方式和上面基本一致
重命名文件:
抖音小游戏文件存储系统是一个非常重要的组成部分,它提供了一种简单、可靠的方式来存储和管理小游戏中的数据。此文件存储系统支持存储和读取文本、JSON、二进制等类型的数据,并提供了多种 API 来实现数据的存储和访问。