掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 1144|回复: 15

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

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

    [LV.9]以坛为家II

    发表于 2019-1-29 11:33:40 | 显示全部楼层 |阅读模式
    创作背景,曾经有二狗扬言要举报xx到国家xx总署,曾经有正义之士在某词库展示贴下回一句“已经举报到xx出版社”。所以我从来不玩词库。就有了玩词典APP的想法。
    1 c4 P5 G. p; x  Y" Y6 O' V* h5 O' P; v' ?" G; C- }0 k
    1 功能  x! C. r  d. C( D
    1.1 输入单词查询解释4 C5 D: Q/ E) v) O1 H7 h0 r1 U9 O" [
    $ f7 D: ]' u' o% r
    2 界面
    . Z$ `' M% d5 k$ T2.1 布局
    0 E( w5 A% i) V7 ^( g   线性布局 LinearLayout% m4 r0 ]" w% ?

    1 c1 c: z6 e8 R; m2.2 元素
    ) H9 K" |) U# G; v) a) C3 n, `   沉浸式状态栏 Immersive Mode Status Bar
    - n8 u  j/ i1 q4 ^7 }, w' J   带自动补全功能的编辑框 AutoCompleteTextView& i: y6 J7 q; t- q
       按钮 Button
    9 H% W4 f9 V, N0 U+ z# G   视图 WebView3 W# t, W. E8 \

    - r8 J. ^1 t2 f: L6 C+ a1 k3 展示
    ( u6 `. i/ N! ?9 |  3.1 Native or Html5
    ! G0 j# I2 f0 y7 c& k$ i' p5 |  词典功能界面用Native,渲染快,原生的就是好。; r+ U- Z, [& e. s. {
      词典内容展示用Html5,渲染效果好,可以直接无缝对接MDict词库提取出来的HTML格式数据。
    8 u# f9 _) z6 y& h% L/ }2 f; r7 `( I) E( V2 ^# Q  F% V
    4 结构. `3 ^+ f. h! H+ V8 a
    4.1 数据与程序分离5 F4 `. g$ G3 C' x$ d
        数据相关的,包括词库数据文件,词库索引文件,词库排版样式文件,全部存储在非程序安装目录,存储在用户可控的手机内置存储空间,比如/sdcard/data/
    4 ^4 m# P3 B8 r7 [+ a: |6 y/ \: ^+ G- f( r7 x/ v' A4 j
    5 数据
    6 ]9 \# y$ N! x' j1 B7 [3 j9 K  5.1 数据结构+ B4 ^4 E0 _! ?; |6 f5 y, `
      Text or BTree or Hash; R0 M2 y0 Q  f) H% f/ @
      个人觉得Hash查询最快,Text最慢,但是倾向于用 BTree,可以使用SQL引擎,少很多依赖库,少写很多代码,而且方便。# W# {1 ~; C9 ~% o4 a
    , a% n4 W* V& g# y: x& n# M5 P$ Z
      5.2 存储引擎9 O+ f2 }1 s* y' g2 ?* p
      安卓自带的 SQLiteDatabase3 x6 D$ m5 m; V6 a' k. X3 ]! _

    % |3 f, i2 q& i* Y0 n) K  5.3 表结构: E" ?! O7 D4 f4 r
      Dict (
    # M) Y# r) D) i2 `: C    word TEXT,
    + W2 R; D# v( P/ u7 B' W; ?5 T; c    content TEXT,, Y+ d% Z, }$ x+ c6 k% R
        PRIMARY KEY (word)" x$ J2 L4 `( T5 z& o
      )' D# X2 Z. F8 S  l* d9 G
    5 k8 m, X* c2 n; R- q) s
    6 成品效果图1 t5 X$ h% G5 Y, F& q

    2 V% d0 F! J) C( T3 R( k' p, {+ q! S8 j* t1 ]( q! k0 }; j$ V  S& A
    ! K* [) n$ V$ F

    8 B3 `6 o7 h. B
    ' P: J# {' M. O7 V+ C( E0 E3 f' l8 M4 J

    本帖子中包含更多资源

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

    x

    评分

    1

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 441 天

    [LV.9]以坛为家II

     楼主| 发表于 2020-7-16 16:17:08 | 显示全部楼层
    t891377 发表于 2020-7-16 15:21
    / ?; \+ B( C1 Bmdx怎么转sqllite数据库

    ) p% a, t2 C0 i4 ]mdxexport 导出,然后导入sqlite,导入的过程要写程序,循环读,先读取第一行是词头,从第二行开始一直读只到遇到</>标签结束,把这之前读到的内容作为释义,然后计数归0,然后又读计数为1的行做词头,然后循环上面的过程。
  • TA的每日心情
    慵懒
    4 天前
  • 签到天数: 441 天

    [LV.9]以坛为家II

     楼主| 发表于 2019-1-29 23:38:29 | 显示全部楼层
    jonah_w 发表于 2019-1-29 21:37
    # |3 b! F# R, e! `. L问下android上解析mdx文件用的哪个库 性能怎么样

    3 T% v0 W5 Z2 [: f5 l5 \8 {用mdx,得把大把时间花在写解析mdx词库上。而且有时候想改点内容,要提取文本,改了之后再打包回去,挺麻烦,想着麻烦就不想改了。而sql就简单多了,想改啥随时可以改,很方便,不用解包打包再传到手机。
    9 r! ]/ N$ }. A6 v1 G4 a安卓解析mdx的话。MDict安卓版早期的版本有一个开源的版本 https://bitbucket.org/raymanzhang/mdict-android-opensource/ 。里面含有解析库,解析库没有开源,但是含在那个开源的MDict里面,可以直接用。我之前编译过,编译成功了,运行起来没问题,你可以在那个版本基础上再改功能和界面。
  • TA的每日心情
    慵懒
    6 小时前
  • 签到天数: 149 天

    [LV.7]常住居民III

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

    [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的每日心情
    慵懒
    4 天前
  • 签到天数: 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的每日心情
    慵懒
    4 天前
  • 签到天数: 441 天

    [LV.9]以坛为家II

     楼主| 发表于 2019-1-29 23:25:59 | 显示全部楼层
    jonah_w 发表于 2019-1-29 21:37- u1 X# w1 K+ I: A5 [% |* O$ x
    问下android上解析mdx文件用的哪个库 性能怎么样
    6 u2 s, y( o9 ~% s  {4 @
    没有用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
    & B2 \# H( c4 Q1 A3 F0 tmdxexport 导出,然后导入sqlite,导入的过程要写程序,循环读,先读取第一行是词头,从第二行开始一直读 ...
    1 R6 k9 X5 s0 B+ }! J) j4 K7 P
    好的,感谢。
    您需要登录后才可以回帖 登录 | 免费注册

    本版积分规则

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

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

    GMT+8, 2020-8-7 17:39 , Processed in 0.374010 second(s), 9 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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