APP下载

基于Andriod的智能错题本APP开发

2020-02-03郑启根侯懿

科技风 2020年1期
关键词:错题

郑启根 侯懿

摘 要:错题本是学生的宝贵财富,同学们建立错题本的初衷是能够有效地整理错题、适合反复翻阅、快速突破学习中的薄弱点。目前,智能手机的使用越来越普遍,本课题开发基于Android系统的手机APP智能错题本。用户可以利用手机版的智能错题本扫描自己练习册、试卷上的错题,形成错题集,录入自己的解题方法及思路,根据用户自己的掌握程度对错题进行个性化的难度分类,还可以生成试卷,供用户测试练习,相较于传统手工书写批注模式整理更方便、搜索更快捷、节约时间成本。

关键词:Andriod;APP开发;错题

中图分类号:TN99文献标识码:A

1 项目背景

在中小学生的学习成长中,会遇到各类习题的错误,在经过老师的讲解后,學生会做笔记,形成自己的错题本。错题本有助于同学们查找学习中的不足,快速突破重点难点。根据前期的中学生群体调查,在300+份有效回收的调查问卷中,842%的同学认为错题本非常重要,75.5%的同学有自己的手写错题本,经常翻看的比例是66%。主要问题反应在传统错题本记录量大,耗时费力,翻阅与查找不方便。从智能手机面世以来,各种应用程序层出不穷,教育类APP也占有其中的一席之地,有很多搜题、学习软件,已成为学生学习的好帮手。据调差显示经常使用学习类APP的学生占调查总人数的65.38%。

本着把手机用在学习上的思路,解决传统错题本耗时大检索不便的缺点,本课题针对错题的特性开发一款基于Andriod系统的智能错题集。可利用碎片化时间随时随地录入浏览,使智能手机成为真正的学习工具。

2 基于安卓系统的智能错题本设计方案

2.1 智能错题本功能需求调查结论

在课题开始阶段进行智能错题本的功能需求调查,收集手写错题本样稿。确定手机错题本开发思路为拍照录入错题及答案,用户可以自由设定几个层次的错题标签,如按题型、考察内容、难度等,便于检索和分类,用户可以在拍好的错题及答案上进行各种个性化符号的标注,如加下划线,波浪线,加★、√、、?、※等符号,可利用标签方便进行错题检索,便于回顾,机型适配基于安卓的市场常见手机品牌如华为、小米、三星、OPPO、vivo、魅族、ZET、联想、HTC等机型。

2.2 确定开发软件

开发软件选用Android Studio。其优点是启动和响应速度快,内存占用低、整合了Gradle构建工具,集合一些Ant和Maven的优点、具有强大的UI编辑器、安装的时候就自带了GitHub,CVN。其缺点是开发过程中占用开发电脑内存较大,同时升级频繁,插件复杂,但相对于一些新出现的开发平台,该开发软件稳定性好,系统BUG少,因而选定该软件作为开发平台。

数据库鉴于本次开发为单机版本,选择SQLite,其有点是方便免费,安卓平台自带的数据库,维护难度低,整个数据库存储在一个单个的文件中,数据导入导出备份恢复都是复制文件。

安全加固采用腾讯乐固使用方便,用户量大,拥有专业加固策略,目前未使用其付费项目。

2.3 智能错题本开发

2.3.1 程序简介

智能错题本用户界面如下图,以下主要分为三层:

(1)数据库存储层:使用SQLite作为数据承载载体,所有的错题的存储均放置于此层;

(2)技术支撑层:此层主要为业务层提供技术化组件的支撑,通过此层,业务层的操作可以顺利的完成。此层主要提供安全算法处理、日志处理、存储连接处理、外部网络连接等处理。纯技术化处理,不涉及到业务的处理方式;

(3)业务层:此层为核心层,用户可见层次。主要提供包含科目的分类服务、错误的管理服务、考试的服务以及其他的一些外部服务等。

智能错题本用户界面

2.3.2 程序片段举例

(1)裁剪图图片,对图片进行编辑。

public void toCropPhoto(Uri uri){

Intent intent=new Intent("com.android.camera.action.CROP");

intent.setDataAndType(uri,"image/*");

intent.putExtra("crop","true");

intent.putExtra("aspectX",1);

intent.putExtra("aspectY",1);

intent.putExtra("outputX",1024);

intent.putExtra("outputY",1024);

intent.putExtra("scale",true);

intent.putExtra("return-data",false);

intent.putExtra("outputFormat",

Bitmap.CompressFormat.JPEG.toString());

intent.putExtra("noFaceDetection",true);// no face detection

intent.putExtra(MediaStore.EXTRA_OUTPUT,FileIOUtil.img_uri);

acti.startActivityForResult(intent,Constant.REQ_CROP_PHOTO);

猜你喜欢

错题
“二元一次方程组”易错题练
《圆》典型易错题
“整式的加减”易错题专练
“一次函数”易错题
万有引力易错题分析
化学反应热计算易错题点击
“机械运动”易错题练习
功和能错题笔记
“勾股定理”易错题
“平行四边形”易错题