2011-06-14 74 views
9

我正在爲android製作詞典應用程序。這個應用程序使用stardict和DICT文件,這些文件通常很大(10MB或更多),只包含純文本。Android - 字典文件。哪個更快,數據庫或直接讀取文件?

當用戶查找單詞時,我的應用程序將隨機讀取文件並返回結果。我讀過一些文章,讀文件是昂貴和緩慢的。所以我想知道是否將所有數據導入數據庫是更好的解決方案?

+3

什麼對你更重要,速度還是易於發展?您可以使用「插值搜索」快速或更快地編寫某些內容,但實現起來需要更長的時間。 – 2011-06-14 17:23:50

+0

我的目標是儘快將結果返回給用戶。感謝這個算法,我會給它一個閱讀。 – Genzer 2011-06-14 17:26:31

回答

19

我建議把你的話到數據庫,原因如下:

  1. 上使用SQLite的Android DB查找是「不夠快」(〜1毫秒),即使是最沒有耐心的用戶
  2. 雷丁將大文件存儲到內存中是在內存有限的環境(如android)中的一種危險操作。
  3. 試圖從文件「就地」而不是「在內存」中讀取條目正在有效地試圖解決SQLite已經爲您解決的所有問題。

使用數據庫時出現的唯一挑戰就是用您需要的數據初始化它。通過預先創建所需數據庫然後將其附加到APK資產,可以最好地解決此問題。有一個例子here很好。

希望這會有所幫助。