基于Android平台的记事本App的开发与实现
2021-01-13江志华陈翱天
江志华,陈翱天
(1.乐山师范学院 人工智能学院,四川 乐山 614000;2.北京交通大学 计算机与信息技术学院,北京100044)
0 引言
随着移动互联网的发展,移动智能终端设备在人们工作生活中起着越来越重要的作用。在人们日常学习和工作中经常需要快速高效地记录许多信息,然而传统的记录方式已经满足不了这种需求,因此开发一款能够便捷、高效运行在移动智能终端设备上的记事本App变得很有必要[1]。
在文献[1]中作者利用语音识别以及合成技术将语音转换成文字,通过云存储技术存储用户的笔记数据,设计实现了一款语音云记事本软件。在文献[2-5]中作者仅实现了记事本文本增删改查、检索以及信息分享、同步等基本功能。现有记事本App大多只实现了基本的信息记录功能,功能较单一,记录的信息类型也仅限于文本类信息;缺少用户身份验证功能,存在一定的安全隐患,一旦用户的安卓设备丢失,用户的笔记数据就可能会泄漏。本文开发实现的记事本App集多种功能于一体,在实现信息记录基本功能的基础上,还实现了用户安全验证、信息云备份等功能。App通过在客户端设置密码,实现启动验证功能,保障了用户信息的安全性;能够支持文本、清单、图片、语音多种信息类型的记录与备份,实现了记录信息类型的多样性;实现了信息云备份功能,用户能够根据需要关闭或打开云备份功能,将信息备份至云端服务器。该App具有一定的创新性和应用价值,能有效地帮助人们提高记录效率,为人们的工作生活提供了方便。
1 系统开发相关技术
记事本App以Android5.0+为开发平台,服务端前台采用html、javascript、CSS+DIV等技术,后台数据利用Spring Boot、Jpa等框架技术进行处理。App采用MySql数据库存储信息,实现对信息的增加、删除、查找、修改、上传到云端备份等功能。
Android是以Linux核心作为基础的一种操作系统,其代码是开源的,由Google公司和开放手机联盟领导及开发。其主要应用于移动智能终端设备,如智能手机和平板电脑,是目前市面上主流手机的操作系统之一[2-3]。
App服务端开发环境为Tomcat。Tomcat是Apache基金会的核心项目之一,是一个免费开源的Web 应用服务器,主要用在基于Java的Web应用中,是开发和调试JSP程序的首选[6]。
App服务端采用Spring Boot框架管理整个应用,使用Jpa做数据的持久化,与数据库之间进行交互。
Spring Boot框架可用于简化新Spring应用的初始搭建以及开发过程。该框架使用了特定的方式进行配置,从而使开发人员不再需要定义样板化的配置。通过这种方式,Spring Boot致力于成为快速应用开发领域(rapid application development)的领导者[7]。
JPA是Java Persistence API的简称,是JDK 5.0注解或XML描述对象—关系表的映射关系,其可将运行期的实体对象持久化到数据库中[8]。
2 系统总体功能框架
记事本App采用前后端分离的设计模式,系统总体上分为前端客户端和后端服务端两大模块。客户端模块包括:用户注册和登录、启动验证、信息添加和查询、云备份、账户信息设置和修改。服务端模块包括:用户登录、账户管理、查询信息、邮箱验证、图片服务器、数据持久化等。客户端功能模块见图1,服务端功能模块见图2[9]。
图1 客户端功能模块
图2 服务端功能模块
3 系统数据库设计与构建
根据记事本App总体功能,为系统设计8个基本信息表,客户端包括:用户信息表user_info、启动验证信息表note_lock、信息记录清单表note_bill、信息记录表note_info。服务端包括:用户信息表user_info、邮件信息表email_info、信息记录清单表note_bill、信息记录表note_info[9]; 客户端和服务端数据库模型图见图3、图4。
图3 客户端数据库模型图
图4 服务端数据库模型图
4 系统主要功能开发与实现
4.1 记事本APP客户端开发与实现
4.1.1 客户端预计效果
记事本APP客户端提供用户记录信息功能,用户的所有操作都是基于客户端完成的。其设计效果包括:增加、修改和查询游客信息,设置App启动验证。用户可以通过登录App获取设置/修改邮箱、设置/修改头像、设置/修改昵称、修改/设置密码、修改电话、云备份、后台管理等权限。用户可选择电话验证码直接登录,也可通过注册账户密码的方式登录。用户忘记登录账户密码时可通过手机号找回。游客用户卸载App时将导致记录的信息永久删除,登录用户卸载App时已同步至服务器的数据信息不受影响。客户端对游客和注册用户的功能支持情况见表1。
表1 客户端角色功能表
4.1.2 用户模块
a)用户注册。用户可通过注册获得记事本App账号,在登录页面点击“立即注册”进入注册页面。注册页面包含:输入手机号、密码、确认密码、图形验证码、短信验证码、记事本相关协议等信息。用户注册页面对输入的信息都有验证功能,当输入的信息不恰当时,会出现相应提示,注册成功后返回登录页面。
b) 用户登录。App提供电话号码加短信验证码以及注册账号加登录密码两种登录方式。用户通过在个人信息页面点击“登录”进入登录页面,登录页面对每一个输入的信息都有验证:是否为空验证,电话号码和密码长度以及有效性验证。用户登录成功后返回到个人信息页。用户登录App后可获取用户基本信息设置、云备份、后台管理等权限。用户登录流程如图5,界面设计如图6所示。
图5 登录模块流程图
图6 登录页面
图7 云备份模块
4.1.3 云备份模块
注册用户在登录成功后就可获得云备份的权限,可以将记录的信息备份至服务器。在个人中心页面打开云备份按钮即可开启云备份功能,记事本App客户端在后台将用户信息上传至服务器。用户在关闭云备份按钮后,客户端将停止向服务器上传信息,但已上传的信息不受影响。在信息列表处可以看到当前已备份至服务器的记录数。云备份模块界面见图7。
4.1.4 启动验证模块
用户可以为客户端设置启动验证,在个人中心页面选择打开启动验证按钮即可进入图案密码设置界面。按照页面提示设置图案密码,客户端将拥有启动验证功能。当退出记事本App重新进入后将进入验证图案密码界面,只有密码正确才可进入客户端。记事本App客户端密码保存在本地数据库,App不会将密码上传至服务器,用户必须牢记客户端启动验证密码,一旦忘记将无法找回。同样,如果用户需要关闭启动验证,需在个人中心页面选择关闭启动验证按钮,选择后将进入图形密码验证页面,验证成功后即成功关闭启动验证功能。
4.1.5 信息记录模块
a)信息清单。用户进入客户端主界面后可见信息清单页面,页面上的信息包括:信息列表、信息标题、信息标记、信息包含类型、信息创建时间。在信息清单上支持对每一条信息进行左滑、信息置顶或删除操作。信息被置顶后将显示于信息清单的最上层;信息被删除后将会从数据库删除,删除后不可找回。
b)信息清单搜索。App提供信息搜索功能,用户点击清单最上方搜索框即可进入搜索页面。搜索采用模糊搜索和即时响应的方式,用户只需输入少量的关键字即可查询到相关信息。
c)信息录入。用户点击记事本页面的新建按钮,即可进入记事页面。App支持文本、清单、图片、语音等多种数据类型。用户可以选择相应的数据类型进行信息录入,录入完毕点击返回按钮即可保存数据。
4.2 记事本APP服务端设计与实现
4.2.1 用户信息模块
服务端提供App客户端用户信息处理,实现与客户端信息的交互。该模块包含用户注册、登录、获取及更新用户信息、发送邮箱激活及验证码邮件、验证邮箱验证码、设置头像、忘记密码、重置密码等功能接口。
4.2.2信息上传模块
服务端提供App客户端信息云同步的数据处理,实现将客户端上传的信息保存至服务器。该模块包含处理从客户端传递过来的数据的接口。
4.2.3 邮箱验证模块
用户在发送邮箱激活验证邮件后,当用户收到邮件并发起验证请求时,服务器将判断验证是否通过。服务器判断的依据为验证码是否有效、是否超时发起验证、验证邮箱与当前邮箱是否一致。验证通过后,用户的邮箱被标记为已验证。
4.3 后台信息管理
4.3.1登录后台管理
在浏览器中输入地址http://www.xfishs.shop/note/manager即可进入用户的后台管理登录界面,用户登录成功后进入用户后台管理主页。后台管理不支持注册和短信验证码登录,用户需要在客户端注册才可以登录后台管理。后台管理登录界面如图8所示。
图8 后台管理登录界面
以下是实现登录的关键代码:
@PostMapping("/login")
publicString login(HttpServletRequest request,
@RequestParam("phone")String phone,
@RequestParam("password")String password){
UserInfo userInfo = userInfoService.findUserInfoBy
UserPhone(phone);
if(Objects.isNull(userInfo))
return"fail";
if(!userInfo.getUserPassword().equals(password))
return"fail";
request.getSession().setAttribute(Constants.US
ER_SESSION,userInfo.getUserAccount());//
return "redirect:/manager/home";}
4.3.2 删除信息
用户在后台管理主页可以看到已上传至服务器的所有信息。当用户鼠标移动到某条信息上时,该条信息的右上角会显示删除按钮,点击删除按钮将弹出提示窗口。确认删除后,信息将从服务器中删除。信息的删除操作采用异步处理,删除后数据将从页面移除。
4.3.3 注销登录
为防止造成信息泄露,当前登录用户可以注销登录。用户在后台管理主页面点击安全退出按钮即可退出当前登录,退出后APP将跳转到登录界面,用户需要重新登录才可以进行后台管理等相关操作。
4.3.4 查看信息详情
用户在后台管理主页点击信息,即可查看每条信息的详情。用户在信息详情页也可对信息进行删除,删除按钮位于信息右上方。详情界面如图9所示。
图9 信息详情
5 系统测试
5.1 系统测试环境
本次系统测试客户端使用的硬件设备为努比亚NX511J,其基本配置为2G内存、 Android5.1.1操作系统;服务端使用的硬件设备为HP246G3笔记本电脑,其基本配置为8G内存、i5-4210U 2.40GHz CPU、Windows10(64位)操作系统。
5.2 测试用例
将编译后的客户端安装至手机,服务端项目发布至tomcat中,并打开数据库服务器,对App各项功能进行测试[10]。由于功能模块比较多,限于篇幅原因,此处仅选择客户端用户登录和服务端信息删除功能做测试用例介绍。测试用例表具体见表2、表3。
表2 客户端用户登录测试用例表
表3 服务端信息删除测试用例表
5.3 测试分析与总结
本次测试因受测试条件限制,只测试了系统功能,对系统性能和稳定性没有进行充分测试。对照系统需求分析文档对功能测试结果进行分析,系统所有模块的功能基本实现,能够满足用户的需求,因此本次系统功能测试通过。
6 结论
记事本App从总体上实现了前端客户端和后端服务端两大模块的相关功能,能够满足人们日常的记录需求,为工作和生活中的信息记录带来了便利。但是该App也存在不足之处,比如在系统性能、稳定性方面依然存在潜在风险,后续将有待提升。