如何在Android App中嵌入维基词典以进行离线访问?

时间:2016-02-04 13:49:06

标签: android offlineapps wiktionary

我目前正在开发一个Android应用程序,这是一个词典,我在这里用维基词典在线获取含义:{http://en.wiktionary.org/w/api.php?action=query&prop=revisions&titles=overflow&rvprop=content&format=jsonfm

但我想离线下载维基词典数据库并将其嵌入我的Android应用程序中。

以下是维基数据库下载页面:
1. Wiktionary
2. Wikimedia Downloads

根据我的研究,我发现维基词典离线数据库是XML和SQL。但是这些文件太大了。嵌入这些文件会使APK大小庞大。
那么有什么解决方案可以轻松地将其嵌入我的应用程序中吗?

2 个答案:

答案 0 :(得分:3)

我建议实现在线API访问,因此可以下载和使用小应用程序,并在某处下载离线部分的按钮。还要检查网络连接,如果它不是wi-fi,则警告用户,以免下载100 MB字典时滥用移动数据计划。

答案 1 :(得分:2)

  

开发人员[ English Dictionary - Offline ]声称他们正在使用维基词典。我仍然   想知道他们在哪里获得了一个维基词典文件> 22 MB

我收入不足以告诉你......(笑话)。你需要从XML文件中提取字典条目,一旦你得到那些,那么最终的内容(文本)文件就会变小。

或者......

您可以尝试 TSV file (图片提供: semisignal.com ),这是2012年11月定义的快照。这包含您的最终用户检查英语所需的大多数单词。 TSV 54MB ,并且像文本文件一样处理。

尝试定义: brushable - TSV具有以下内容:(与维基词典的 Brushable 条目相比较)。

  

英语brushable形容词#能够[[刷]]
  英语brushable形容词#能够被[[brushing]]

控制


提示:为了减少文件大小,您可以删除起始的“英语”,因为您已经知道它的所有英文定义。每个修剪将节省7个字节(乘以总定义)。

  • 在“英语”(使用该空格)上使用String.replace清除它。

  • 还用您的短代码替换“形容词”“动词”“名词” 应用程序知道其含义并在用户中显示条目类型 接口。代码可以 1 ,意味着列表条目为 形容词

您剪裁的文本文件可能如下所示。每个double fullstop仅表示“下一部分条目”,因此基本上 entry .. type .. definition 其中<xyz>是指向字典中其他条目的链接。对于那一行,54字节的TSV条目现在变为35字节。

brushable..1..Able to be <brushed>.

保存最终编辑(缩小)的文本文件。将其嵌入您的APK。