Java 资源与SQLite
我试图分析使用SQLite和使用资源来开发一个需要大量文本(几本书)的应用程序之间的权衡。我读过,也读过。然而,这两种方法似乎都在将SQLite与运行时解析XML进行比较。我不知道同样的问题是否也适用于使用字符串和int资源数组。事实上,我有很多未知数,我很感激其他人能提供的任何见解 资料详情:约40本书;每本书三种语言;平均书长25章;平均章节长度25段;总共约75000段。文本按段落存储;不需要更精细的粒度。对于每种语言,应用程序的文本逻辑视图都是一个跨越所有书籍的段落数组。还有“目录”(TOC)数据,一直到段落级别。所有数据都是严格只读的。我需要支持两种查询类型:1)用指定的语言检索段落或段落范围的文本;2) 给定段落编号,确定章节中的书籍、章节和段落偏移量。我不需要使用SQLite的任何字符串函数 我目前的分析是: SQLite:离线创建SQLite数据库,将其打包为原始资源或资产,并在应用程序首次运行(和/或升级)时将其复制到数据库位置。我已经为此实现了一个原型数据库,其中包含六个表Java 资源与SQLite,java,android,sqlite,resources,Java,Android,Sqlite,Resources,我试图分析使用SQLite和使用资源来开发一个需要大量文本(几本书)的应用程序之间的权衡。我读过,也读过。然而,这两种方法似乎都在将SQLite与运行时解析XML进行比较。我不知道同样的问题是否也适用于使用字符串和int资源数组。事实上,我有很多未知数,我很感激其他人能提供的任何见解 资料详情:约40本书;每本书三种语言;平均书长25章;平均章节长度25段;总共约75000段。文本按段落存储;不需要更精细的粒度。对于每种语言,应用程序的文本逻辑视图都是一个跨越所有书籍的段落数组。还有“目录”(T
再一次,我非常感谢任何有助于此分析的想法或见解。一个切点 亚马逊的KindleFire应用程序指南规定,应用程序不需要SD卡,所以这样做可能会排除KindleFire的兼容性。(糟糕!) 今天的版本实际上建议 您可以部署一个较小的APK,它可以快速下载和安装,然后在第一次启动时下载其他资源并将它们保存在本地文件系统上 用于更大的应用程序,而不是完全打包。此外,他们禁止的似乎是[我的] 将任何类型的视频或音频内容复制、录制、下载、存储或类似操作到Amazon Fire TV或Fire TV Stick设备、任何SD存储卡或任何连接的外部存储器(如适用)上
因此,该限制现在似乎已经过时。我的想法是将其存储为自定义xml格式,以便您可以直接查询文本的xml。API级别8是XPath支持的起点,这听起来非常适合。要补充Dan的评论:您可以压缩数据并将其推送到GZip Inputstream以节省空间。@Dan-我没有想过使用XPath。我得调查一下,看看是否合适。唯一的问题是,我们的客户希望支持API级别4,当然需要级别7的支持:(@Dan-还有,在幕后,XPath不是还需要通过xml解析才能得到一段数据吗?性能与SQLite相比如何?我还没有做过任何比较——也许自定义xml格式和自定义XPath之类的扫描仪可以帮上忙?记录重要的位置。只是我的想法。