Android – 字典文件。 哪个更快,数据库或直接读取文件?

我正在做一个android字典应用程序。 这个应用程序使用stardict和DICT文件,这往往是相当大的(10MB或更多),只包含纯文本。

当用户查找单词时,我的应用程序将随机读取文件并返回结果。 我读过一些文章,阅读文件是昂贵和缓慢的。 所以我想知道把所有的数据带入数据库是一个更好的解决scheme?

Solutions Collecting From Web of "Android – 字典文件。 哪个更快,数据库或直接读取文件?"

我build议把你的话放到数据库中,原因如下:

  1. 在SQLite上使用SQLite进行数据库查询“足够快”(〜1ms),即使是最不耐烦的用户也是如此
  2. 将大文件读入内存在内存限制的环境(如android)中是一种危险的做法。
  3. 试图从文件“in place”而不是“in memory”中读取条目正在有效地解决SQLite已经为您解决的所有问题。

使用数据库时遇到的唯一挑战就是用您需要的数据进行初始化。 通过预先创build所需的数据库然后将其附加到您的APK资产,可以最好地解决此问题。 这里有一个很好的例子。

希望这可以帮助。