掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 811|回复: 12

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

[复制链接]
  • TA的每日心情
    慵懒
    2020-1-17 10:48
  • 签到天数: 426 天

    [LV.9]以坛为家II

    发表于 2019-1-29 11:33:40 | 显示全部楼层 |阅读模式
    创作背景,曾经有二狗扬言要举报xx到国家xx总署,曾经有正义之士在某词库展示贴下回一句“已经举报到xx出版社”。所以我从来不玩词库。就有了玩词典APP的想法。
    ' _7 V( p+ X( L$ _3 v5 b3 h- ^: ?) Q5 ?( g
    1 功能/ r) I. f1 {) q6 T$ k1 C$ Y/ {
    1.1 输入单词查询解释7 {6 ?* X/ D$ e. Z' U2 a
    ; @' D4 O" N9 w5 o9 }
    2 界面5 R' G# F& U& V7 B
    2.1 布局
    ( J2 m0 K1 A  _, r+ M- k% h/ R   线性布局 LinearLayout
    & H  [# A# o) F" |! i1 H- @* a: j! l- R! n% @7 P5 O
    2.2 元素
    ( W2 F- P6 ]$ b& t9 @   沉浸式状态栏 Immersive Mode Status Bar
    , P3 X. d* ^, U! ^2 M" R% {   带自动补全功能的编辑框 AutoCompleteTextView0 k4 p) r: M6 L1 f/ v: {: N
       按钮 Button9 H3 [. r: R: F! _$ \# X: V# y$ S) p0 `
       视图 WebView  ?4 k8 q* T9 V, s

    * i3 Y) c1 F& v# A/ F9 G# O6 d3 展示: P1 W5 l, e+ o7 N0 d1 Q, O
      3.1 Native or Html50 y. M8 @4 a) D% V: Y; D  v5 K1 H
      词典功能界面用Native,渲染快,原生的就是好。, r/ K2 W; h6 y! r
      词典内容展示用Html5,渲染效果好,可以直接无缝对接MDict词库提取出来的HTML格式数据。
    3 [* O& \) r9 Y3 X- z7 E* @) k" \9 Q( }& Z+ M
    4 结构
      ?* `- [6 v" v" {+ C9 V" g, y4.1 数据与程序分离( |$ A- O/ @( w! |, F: V2 G
        数据相关的,包括词库数据文件,词库索引文件,词库排版样式文件,全部存储在非程序安装目录,存储在用户可控的手机内置存储空间,比如/sdcard/data/3 E: v- S5 e4 ?/ x8 S, R$ {5 l4 ]1 }
    1 l8 ~7 ^2 G( z. p
    5 数据
    4 \% ^: j5 d! E- D# u: b  5.1 数据结构  ~1 Q5 ]; V# a" e2 L3 W! e, ]# c* G
      Text or BTree or Hash6 C: F3 _2 P; [2 d* m
      个人觉得Hash查询最快,Text最慢,但是倾向于用 BTree,可以使用SQL引擎,少很多依赖库,少写很多代码,而且方便。
    8 I& q# X5 r9 r! P% {. u( K- F* `& e; G9 H! p0 {2 R" W1 f5 D
      5.2 存储引擎0 n- S) m: ]$ e5 s- B9 V/ t
      安卓自带的 SQLiteDatabase2 P. q' x( |) j4 H* L: Z# {1 V* _

      c% i% q7 B/ k) d  5.3 表结构" ?) J" v, t0 ^
      Dict (
    " z3 l5 i; D+ k% w/ ]0 o) u    word TEXT,
    + w3 x5 o! k! H( Q    content TEXT,: Q& i" b, K+ P3 |# w
        PRIMARY KEY (word)
    ) P: W5 j/ q* F: F  )& b# t& c, z' U! E; E  V8 ]) f
    + d8 v9 y2 N" }5 Z
    6 成品效果图
    * e: r6 l7 H2 M4 w8 ~* _8 @. I# ~* ~9 B$ E5 q3 p! C

    : T% X5 k/ u, X% j  Q0 O4 U; a
    4 c1 w6 g1 {/ p+ H3 ?$ @- b7 S9 |9 _

    1 I, M4 g( ^9 v( G* Q) h0 o# g) ?) O+ O* w4 p9 C/ q

    本帖子中包含更多资源

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

    x

    评分

    1

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    慵懒
    2020-1-17 10:48
  • 签到天数: 426 天

    [LV.9]以坛为家II

     楼主| 发表于 2019-1-29 23:38:29 | 显示全部楼层
    jonah_w 发表于 2019-1-29 21:377 H2 e5 g+ C" Y8 e0 Q3 R
    问下android上解析mdx文件用的哪个库 性能怎么样

    3 G2 q7 Q6 \3 w* }, A& f# g% O. w用mdx,得把大把时间花在写解析mdx词库上。而且有时候想改点内容,要提取文本,改了之后再打包回去,挺麻烦,想着麻烦就不想改了。而sql就简单多了,想改啥随时可以改,很方便,不用解包打包再传到手机。
    + Y) \/ E  D% o3 v1 I安卓解析mdx的话。MDict安卓版早期的版本有一个开源的版本 https://bitbucket.org/raymanzhang/mdict-android-opensource/ 。里面含有解析库,解析库没有开源,但是含在那个开源的MDict里面,可以直接用。我之前编译过,编译成功了,运行起来没问题,你可以在那个版本基础上再改功能和界面。
  • TA的每日心情
    奋斗
    昨天 13:15
  • 签到天数: 142 天

    [LV.7]常住居民III

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

    [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的每日心情
    慵懒
    2020-1-17 10:48
  • 签到天数: 426 天

    [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的每日心情
    慵懒
    2020-1-17 10:48
  • 签到天数: 426 天

    [LV.9]以坛为家II

     楼主| 发表于 2019-1-29 23:25:59 | 显示全部楼层
    jonah_w 发表于 2019-1-29 21:372 K1 b& h. C; H$ ?
    问下android上解析mdx文件用的哪个库 性能怎么样
    # S4 Z0 ^" {1 I7 z
    没有用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, 2020-2-22 15:31 , Processed in 0.214970 second(s), 10 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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