目录
1、关于本课题
本次设计主要是对大学时间所学的 Android 技术开发 ,数据库等课程的一次巩固复习及应用。本设计根据用户确定的单词本以及在设置中自定义的学习量,要求系统有计划地每天帮用户安排单词复习;用户可以自由选择更换单词本以及重置学习记录;可以通过各大翻译平台提供的 API 查找单词例句,可以了解自己的学习记录和记忆情况,可以自定义系统主题;
2、开发平台
本课题的开发平台为:
-
操作系统:Microsoft Windows 10
-
程序语言:Java,XML
-
IDE 工具:AndroidStudio 4.1.1
-
IDE 插件:Database browser
-
数据库服务器:SQLite
-
其他工具:Android 7.0 以上系统的智能手机或者模拟器
3、系统分析
本章主要对系统构建进行较为详细的需求分析、目标分析和功能分析。
3.1 国外安卓应用发展的现状
据调查,2019 年美国的互联网用户规模已不低于 2.9 亿人,互联网使用率达到 89.4%,每日手机使用的平均时长超过三个小时。在免费应用中比较热门类型为社交类,游戏类,办公类及网络视频类;在付费应用中比较热门类型为工具类及网络游戏类。在 Android 平台,GooglePlay 中拥有庞大的应用程序;其数量和下载量均远超国内任意一家应用商店,由此可见国外使用移动应用程序的大潮早已来临,刺激了更多移动应用程序的开发需求。[17]不同于国内多数开发者在应用程序开发语言的选择上仍然使用 Java 作为开发语言,国外多数开发者普遍选用 Kotlin 作为开发语言。[18]
3.2 国内安卓应用发展的现状
国内的 Android 开发还是主要以应用开发为主, 主要分成三类: 为企业开发应用、游戏开发和开发通用应用。
- 企业开发应用,此类应用一般被大规模公司所需求,这些公司主要为自有品牌或者其他品牌设计手机或者平板电脑的总体方案。
- 开发通用应用,这类应用的盈利方式主要有两种:为国外公司进行外包开发,通过内嵌广告获取广告分成以及通过付费购买的形式来盈利 [19]。
- 游戏开发,目前和第二类开发者类似。此类应用通过正确利用大多数用户的各种心理,不仅能使用户对保持应用的新鲜感而且更容易使通过付费购买的方式来盈利。
3.3 系统构建目标分析
背单词 App 的开发,需要用户能够随时地操作用户数据以及对每日任务和各单词出现的词频率自动做出调整,以满足用户高效率背诵单词的需要;因而在安排用户复习时对应单词本中的词频计算尤为重要,本系统目标是按艾宾浩斯遗忘曲线和用户熟识度相结合安排复习的方法来实现用户单词背诵效率最大化[20]。此外,应用还需要实时给出直观的用户熟识度统计和完成情况图:
- 实现熟识度计算词频
对各个单词的熟识度应由用户在复习单词时来自主选择;熟识度包括熟记,认识,模糊和忘记四个选项,每个熟识度将由系统判断在保证今日任务的情况下再次安排复习。保证用户在当天背诵记忆能够更加巩固,牢靠。
- 实现艾宾浩斯遗忘曲线计算词频
本应用充分利用艾宾浩斯遗忘曲线,使用户对非今日任务做一个合理的复习;艾宾浩斯遗忘曲线计算方法只依赖与系统时间戳;被由于艾宾浩斯遗忘曲线而安排用户复习的单词将刷新该单词的遗忘率(这与用户熟识度无关);从而保证用户对过去已学单词的背诵记忆够更加巩固,牢靠。
- 实现学习情况统计
通过数据库统计数据并且利用 API 以图的形式直观地展现给用户。统计图包括当前词本学习进度统计图,艾宾浩斯遗忘曲线图和学习情况统计图;其中学习情况统计图提供用户明确的用户熟识度情况,剩余计划和单词收藏情况。
- 实现用户数据操作
通过用户界面设置达到用户自定义每日任务量,用户学习任务管理和系统主题等目的,进一步提高用户的使用体验和学习效率。
3.4 系统构建功能分析
3.4.1 系统的总体架构
该系统由两个子系统构成:前台展示背单词子系统和后台数据管理子系统。同时主要包含两种 JSON 数据解析和一种 XML 数据解析过程:幽灵背单词 API 词汇本和词汇数据解析,爱词霸词典 API 数据解析。其中幽灵背单词 API 数据解析是关键部分,是全部相关词汇的数据来源。
3.4.2 系统功能模块
前台展示背单词子系统
前台展示背单词子系统简述
- 复习模块:背单词 App 的主要功能,安排用户背诵相应单词,更新用户信息和词汇信息数据库;
- 统计模块:显示用户学习进度扇形统计图,用户学习情况柱状统计图和艾宾浩斯遗忘数据折线统计图;
- 词本模块:变更当前所学习的英语词本,查看收藏词汇和搜索单词;
- 设置模块:设置背单词 App 的主题,每日背诵的单词任务量和操作用户数据;
- 导航栏模块:帮助用户快速切换到对应的功能模块,展示模块切换风格;
后台数据管理子系统
后台数据管理子系统简述
- 用户数据初始化:初始化当前用户信息数据库,包括用户 ID,用户所用词本 ID,用户任务量,用户今日任务进度,时间戳等信息;
- 词汇本数据初始化:初始化全部词汇本信息数据库,包括词汇本数据请求信息,词汇本 ID,词汇本词汇数量,是否存有词汇数据等信息;
- 词汇数据初始化:初始化全部