掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1139|回复: 15

[经验交流] 开发自己的词典APP的简单思路(以android为例)

[复制链接]
  • TA的每日心情
    慵懒
    昨天 13:02
  • 签到天数: 441 天

    [LV.9]以坛为家II

    发表于 2019-1-29 11:33:40 | 显示全部楼层 |阅读模式
    创作背景,曾经有二狗扬言要举报xx到国家xx总署,曾经有正义之士在某词库展示贴下回一句“已经举报到xx出版社”。所以我从来不玩词库。就有了玩词典APP的想法。8 |  y; {- g% G1 Z  f- o
    . Q4 |0 B; U. e4 z; {
    1 功能* ?( p8 U) }+ \' F
    1.1 输入单词查询解释
    " M- f0 V8 ?8 r" Y- L
    . O. P8 b( d, t( Y  |2 界面7 S4 ?- Q# ?$ e- t& R
    2.1 布局
    # L( M4 V/ h2 B3 {6 |9 @* O   线性布局 LinearLayout8 Z" r; n& w) {, c" X4 l9 b
    6 c$ H" `& H  S& b: t
    2.2 元素# c5 v, u  z9 q8 R& Z9 e  Y. Y% i. z
       沉浸式状态栏 Immersive Mode Status Bar
    1 E- l8 B" R* P: f- L8 z7 d   带自动补全功能的编辑框 AutoCompleteTextView
    ( @. @+ s; A: y( a+ f6 @   按钮 Button
    ( H0 m$ P/ W5 x0 u' |# p   视图 WebView4 j7 B4 |( ^; Y9 f& D9 E
    : `/ Q" }* T  f
    3 展示
    0 j  D  G( n3 _3 i4 T  3.1 Native or Html5
    # \$ u  T$ X: M& t8 n; }# [  词典功能界面用Native,渲染快,原生的就是好。' A; o& D* [: D
      词典内容展示用Html5,渲染效果好,可以直接无缝对接MDict词库提取出来的HTML格式数据。6 r! ~, v& _* A& Q" u+ R. ~' a

    ! W# Y: \8 c8 F4 结构
    . o$ ~; P4 N5 f' p4.1 数据与程序分离
    % D' j) j+ M* F    数据相关的,包括词库数据文件,词库索引文件,词库排版样式文件,全部存储在非程序安装目录,存储在用户可控的手机内置存储空间,比如/sdcard/data/( Y. [1 B5 J) |  r7 s) `# l
    " t' Y  ?  w3 @7 n
    5 数据
    + a; w6 e6 Q1 P1 [2 \. e  5.1 数据结构$ v6 v; i, H& v
      Text or BTree or Hash  ]5 }7 S& s( N
      个人觉得Hash查询最快,Text最慢,但是倾向于用 BTree,可以使用SQL引擎,少很多依赖库,少写很多代码,而且方便。
    " n% Z$ M; w4 n/ B, w+ m& v0 d: g* I! `) \' s' W, k+ @
      5.2 存储引擎* t4 l' t" D$ l7 C
      安卓自带的 SQLiteDatabase- s% P6 `& P* @5 d

    1 k! `9 u4 E( u- p, x# z/ r8 k  5.3 表结构
    * u. i1 \3 R1 ]9 O$ ~  Dict (
    7 H1 ]. s% w3 R5 X: |    word TEXT,
    ! b8 ^# g1 G+ @6 V5 s( @; E    content TEXT,; O& z, z  ^* |7 x! u) o
        PRIMARY KEY (word)9 \/ L% ]- k4 D5 s1 H8 o) k9 Y  c
      )2 x$ L6 j$ {% ]; C9 w, \$ l
    2 l* W1 {' c- u: P3 x8 t
    6 成品效果图
    % z- h' x) |% v: _5 o8 F6 @# ]4 @% O3 G+ s* P0 k
    1 |) Q- o, ~& Q, `8 H

    2 h/ P* B) R) H; Y2 t0 H: I" E
    + b3 h( U! ~! Q# J/ I3 l1 N, o" q" c# S$ Y9 F# ?2 h" U
    $ S0 o* L3 K; y8 ]; J8 p# t1 W$ o

    本帖子中包含更多资源

    您需要 登录 才可以下载或查看,没有帐号?免费注册

    x

    评分

    1

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    慵懒
    昨天 13:02
  • 签到天数: 441 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-7-16 16:17:08 | 显示全部楼层
    t891377 发表于 2020-7-16 15:21
    . S9 N0 G$ T7 `, k! imdx怎么转sqllite数据库

    ! W: B' L& p. E" ~; ]. Nmdxexport 导出,然后导入sqlite,导入的过程要写程序,循环读,先读取第一行是词头,从第二行开始一直读只到遇到</>标签结束,把这之前读到的内容作为释义,然后计数归0,然后又读计数为1的行做词头,然后循环上面的过程。
  • TA的每日心情
    慵懒
    昨天 13:02
  • 签到天数: 441 天

    [LV.9]以坛为家II

     楼主| 发表于 2019-1-29 23:38:29 | 显示全部楼层
    jonah_w 发表于 2019-1-29 21:37. U% T! s2 w) y; B  Q
    问下android上解析mdx文件用的哪个库 性能怎么样

    6 l; v2 H& C; J4 ~+ O! o" U用mdx,得把大把时间花在写解析mdx词库上。而且有时候想改点内容,要提取文本,改了之后再打包回去,挺麻烦,想着麻烦就不想改了。而sql就简单多了,想改啥随时可以改,很方便,不用解包打包再传到手机。% w2 D$ p+ h) j
    安卓解析mdx的话。MDict安卓版早期的版本有一个开源的版本 https://bitbucket.org/raymanzhang/mdict-android-opensource/ 。里面含有解析库,解析库没有开源,但是含在那个开源的MDict里面,可以直接用。我之前编译过,编译成功了,运行起来没问题,你可以在那个版本基础上再改功能和界面。
  • TA的每日心情
    奋斗
    2020-6-26 14:43
  • 签到天数: 148 天

    [LV.7]常住居民III

    发表于 2019-1-29 11:42:03 | 显示全部楼层
    看起来很不错,支持bbs大!!
  • TA的每日心情
    奋斗
    2020-6-26 14:43
  • 签到天数: 148 天

    [LV.7]常住居民III

    发表于 2019-1-29 11:42:40 | 显示全部楼层
    不知道相比现有的app有何改进
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-1-29 11:45:15 | 显示全部楼层
    哇塞 这个厉害 看得我想开发一个
  • TA的每日心情
    慵懒
    昨天 13:02
  • 签到天数: 441 天

    [LV.9]以坛为家II

     楼主| 发表于 2019-1-29 12:08:00 | 显示全部楼层
    自己做着玩玩的。功能很简单,就查词。 肯定不能跟已有的MDict词库app相比,但是自己开发自己用,自己完全可控,想加啥功能加啥功能,想改啥改啥,多有意思。有兴趣的可以参考着自己做着玩玩。
  • TA的每日心情

    2019-9-20 08:37
  • 签到天数: 214 天

    [LV.7]常住居民III

    发表于 2019-1-29 12:29:48 | 显示全部楼层
    顶你一个, 百家争鸣最好啦

    该用户从未签到

    发表于 2019-1-29 16:33:24 | 显示全部楼层
    我也想学;)真心求教
  • TA的每日心情
    开心
    2020-1-2 21:41
  • 签到天数: 88 天

    [LV.6]常住居民II

    发表于 2019-1-29 21:14:28 | 显示全部楼层
    加油,其实美术方面做得有简洁大方就更好了
  • TA的每日心情
    奋斗
    2019-4-14 02:12
  • 签到天数: 93 天

    [LV.6]常住居民II

    发表于 2019-1-29 21:37:43 | 显示全部楼层
    问下android上解析mdx文件用的哪个库 性能怎么样
  • TA的每日心情
    慵懒
    昨天 13:02
  • 签到天数: 441 天

    [LV.9]以坛为家II

     楼主| 发表于 2019-1-29 23:25:59 | 显示全部楼层
    jonah_w 发表于 2019-1-29 21:37, }0 Z( x9 E! k9 Z
    问下android上解析mdx文件用的哪个库 性能怎么样
    & s* A( @5 u+ B9 Z' y
    没有用mdx了。转成文本,再导入sqlite,用sql查。不然的话,太不灵活,用sql自由度高。
  • TA的每日心情
    擦汗
    2019-11-24 11:58
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-7-16 15:21:10 | 显示全部楼层
    mdx怎么转sqllite数据库
  • TA的每日心情
    擦汗
    2019-11-24 11:58
  • 签到天数: 1 天

    [LV.1]初来乍到

    发表于 2020-7-16 16:24:35 | 显示全部楼层
    bbs 发表于 2020-7-16 16:17/ e, j3 D; E0 p- c/ F
    mdxexport 导出,然后导入sqlite,导入的过程要写程序,循环读,先读取第一行是词头,从第二行开始一直读 ...

      Y. m. D, }& o* G: a; p# W好的,感谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

    顶部qrcode底部
    关注公众号送论坛充值码
    关注微信公众平台
    关注微信公众号 pdawiki,获取邀请码,看文抢积分,抽奖得浮云! Follow our Wechat official account "pdawiki", get invitation codes, and play the lottery to earn points (积分)!

    小黑屋|手机版|Archiver|PDAWIKI |网站地图

    GMT+8, 2020-8-4 22:35 , Processed in 8.085686 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

    快速回复 返回顶部 返回列表