我想开发一个只使用离线数据库的安卓英语词典应用程序。我的意思是说,它不必重定向到 WordWeb 之类的在线词典。有谁知道我应该怎么做才能存储我的话?我正在考虑使用 SQLite,因为它是移动的。但是如果这里有人已经做过或做过我想做的事情,你能给我一些专家建议吗?
6 回答
我使用了 developer.android.com 的这段代码。希望它也能帮助你。
编辑:此页面不再可用,但示例本身在 Github 上。
我会使用 SQLite,这可能是在 Android 上最简单、最直接的方法。当然,此解决方案的复杂性取决于您的确切需求。如果您只需要一个非常简单的字典,那么您可以使用带有基本查询的简单数据库模式。
想到的另一件事是 Trie 数据结构,您可能想研究一下:http ://en.wikipedia.org/wiki/Trie#Dictionary_representation 。但是使用它来解决这个问题可能不值得麻烦,我猜 SQLite 解决方案的性能足以满足您的需求。
我已经对我的字典做了这个:
https://play.google.com/store/apps/developer?id=e-Biene%20DEV&hl=en
您可以转换为您的简单数据库 tblLanguage1[word, translation] tblLanguage2[word, translation]
到(SQLite 格式 [从模拟器中提取它],然后将此转换后的 SQLite 数据库附加到您的应用程序离线)。
这将是快速和快速的搜索。
和使用:在模拟器中创建的数据库,其结构如下:表:
lang1_Content lang1_segments lang1_segdir
使用这个而不是简单的。
试试 Google API 示例,我知道他们有一个 Dictionary 应用程序。我很确定它也离线了。我必须使用离线缓存构建一些东西,我使用 JAVA 出色的 XML 解析器将东西加载到 SQLite 数据库中。当用户有互联网连接时,它会下载一个新的 XML 并使用它来更新数据库。但是,您可以在应用程序中存储任何类型的文件。
http://developer.android.com/tools/samples/index.html 我正在谈论的示例称为可搜索字典。
您的主要问题是指定将存储您的字典的要素。
Android 提供了很多方法来存储您的数据,例如:
您还可以创建一个静态数据库并将其存储在您的assets
文件夹中,如本文所述。
您还可以检查 Searchable Dictionary ,android-samples
这是实现应用搜索的一个很好的示例,并且还描述了一些存储数据的技术。
最好的方法是 - 将您的数据保存在 json 文件中的文件中并将其保存在网络上,或者您也可以将其上传到 googledrive 或 Dropbox 并公开,然后当用户第一次打开应用程序时,下载json 文件并将 json 中的数据插入 sql lite db。这样您就可以将 sql lite 用于离线数据。