掌上百科 - PDAWIKI

 找回密码
 免费注册

QQ登录

只需一步,快速开始

查看: 582|回复: 12

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

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

    [LV.9]以坛为家II

    发表于 2019-1-29 11:33:40 | 显示全部楼层 |阅读模式
    创作背景,曾经有二狗扬言要举报xx到国家xx总署,曾经有正义之士在某词库展示贴下回一句“已经举报到xx出版社”。所以我从来不玩词库。就有了玩词典APP的想法。
    ; I4 }5 S5 i! ?% s3 c* u/ V7 V5 V! `
    1 功能
    : V8 m4 G7 q7 t9 n! p+ O1.1 输入单词查询解释
    ) @6 J" C9 N! ^) X6 ]6 M4 i
    ; Y& K" ^0 u6 M9 Z# G* B2 界面0 ^- o0 X8 F0 y( ?: z/ W/ P5 G
    2.1 布局5 m) k" c7 E1 T  H
       线性布局 LinearLayout' E& Z8 \) J& d* G3 Y
    / ?; Q" f3 |) R: b4 O
    2.2 元素! p. g, S# @8 P) I3 l6 M4 t
       沉浸式状态栏 Immersive Mode Status Bar/ k% E: i9 Z/ _; B- H6 A/ Z0 o  F
       带自动补全功能的编辑框 AutoCompleteTextView
    9 j; G% T. f! k   按钮 Button
    * U- _4 w7 c6 g   视图 WebView
    % B8 \: M, P4 F2 B; c0 D% j& {" k/ h" @: G3 ~& q, p) `/ _9 m
    3 展示/ a, V, u3 }2 r8 n" ]( r# w
      3.1 Native or Html5$ `3 f% H* p% n: u8 Q
      词典功能界面用Native,渲染快,原生的就是好。. x2 t1 x) m7 A0 S$ e  `8 A( p
      词典内容展示用Html5,渲染效果好,可以直接无缝对接MDict词库提取出来的HTML格式数据。) m9 x& z9 ^7 D' ~3 o2 c
    6 A- d5 h( b$ F2 J+ X
    4 结构$ A4 g, v7 D9 R' \1 G% v
    4.1 数据与程序分离/ D# {/ y6 \, P$ S2 Q. L
        数据相关的,包括词库数据文件,词库索引文件,词库排版样式文件,全部存储在非程序安装目录,存储在用户可控的手机内置存储空间,比如/sdcard/data/
    / \- [+ j% `8 A& `  j
    # R6 |, L1 d2 X5 数据
    ; C. r+ l( q" n. u$ ?1 r$ Z  5.1 数据结构% V' z% ]8 k8 C' i! L, I2 E
      Text or BTree or Hash
    - h  F. I4 B* r# N8 E  个人觉得Hash查询最快,Text最慢,但是倾向于用 BTree,可以使用SQL引擎,少很多依赖库,少写很多代码,而且方便。, B- i1 Z- K3 ^* K
    8 \5 z( B% u! ]6 ^6 T
      5.2 存储引擎
    2 \5 J- G& H+ b+ a# e" U8 o9 O  安卓自带的 SQLiteDatabase  X" K& q; ^, U2 \8 v, u
    / i$ s! o: l1 X
      5.3 表结构
    . R1 ^0 t+ k0 x. r- K  Dict (
    , z% c  v* I, o8 h    word TEXT,
    8 \4 D% ^- Y. J# a    content TEXT,( @& L  S! `3 l/ Q7 z1 ?
        PRIMARY KEY (word)
    ! n8 p# O" A# c% |- Z. H  )
    . W8 m5 N+ T1 b8 w# d4 C: s+ S, ]9 p: _6 b4 F, i, d
    6 成品效果图
    7 o7 i* o$ o  W( J
    % ^, k6 M8 c3 ~( K5 Z, @) J3 x  ~0 m' b
    6 A( o2 O8 X7 Q" \* _- O

    % n4 [+ T7 ^; V9 i/ T
    9 j. ]7 m# ~0 M) |% a7 X9 H# m2 O7 I: g) U# {9 n0 J

    本帖子中包含更多资源

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

    x

    评分

    1

    查看全部评分

    本帖被以下淘专辑推荐:

  • TA的每日心情
    慵懒
    前天 14:53
  • 签到天数: 415 天

    [LV.9]以坛为家II

     楼主| 发表于 2019-1-29 23:38:29 | 显示全部楼层
    jonah_w 发表于 2019-1-29 21:37* Y) a3 o! ^& I) J$ x6 o
    问下android上解析mdx文件用的哪个库 性能怎么样
    0 P' Q; t+ j$ U, K& Q2 }" V
    用mdx,得把大把时间花在写解析mdx词库上。而且有时候想改点内容,要提取文本,改了之后再打包回去,挺麻烦,想着麻烦就不想改了。而sql就简单多了,想改啥随时可以改,很方便,不用解包打包再传到手机。, N, h3 t. B- O
    安卓解析mdx的话。MDict安卓版早期的版本有一个开源的版本 https://bitbucket.org/raymanzhang/mdict-android-opensource/ 。里面含有解析库,解析库没有开源,但是含在那个开源的MDict里面,可以直接用。我之前编译过,编译成功了,运行起来没问题,你可以在那个版本基础上再改功能和界面。
  • TA的每日心情
    慵懒
    昨天 07:31
  • 签到天数: 127 天

    [LV.7]常住居民III

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

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

    [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-6-3 15:43
  • 签到天数: 85 天

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

    [LV.9]以坛为家II

     楼主| 发表于 2019-1-29 23:25:59 | 显示全部楼层
    jonah_w 发表于 2019-1-29 21:37; B$ B( U6 _4 @1 [( @: ?0 ]
    问下android上解析mdx文件用的哪个库 性能怎么样
    . O+ C7 @" w+ Y0 r* c$ [) Y
    没有用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-10-23 05:56 , Processed in 0.127221 second(s), 10 queries , MemCache On.

    Powered by Discuz! X3.4

    © 2001-2017 Comsenz Inc.

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