Ram*_*esh 1 sqlite protocol-buffers
在我的移动应用程序(混合)中,我希望允许用户将其数据传输到另一台设备。我这边不会有服务器端组件。用户携带的数据将包含图像、音频、视频以及文本和时间戳等。我的设计演变如下
1. 将每个条目存储在一个 JSON 文件中,其中图像、音频和视频作为 Data URI,并将该文件导出到云同步平台。这种方法的问题在于,尽管 JSON 比 XML 更好,但可能还有更好的选择。见下文
2. 将每个条目存储在 BSON 文件中,以图像、音频和视频作为数据 URI,并将该文件导出到云同步平台。这种方法的问题在于,正如其网站中提到的,字段名称仍然会重复,而 protobuf 可能更适合。
3. 将每个条目存储在协议缓冲区文件中,以图像、音频和视频作为数据 URI,并将该文件导出到云同步平台。
然后当我偶然发现greenDAO时,他们提到
greenDAO 允许您将协议缓冲区 (protobuf) 对象直接保存到数据库中。
将 protobuf 对象存储在 sqlite DB 中可以获得什么好处?能够导出 sqlite 文件而不是包含 protobuf 格式对象的文件吗?
嗯,数据仍然需要以某种方式序列化到数据库中。greenDAO 只是向您隐藏序列化。由于您有特定的需求,因此您最好构建自己的解决方案,更好地满足您的需求。
如果您预计字段名称不会发生变化,为什么不将条目存储为数据库行呢?这有很多优点,包括能够进行可排序和可搜索的条目。