掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 649|回复: 12

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

[复制链接]
  • TA的每日心情
    慵懒
    2019-11-18 13:49
  • 签到天数: 424 天

    [LV.9]以坛为家II

    发表于 2019-1-29 11:33:40 | 显示全部楼层 |阅读模式
    创作背景,曾经有二狗扬言要举报xx到国家xx总署,曾经有正义之士在某词库展示贴下回一句“已经举报到xx出版社”。所以我从来不玩词库。就有了玩词典APP的想法。
    ) W( R4 O2 L- O# K# u' q
    7 g4 O& E, q; J# d% a% k1 功能" ?) H' l! y$ q3 U. ]4 [0 S
    1.1 输入单词查询解释
    1 o( }% L6 V0 u0 D" J( {& d, D& @# P0 A. @7 x; P1 V9 @7 \
    2 界面
    $ }/ @; j* f) Z* {  A9 V2.1 布局1 `% i2 o  `/ \, g7 X8 Z  r# x
       线性布局 LinearLayout2 ?, e/ p2 k& I, B
    0 c6 n# n7 t4 M/ w( M* U& P; C0 G( i
    2.2 元素
    / w; k+ f4 ]% t; ]/ A! H+ g   沉浸式状态栏 Immersive Mode Status Bar9 c9 X: K! s1 u2 @/ z7 {4 N3 D) n
       带自动补全功能的编辑框 AutoCompleteTextView/ M# l& p& a; n! q: w
       按钮 Button
    $ N0 g6 D5 i. M5 M* y) X+ L   视图 WebView6 E0 m) p5 @/ f* N* w. }

    2 a: B9 Z5 c0 [2 d. Z- p3 展示
    5 g* e. j' _; Q" _( d5 g9 o  3.1 Native or Html50 m' Q8 i) u( I. X1 B$ s$ u
      词典功能界面用Native,渲染快,原生的就是好。/ }; {: w+ f3 B$ J
      词典内容展示用Html5,渲染效果好,可以直接无缝对接MDict词库提取出来的HTML格式数据。
    & H: W& R7 R/ x" j
    0 n4 n7 F/ C8 G  l! ^" `1 d7 @6 @4 结构6 F/ S6 d, V( P- w1 W# }
    4.1 数据与程序分离
    ) P# N* F: \/ b# U& `1 E    数据相关的,包括词库数据文件,词库索引文件,词库排版样式文件,全部存储在非程序安装目录,存储在用户可控的手机内置存储空间,比如/sdcard/data/. c3 n' q$ M( y2 q/ j! A
    ) Y8 q+ ^& Y+ X9 {7 F$ |
    5 数据
    : h4 ]9 z( ~  Q* F" Q. s1 z" _  5.1 数据结构
    5 f3 X% W9 T- c7 r( P2 a; g, a  Text or BTree or Hash
    * A$ w: ^9 O4 x  个人觉得Hash查询最快,Text最慢,但是倾向于用 BTree,可以使用SQL引擎,少很多依赖库,少写很多代码,而且方便。
    3 d0 u- X4 @; s! y4 _5 _) M' X8 i* Y! I3 k' K  Y! ~- I0 U6 n
      5.2 存储引擎/ S: e7 K7 a* K$ u
      安卓自带的 SQLiteDatabase! P6 x: K! h: @9 B  J
    / T- R) z# X# P  Z) l5 Y5 ]
      5.3 表结构
    - F" ~+ l& ?1 Z+ y; T  Dict (/ @. n  }% F  T
        word TEXT,
    / z. y: W, d- u6 m' }& Y$ r* }    content TEXT,$ M6 ^  d! J8 |+ j% m" z8 g
        PRIMARY KEY (word)
    ; q7 x; v8 e- a( r1 K, l1 N  )
    " v+ ?" l# ~- n0 g  ]
    : j$ M5 d6 I1 n/ z6 成品效果图( _8 Z$ Y) \% i/ L2 X+ i* P
    ) T' q3 j# d# r1 B
    . T, Q8 z. C3 j& Z  J! r

    . u( b0 q. Z1 o# I1 l8 G" k* n7 P) F8 c" k
    3 V' V, Q2 W( m2 K9 p3 M
    % k6 G* O' }3 {# g: U

    本帖子中包含更多资源

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

    x

    评分

    1

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    慵懒
    2019-11-18 13:49
  • 签到天数: 424 天

    [LV.9]以坛为家II

     楼主| 发表于 2019-1-29 23:38:29 | 显示全部楼层
    jonah_w 发表于 2019-1-29 21:371 \0 e* o0 A- v, }" x1 ], t; F; D: O  c
    问下android上解析mdx文件用的哪个库 性能怎么样

    2 a/ [/ M, I! [) `! s7 d# d用mdx,得把大把时间花在写解析mdx词库上。而且有时候想改点内容,要提取文本,改了之后再打包回去,挺麻烦,想着麻烦就不想改了。而sql就简单多了,想改啥随时可以改,很方便,不用解包打包再传到手机。6 q  c. V- [. w
    安卓解析mdx的话。MDict安卓版早期的版本有一个开源的版本 https://bitbucket.org/raymanzhang/mdict-android-opensource/ 。里面含有解析库,解析库没有开源,但是含在那个开源的MDict里面,可以直接用。我之前编译过,编译成功了,运行起来没问题,你可以在那个版本基础上再改功能和界面。
  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 138 天

    [LV.7]常住居民III

    发表于 2019-1-29 11:42:03 | 显示全部楼层
    看起来很不错,支持bbs大!!
  • TA的每日心情
    慵懒
    3 天前
  • 签到天数: 138 天

    [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的每日心情
    慵懒
    2019-11-18 13:49
  • 签到天数: 424 天

    [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的每日心情
    开心
    2019-11-26 19:52
  • 签到天数: 86 天

    [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的每日心情
    慵懒
    2019-11-18 13:49
  • 签到天数: 424 天

    [LV.9]以坛为家II

     楼主| 发表于 2019-1-29 23:25:59 | 显示全部楼层
    jonah_w 发表于 2019-1-29 21:37+ d& ], D1 J3 v/ F  x# [. |  E
    问下android上解析mdx文件用的哪个库 性能怎么样
    ! b' _/ K' D& V( E: d: i
    没有用mdx了。转成文本,再导入sqlite,用sql查。不然的话,太不灵活,用sql自由度高。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

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

    GMT+8, 2019-12-8 16:36 , Processed in 0.165651 second(s), 10 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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