版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
III基于安卓平台的日程管理APP系统设计摘要随着生活节奏的加快,人们经常会被繁杂的事务打乱节奏,因此设计一款关于时间管理的手机APP很有必要,可以提前安排好每天的工作事务及重要的事情,并在随身携带的手机中做好记录,及时提醒,方便管理日常的工作和事务,使人们更加高效地工作和生活。本文基于Android平台,采用java语言设计开发了一款操作简洁方便,功能丰富完备的安卓手机日程管理软件。主要功能包括日程管理即用户对日程信息进行增添、删除、修改、查询操作;及时提醒;重要事项的数据统计及可视化分析等。系统界面简单、清晰,具有良好的可操纵性。本APP能够有效帮助用户记录未来事项并且及时提醒用户完成事项的时间,对日常工作起到指导监督的作用,有助于用户更加合理高效地实现日程管理。关键词:日程管理;提醒;可视化目录1 绪论 11.1 选题背景 11.2 选题的目的 21.3 本文的主要内容 21.4论文结构安排 32 关键技术介绍 42.1 Android简介 42.1.1Android系统架构 42.1.2Android应用程序组件 52.2AndroidSDK简介 62.3JDK简介 62.4AndroidStudio简介 72.5Bmob后端云简介 72.5.1Bmob后端云特点 72.5.2Bmob后端云优势 73 系统需求分析与设计 93.1需求分析 93.1.1功能需求 93.1.2界面需求 123.1.3开发环境需求 133.1.4性能需求 133.1.5其他需求 133.2可行性分析 143.2.1技术可行性 143.2.2操作可行性 143.3数据库分析与设计 143.3.1构建E-R图 153.3.2用户表的设计 153.3.3日程表的设计 154 系统实现 174.1 注册与登录功能 174.1.1注册功能 174.1.2登录功能 184.2 新增日程功能 194.2.1日历显示 194.2.2新增日程 204.3日程显示 214.4倒计时显示 234.6数据统计 254.7历史记录 264.8数据管理 274.8.1数据查询 274.8.2删除操作 284.8.3修改操作 285系统测试 295.1测试的内容与环境 295.1.1测试主要内容: 295.1.2测试环境: 295.2系统测试的目的与方法 305.3功能测试 305.4测试结果 326总结 346.1研究工作 346.2进一步的工作 34参考文献 36PAGE1绪论选题背景在互联网不断高速发展与进步的今天,我们的生活与智能手机之间的联系越来越紧密,甚至很多人已经离不开智能手机了,各种各样的移动应用为我们的生活带来了很大便利,目前市面上的移动应用主要分为安卓APP和iOSAPP,而在我国,大部分人使用的国产手机都是安卓系统的,这也意味着安卓手机在我国拥有庞大的市场。如图1.1,1.2所示。图1.12019年1月-2020年6月中国手机月度销量(单位:万)及同比变化情况[1]图1.2中国互联网月活跃用户规模[2]为满足庞大的用户需求,各种类型的安卓APP在不断上线,而且安卓APP在应用市场涵盖的范围非常广,不论是聊天社交类、娱乐休闲类或者是工作学习类应用软件都有很多是使用安卓系统设计开发的。由此来看,安卓手机应用的发展前景非常广阔,未来一定会有更多更好的安卓应用诞生。安卓系统由于其自身良好的开放性和功能完备等优势受到广大用户的青睐,它还是目前使用范围非常广的操作系统,越来越多的用户倾向于选择使用安卓系统的智能手机,这也有助于安卓操作系统的进一步发展[3]。据2020年中国互联网移动应用隐私情况年度观察报告显示的数据来看,截止到2020年末,全国安卓应用一共有3307221款被收录在移动应用安全大数据平台中,而iOS应用只有2101025款,相比于安卓应用来说,少了一百多万款。针对安卓应用分析发现,2020年新发现336104款安卓应用,年增幅超过百分之十[4]。选题的目的当今是信息社会,人们每天接收的信息五花八门,需要处理的事情也变得更加繁杂。如果将所有需要处理的事情都记在大脑中,那么大脑很有可能不堪重负,导致我们的记忆出现混乱,耽误一些重要的事务。即便记忆力很好的人也会给大脑带来巨大的压力,长期发展下去,很有可能会影响到身体健康。一部分人仍在使用传统的方式,如将需要处理的事情记在便签纸上等,但这也并不能完全实现备忘效果,也不是最有效的方法。随着网络时代的来临,智能手机几乎成为了人手一个的标配,人们对于智能手机的依赖性也越来越强,因此,开发一款基于Android系统的日程管理类应用可以有效保证用户在快节奏的生活中将所有需要处理的事务按时完成,达到备忘提醒的同时,提高时间利用率,享受高效的人生。本文的主要内容此日程管理App主要针对自制能力较差,时间利用效率不高的用户,设计了注册与登录功能,新用户可以注册账号,设置密码,登录成功后才能进入应用,这样可以有效保护用户的隐私,保证用户设置的日程安排不被外泄,提高用户体验;日程管理功能主要包括用户对日程进行添加、删除、修改、查找等功能,添加日程信息并保存后开始倒计时,精确到秒的计时器能让用户直观地感受到时间的飞速流逝,从而更加珍惜时间,提高时间利用率;数据统计功能可以按照用户自身需求,统计各事项所用时间,以统计图的形式直观地呈现给用户,用户还可以通过关键字查询某项相同任务累计进行时间;用户在添加日程时可以选择是否开启提醒功能,若开启该功能,在用户完成某项日程后,日程后的旗子颜色会发生变化,同时还会有任务完成提醒;用户可以根据自身情况,用不同颜色为任务分类,选择的颜色将作为倒计时框的背景色呈现给用户;统计的数据以统计图的形式直观地展示给用户,使用户可以清楚地知道自己的时间都去哪儿了,从而更好地做出时间安排,提高学习效率。1.4论文结构安排本文主要由六部分构成。第一章绪论主要介绍设计开发这款基于安卓的日程管理及可视化分析APP系统的目的意义以及安卓应用的发展现状;第二章是关键技术介绍,在本章中对本APP开发过程中涉及到的一些技术和开发工具做了一些介绍。第三章是需求分析与设计,主要描述此APP开发过程中的一些需求分析及其相关设计。第四章是系统的实现,详细体现了系统各项功能的实现结果。第五章为软件测试,主要介绍对这款基于安卓的日程管理及可视化分析APP系统进行测试的内容与结果。第六章是结论,对全文主要内容进行总结。关键技术介绍本章主要介绍开发这款基于安卓的日程管理及可视化分析APP系统所要用到的各项技术与原理,主要包括对Android系统和AndroidSDK、JDK的介绍以及对使用的开发平台AndroidStudio的介绍和数据库Bomb后端云的相关简介。Android简介Android是由谷歌公司推出的一款开放性移动设备综合平台,其中包含操作系统、用户界面和应用程序等移动工作所需的全数软件[5],在设计开发一款安卓手机应用时,软件开发工作者都需要使用Java语言进行编程和开发,它旨在推动和加速移动产业形成一个有别于以往封闭开发模式的一个开放式的生态系统。通常在对安卓手机软件进行开发的过程中,软件开发工作者都需要使用Java语言进行编程和开发。应用程序在对其进行访问之前软件开发工作者必须将它们准确地组织成apk文件。在市场上,Linux可以在基于默认设定过的安卓移动应用程序中自动运行,如果应用程序需要在实际运行期间执行,Linux将自动启动程序。但是如果程序代码中出现错误,导致程序无法正常运行,那么该应用程序将停止运行,而且,为了满足安卓手机应用程序的独立性要求,软件开发工作者在设计开发时应避免其他应用程序的干扰和损坏[6]。2.1.1Android系统架构Android系统架构大致可以分为四层:Linux内核层、系统运行库层、应用框架层和应用层。(1)Linux内核层Android系统是基于Linux内核的,这一层为Android设备的各种硬件提供了底层的驱动,如显示驱动、音频驱动、照相机驱动、蓝牙驱动、Wi-Fi驱动、电源管理等。(2)系统运行库层这一层通过一些C/C++库来为Android系统提供了设计开发安卓应用程序时需要的一些主要特性支持。如数据库的支持由SQLite库提供,OpenGLES库提供了3D绘图的支持,浏览器内核的支持则由Webkit库提供等。而且这一层还有Android运行时库,主要提供一些核心库,可以允许开发者使用Java语言来编写Android应用。另外,Android运行时库中还包含了Dalvik虚拟机(5.0系统之后改为ART运行环境),Dalvik虚拟机使得每一个安卓应用都能运行在独立的进程当中,并且拥有一个自己的Dalvik虚拟机实例。与Java虚拟机相比,Dalvik是专门为移动设备定制的,它针对手机内存、CPU性能有限等情况做了优化处理[6]。(3)应用框架层这一层主要提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者也可以通过使用这些API来构建自己的应用程序。(4)应用层所有安装在手机上的应用程序都是属于这一层的,比如系统自带的联系人、短信等程序,或者是从应用市场下载的小游戏,还包括开发者自己开发的程序[6]。Android系统架构如图2.1所示图2.1Android系统架构2.1.2Android应用程序组件ActivityActivity是Android应用程序中最基本的组件。每一个活动类都是从基类中继承而来的独立类。活动类会显示由多个Views控件组成的用户接口,并对事件做出响应。在应用程序中,我们所看到的每一个单独的界面就属于一个Activity。应用程序中往往有多个界面,当由一个界面跳转到新的界面时,前一个界面将会暂停而保存在历史栈中。用户若想要回到之前的屏幕,则通过回退即可返回。其中,Android使用Intent这个特殊类,实现各个Activity之间的移动。IntentReceiverActivity之间进行切换需要调用Android专有类Intent。它的主要作用是描述程序应用想要做什么。Intent数据结构最重要的两个组成部分是动作和动作对应的数据。典型的动作有:Main、View、Pick、Edit等,而各个动作对应的数据则以Uri的形式进行表示。与之相关的是IntentFilter这个类,它用于描述一个活动对应操作的Intent。当Activity调用startActivity(IntentmyIntent)方法时,执行程序将会从IntentFilter中进行查找,从而找到匹配的Intent对应的Activity。ServiceService服务相当于Windows系统中的Windows服务,是一种有着较长生命周期且没有用户界面的应用程序。一个应用组件可以启动Service,并且当用户进行应用场景切换时,Service将会持续在后台运行。另外,一个组件可以绑定到一个Service上与之进行交互。例如,一个Service在处理播放音乐、发送通知、文件I/O等操作时,Service都是在后台进行的。Service有启动和绑定两种状态。在应用程序中,启动一个服务可调用startService()方法。通常started状态的Service只能执行单任务但是不返回任何结果给启动者。还有一种绑定状态的Service则是通过bindService()方法进行启动,此Service提供一个允许组件和Service进行交互的接口,可实现发送请求、获取返回结果及通过跨进程通信来交互等功能。ContentProvider内容提供器就是一个提供数据的接口,主要是通过内容提供者将应用中的数据共享给其他应用访问从而实现对外共享数据。如果有两个应用之间需要共享数据时,内容提供者将会按标准开放一个接口,使应用可以获取到数据。数据可以存储于文件系统、SQLite数据库或其他方式。Android中提供了一些主要数据类型的ContentProvider,比如音频、视频、图片和私人通讯录等,可在vider包中找到,并且在获取适当的读取权限后可以查询它所包含的数据。2.2AndroidSDK简介AndroidSDK是谷歌公司提供的开发工具包,在设计开发Android应用程序时,我们必须通过引入该工具包,来使用Android相关的API。2.3JDK简介JDK是一个Java语言的软件开发包,广泛应用于移动信息设备和各种嵌入式设备上的Java应用程序中。Java开发的核心其实就是JDK,它既有Java的运行环境,也有Java工具以及基础类库等。[7]2.4AndroidStudio简介AndroidStudio是谷歌推出的一个Android集成开发工具,AndroidStudio在IDEA的基础上提供了进一步的开发支持[8],比如包含了对gradle的构建与支持、能够快速的修复和重新组合相关开发语句、支持UI控件并能够对设计的界面进行预浏览等功能,同时还提供了用于开发和调试的集成Android开发工具[9]。2.5Bmob后端云简介Bmob后端云是一款可以开发云存储的移动应用软件。它还可以在应用软件中快速添加一个非常灵活和高水平的安全管理系统,可以帮助用户方便地看到所有的信息,Bmob后端云主要为移动软件提供一套后端云服务,帮助用户减少几乎所有的服务器端编码工作量。它还为用户提供云数据库、文件服务、云逻辑、消息推送、即时通讯、移动支付、短信验证码等服务。Bmob平台通过提供Android、iOS、Cocos2d-x、C#、JS、Python、NodeJS、小程序、Flutter等SDK接口可以快速存储图片、视频、音频和文档等信息,为应用系统提供了一个安全灵活的后台管理系统[10]。在实际设计的过程中,将用户设计的各项功能需求转化为有效的数据结构,且在系统界面上清晰的显示出来,使系统用户一目了然[11]。2.5.1Bmob后端云特点在Bmob平台上申请创建任意多个数据库,获得对应的Key,下载对应版本的SDK并将其嵌入到移动应用中,便可以调用存取API,进行数据的任意操作。Bmob云端数据库采用的是对象关系映射(ORM)模式,而且还将我们在软件开发过程中最常用到的一些数据库功能进行了封装,使用户能够不写一行SQL语句就可以完成各种建表和增删改查的工作[12],为移动应用提供了一个完整的后端解决方案,Bmob自身轻量级的SDK开发包,让开发者能够以最小的配置和最简单的方式使用Bmob平台提供的服务,从而完全消除开发者编写服务器代码以及维护服务器的操作[12]。2.5.2Bmob后端云优势Bmob后端云的优势概括起来主要有:数据操作十分方便而且学习起来也非常简单,它最重要最关键的功能就是对数据进行各种操作,Bmob除了提供对数据最基础的操作如增删改查之外,为了避免用户因网络不稳定而受到影响,它还具有离线数据操作功能,在网络不良情况下也能进行数据操作;为满足用户想要发帖评论,与其他用户进行互动的想法,它还提供数据关联操作[13];提供了数据多线程操作和回调操作,可以让应用顺畅无比;除基本的条件查询API之外,还提供了正则查询,让查询更灵活多变。Bmob还可以主动推送服务实时将信息推送给终端用户:针对移动应用开发的特性,Bmob提供了简单的文件存储功能,仅通过调用文件存储API就能够将视频、音频、照片、APK等文件存放到服务器端,以供随时下载使用;提供了专门针对用户的API功能,方便对用户的管理工作,如注册、登录、注销、找回密码等;提供了地理信息功能,实现地理信息的搜索功能,如可以检索某个地理位置附近的信息[14];提供了详尽的移动数据分析功能,让开发者能够查看并分析移动应用的用户变化、应用终端变化、用户粘合度等信息,从而有助于开发者更好的提升用户体验。数据丰富安全:在数据类型上,Bmob提供了丰富的数据类型,包括String(字符串)、Number(数值,包括整数和浮点数)、Boolean(布尔值)、Date(日期)、File(文件)、Geopoint(地理位置)、Array(数组)、Object(对象),如图2.2所示图2.2Bmob支持的扩展字段数据类型
系统需求分析与设计本软件是基于安卓平台的日程管理APP,方便用户对平时各项日程进行管理和统计。APP为用户提供日程管理方面的服务,包括新增日程、显示日程、查看日程、计时提醒、数据统计以及对用户自身信息的管理,包括用户名和密码等信息,实现登录和注册等。该软件有助于用户记住重要的日程并给予提醒,同时还能帮助用户明确自己在各类日程花费的累计时长,从而使用户更加合理高效地利用时间。3.1需求分析作为一款日程管理类的软件,该基于安卓的日程管理及可视化分析APP系统功能应该比较丰富,在基础功能如日程的增添、删除、修改、查找之外,还应有提醒、统计、用户信息管理等功能,并且满足用户在进行日程管理时操作简单快捷,界面美观大方的需求,同时还应满足部分用户的个性化需求,部分细节可由用户自行设置。3.1.1功能需求该基于安卓的日程管理及数据可视化分析APP系统的功能应该满足日程信息的基本管理,如日程的增添、删除、修改、查询等操作,在添加日程信息时,用户还能自行为该日程分类,计时与提醒功能应该实现倒计时结束后向用户发送通知提醒用户,可视化分析部分应该包括用户添加的日程信息数据的统计并将统计结果以图形等直观的形式呈现给用户,应用功能还应包括用户的管理,如用户账号和密码的注册,登录等。功能模块图如图3.1所示。图3.1功能模块图(1)日程信息的基本管理日程信息的基本管理主要为增、删、改、查,“增”即手动添加日程的相关信息,包括日程的事件名、地点、截止时间、时长、分类、颜色等;“删”是指删除录入的信息,用户可以将已经添加的日程信息删除;“改”是指对添加的日程信息进行修改,如事件名、地点、时间、分类、颜色等;“查”是指从数据库查找已经录入的日程信息,用户可以输入事件名,在数据库日程表中查找事件名为该内容的日程,日程管理功能模块图如图3.2所示。图3.2日程管理功能图(2)计时提醒功能用户在添加日程信息时在时间输入框中输入截止时间,并打开提醒功能后保存添加的日程信息,开启倒计时,在倒计时结束后,表示任务已完成的小旗子将发生颜色变化,同时会给用户发送一个计时结束的通知。(3)日历显示用户点击首页“日历”按钮,将跳转到日历界面,该界面显示本月所有日期,在默认情况下,今日日期背景色与其他日期不同,若用户选择其他日期,则被选中的日期背景色将发生变化,同时界面下方会提示用户选中的日期。(4)新增日程用户点击日历界面的加号跳转到新增日程界面,添加日程的相关信息,如事件名、地点、时间、分类、颜色、时长等,其中信息不能为空,否则将报错,各项信息填写完整后点击保存后,才算完整的新增日程。日程信息内容如图3.3所示。图3.3日程信息图(5)数据统计功能按照用户添加日程时选择的类别统计用户在各类日程所耗费的时长,并将统计结果以折线图的形式呈现给用户,使用户可以直观地了解到自己的时间都去哪儿了,以便于更好地进行时间管理,提高效率。(6)历史记录该功能将完整展示用户添加的所有日程信息,以便于用户对个人日程进行查看,信息包括事件名、时长、分类、地点等,用户可以在历史记录中对日程信息进行查询、修改、删除等操作。(7)用户管理作为一款日程管理类应用软件,该APP应该注意用户个人信息的保护,所以新用户在首次登录之前先要完成注册,通过输入用户名和密码,将个人信息存入数据库中,后续再次登录时将验证密码是否正确,以此保证用户信息的安全,这样可以有效防止他人查看用户日程信息,避免信息泄露。(8)可视化分析在此日程管理及数据可视化分析APP系统中,将用户添加的日程信息以可视化的形式呈现出来,以便于用户进行数据分析,了解自己在各项事务中花费的时长,有助于用户更好地利用时间,提高做事效率,享受高效的人生3.1.2界面需求作为一款基于安卓平台的日程管理手机应用,在进行界面设计还应考虑到手机屏幕较小等因素,界面设计必须布局合理,颜色舒适,按钮控件友好,操作方便快捷,各界面风格也应大体相同,避免差异过大造成的突兀感,同时还应满足不同用户个性化需求,提高用户体验。(1)日程信息显示界面日程信息显示在首页,方便用户第一时间查看倒计时进度,精确到秒的数据能让用户更清晰地感受到时间的流逝,除基本日程信息外,设置一面小旗子,在任务完成后颜色发生改变,以此激励用户,同时日程信息背景框的颜色将按用户设置的日程颜色显示,以此满足用户个性化需求。(2)添加日程界面用户首先可以在日历界面中选择某一天,选中的日期背景色将发生变化,与其他日期颜色不同可以有效避免用户一时失误,选错日期,添加日程信息时事件名、地点、时长、时间等采用输入框,便于满足多样化需求,而颜色和分类采用选择框,使用户在添加信息时更加方便快捷,花费较短时间。(3)统计和历史记录界面数据统计是以折线图的形式直观地为用户呈现数据,事件类别与耗费时长一一对应,用户可以一目了然地看到自己在各项不同类别任务的耗时,起伏的折线也有助于用户发现各类日程耗时的差距,以便于用户更好地进行日程管理。历史记录中可以显示用户添加的所有日程的详细信息,如分类、事件名、时长、地点等,在此界面,用户可以了解在各类日程中花费的具体时间,用户还可以在此界面对日程进行查找、修改、删除等操作。3.1.3开发环境需求操作系统:Windows10开发平台:AndroidStudio数据库:Bmob后端云3.1.4性能需求为了保证软件能够长期、安全、稳定、可靠、高效地在Android平台上运行,本系统应该满足以下性能需求:(1)安全性:该基于安卓平台的日程管理及可视化分析APP系统作为一款个人日程管理类软件,信息的安全非常重要。在设计过程中,其安全性主要体现在该软件系统的安全性、以及相关数据的安全性这两个方面。系统的安全性主要考虑操作的稳定性及该系统运行平台的稳定性,相关数据的安全性主要考虑用户信息的安全性,即用户注册的用户名和密码的安全性以及用户添加的各项日程信息的安全性。(2)可靠性:该基于安卓平台的日程管理及可视化分析APP系统的可靠性主要体现在软件运行可靠性、数据处理可靠性等方面。软件运行的可靠性要保证用户使用该软件进行日程管理时能够正常运行,无卡顿、崩坏等现象;数据处理的可靠性是指用户添加的日程信息和个人信息必须完整准确地存储在该软件的数据库中,同时在进行可视化分析统计数据时必须做到准确无误。3.1.5其他需求一个软件项目是否合格不仅取决于它是否完成了开发者的预期目标,所有功能需求是否实现,还应该从以下各个方面进行分析,具体属性和要求如表3.1所示表3.1质量需求说明表属性要求正确性完成需求分析中要求的软件功能健壮性测试程序性能性能、效率反应时间0.1-5/s易用性界面友好,美观大方,使用方便,操作简单安全性用户利用密码安全登陆,随时维护可扩展性很容易根据需求作进一步的扩展兼容性绝大多数软硬件均可安全运行3.2可行性分析通过对系统目标的初步分析,提出可行性分析,主要从技术可行性与操作可行性两方面进行分析论证。3.2.1技术可行性技术可行性:使用JAVA语言在AndroidStudio上开发基于安卓的日程管理及数据可视化分析APP系统,基于安卓的系统的应用开发正日趋成熟,Java语言为安卓应用提供了稳定的性能、高效的更新、更快的开发、更简便的管理、全新的语言和服务,整个安卓系统帮用户做了大部分不重要的琐碎的工作[15],而且关于安卓开发方面的书籍、资料比较齐全,在设计开发中可以参考的资料很多,能够提高设计开发的效率,综上,该系统开发在技术方面是可行的。3.2.2操作可行性此基于安卓的日程管理及可视化分析APP系统是基于安卓平台设计开发的,只要通过安卓手机就能够进行操作和使用此APP,而且该APP的界面设计整体风格较为简洁,控件按钮也都很友好,所有功能简单而且很容易操作,只要是使用过安卓手机的用户,都能对这款应用进行操作[16]。本系统具有易操作、易管理、交互性好的特点,在操作上是非常简单的。因此本系统在用户操作方面也是可行的。3.3数据库分析与设计作为一款基于安卓平台的日程管理及数据可视化分析APP系统,该软件在保证前端界面美观大方,功能齐全丰富的同时,也应满足后端数据库的安全可靠,操作性较强等需求,基于此,使用Bmob后端云完成数据库的搭建,将软件的前后端连接起来,根据需求分别设计用户表和日程表。3.3.1构建E-R图在此基于安卓的日程管理及可视化分析APP系统中,一共有两个实体,分别为用户和日程,用户有两个属性,分别为用户名和密码,日程有六个属性,分别为事件名、地点、截止时间、时长,颜色和分类,两个实体之间的关系为用户管理日程,基于此关系,设计E-R图如图3.5所示。图3.5E-R图3.3.2用户表的设计用户表中主要包括用户名和密码,用户在注册时输入的用户名和密码将存在此表中,在登录时,又将在此表中查询用户名和密码是否存在,若存在并相对应,则登录成功,否则为登录失败,用户表如表3.1所示。表3.1用户表字段名数据类型说明IDvarchar(50)主键(不能为空)usernamevarchar(50)用户名passwordvarchar(50)密码3.3.3日程表的设计日程表中主要包括日程的事件名、地点、时长以及类别,用户在新增事件中添加的日程信息存在此表中,在历史记录中显示日程信息时将从此表中获取日程信息,并显示在历史记录界面中,在对日程信息进行查找、删除、修改等操作时,此表中的数据也将发生相应变化,日程表如表3.2所示表3.2日程表字段名数据类型说明IDvarchar(50)主键(不能为空)sortvarchar(50)类别colorvarchar(50)颜色timevarchar(50)时长locationvarchar(50)地点系统实现通过需求分析与设计,明确该基于安卓的日程管理及可视化分析APP系统的具体功能和界面需求,在AndroidStudio平台将其实现,该日程管理APP的功能主要分为用户模块包括用户注册与登录以及用户信息的修改,相关设置有提醒设置和颜色分类设置,基础功能包括用户对日程进行添加、删除、修改、查询等操作,在新增一个日程的基础上,还有任务倒计时、简单的虚拟奖励机制、计时提醒、用户各项日程信息的统计,并以可视化的方式呈现给用户等。具体功能结构图如图4.1所示。图4.1日程管理APP功能结构图注册与登录功能作为一款个人日程管理类软件,该基于安卓平台的日程管理及可视化分析APP系统为保证用户个人信息的安全,必须具有注册和登录的功能,用户每次启动程序后,都应该由系统做出判断,该用户是否为新用户,若是新用户,必须先完成注册,若不是新用户,则直接通过用户名和密码进行登录,注册及登录的流程图如图4.2所示。图4.2用户登录、注册流程图4.1.1注册功能新用户在首次登录前必须先进行注册,点击登录界面的注册按钮,跳转到注册界面,输入用户名和密码,点击下方箭头图标,系统将输入的数据存储到数据库中,显示“注册成功”字样,跳转到登录界面,如图4.3,4.4所示图4.3注册界面如上图4.3所示,在用户名一栏中输入测试用例“张三”,密码输入为1234,为更有效地保护用户个人信息安全,将用户密码隐藏。只有在用户完整输入用户名和密码这两项信息后点击下方蓝色箭头,才能够成功注册,若用户不慎漏填某项信息,那么注册失败,用户将无法进行登录并使用该APP进行日程管理,注册成功的界面如图4.4所示。图4.4注册成功界面4.1.2登录功能用户完成注册后,在登录界面输入注册的用户名和密码,点击登录按钮,系统进行判断,若输入的用户名和密码已存在于数据库的用户表中,显示“登录成功”字样,跳转到首页;若输入的用户名和密码错误,则登录失败,无法跳转到首页,如图4.5,4.6所示图4.5登录界面用户输入在注册操作中设置的用户名“张三”和密码“1234”,同样地,在该界面仍然将密码隐藏来保障用户信息的安全,只有当用户将这两项信息都准确无误地输入完成后,点击登录按钮才能成功进入该APP,进行各项日程管理操作。图4.6登录成功新增日程功能用户登录成功后在首页点击日历按钮,跳转到日历界面,从该界面选择日期后点击下方加号进入添加日程界面,按界面显示信息输入日程相关内容,如事件名、地点、时间、时长,并为该项日程选择所属的类型和计时框的背景颜色,输入所有信息之后点击保存,完成新增日程操作。4.2.1日历显示日历的显示采用安卓开发的一个控件日历视图(CalendarView),该控件可以用于显示和选择日期,用户既可以选择当前界面显示月份中的某一天,也可以滚动日历,来进行年份或者月份的调及来选择非当前月份或年份的某一天作为日程进行的日期。调用CalendarView的setOnDateChangeListener()方法为此组件的点击添加事件监听器可以使日历视图控件的日期按照用户需求进行调节,话可以使用CalendarView的部分属性完成日历界面的相关设置,如用selectedDayBackgroundColor属性来设置选中日期的背景色,用weekDaytextAppearance设置星期几的文字样式,这些属性设置能让用户按照自己的想法来设置日历界面。在未进行任何调节之前,日历界面显示的日期信息皆为系统默认时间,如图中显示的日期为2021年5月30日,且30日的背景色为红色。用户可以在日历界面选择添加日程的日期,选中的日期背景为红色,若用户未进行选择日期操作,则默认为系统日期,该日的背景色为红色,用户选中日期后会日历界面下方会显示选择的日期。如图4.7所示图4.7日历界面4.2.2新增日程用户点击日历界面的加号图标,跳转到新增日程界面,在此界面用户可以添加日程的相关信息,包括事件名、地点、时间、时长,类别、颜色等。其中时间为该日程的截止时间;时长是指该日程的耗时;类别包括学习、工作、娱乐以及其他四类,用户可以按照事件内容自行进行分类;颜色有红色、绿色、蓝色、黄色等,用户可以选择不同颜色作为日程显示框的背景色。设置类别和颜色选择时采用Spinner。Spinner提供了一种从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,如在进行颜色选择时,若用户不点击颜色框进行选择,则默认颜色为蓝色,在日程显示界面的计时框背景色也显示为蓝色;点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值,如用户点击颜色框后,会显示所有颜色选项,如蓝色、红色、绿色、黄色等,用户可以自行选择某个颜色作为计时框背景色。在实现用户设置颜色和类别这一功能时调用Spinner的部分方法来完成相关设置,如用setAdapter设置下拉列表的适配器,在这之后再用setSelection设置当前选中哪项,用setOnItemSelectedListener设置下拉列表的选择监听器,该监听器要实现接口OnItemSelectedListener。用户在新增事件时在颜色和类别的设置时都可直接在Spinner选择框中进行选择,如颜色有蓝色、红色、黄色、绿色等,事件类别有工作、学习、娱乐和其他,若用户不点击选项,将默认选择第一个选项,如颜色默认为蓝色,事件类别默认为工作,如图4.8,4.9所示图4.8颜色选择图4.9类别选择4.3日程显示用户在新增日程界面添加日程的相关信息后,点击保存按钮,跳转到首页待办界面,该界面主要为当前时间与用户输入的日程的截止时间的倒计时,其中背景框的颜色将按用户在新增事件时选择的颜色显示,计时框下方还会显示该日程的信息,如截止时间、事件名、类别及时长,在整个界面中,计时框较为显眼,这样可以便于用户了解日程计时情况,从而更加明确自己日程的进度。整个日程显示界面如图4.10所示。图4.10日程显示用户在新增日程界面添加日程信息时选择的颜色不同,在日程显示界面的背景框颜色也将发生相应变化,如添加事件名为运动的日程时,选择颜色为黄色并保存信息,在显示界面的计时框背景色也为黄色。如图4.11,4.12所示。图4.11选择颜色用户添加一项事件名为“运动”的日程,地点为操场,时间为18:30:20,时长为1小时,选择的颜色为黄色,类别分类为其他,并且打开了提醒功能并保存,点击保存按钮之后才能够将填写的日程信息传到显示界面,计时框的背景颜色也变为了黄色,如图4.10所示。图4.12颜色变化示例图4.4倒计时显示在日程显示界面的倒计时使用CountDownTimer,CountDownTimer是android中自带的倒计时类,CountDownTimer类用于安排倒计时,直到用户定义未来的某个时间为止。在该APP中就是从系统当前时间开始到用户输入的截止时间为止。由于此类是一个抽象类,其方法必须重写才能在项目中实现,所以首先需要在活动中导入该类,然后调用该类的部分方法来实现相关设置,如启动倒计时的方法为synchronizedfinalCountDownTimerstart()
,而synchronizedfinalvoidcancel()用于取消倒计时,abstractvoidonFinish()计时器结束时会触发此回调方法。使用
CountDownTimer将用户输入的截止时间与系统当前时间作差,精确到秒的计时器使用户直观感受到时间的流逝,从而更加珍惜时间,如图4.13所示。图4.13倒计时4.5通知提醒通知使用Toast,Toast是\o"Android知识库"Android中用来显示显示信息的一种机制,和同样用来显示信息的Dialog不一样的是,Toast是没有焦点的,而且Toast显示的时间是有一定时限的,过一定的时间就会自动消失。通知提醒功能的流程图如图4.14所示。图4.14计时提醒流程图用户在新增事件界面添加日程信息时,可以点击提醒按钮,图标颜色由白色变为蓝色,开启提醒功能,在日程显示界面,当倒计时变为0或者用户点击计时框下方小旗子提前结束日程后,旗子颜色将由白色变为蓝色,同时在该界面显示“任务已完成,计时结束”,如图4.15,4.16所示图4.15开启提醒功能如图4.15所示,当提醒按钮后方的开关由白色转变为蓝色即代表用户开启了提醒功能,在开启该功能之后必须点击保存按钮才能成功跳转到日程显示界面。图4.16提醒显示在倒计时还剩三十秒的时候,用户提前完成“测试”任务,点击代表任务已完成的小旗子,旗子颜色变化如图4.17,4.18所示图4.17未完成前旗子颜色图4.18完成后旗子颜色4.6数据统计为使用户能够更加方便直观地获取自己在各类日程耗费的时间,采用折线统计图将统计结果呈现给用户,折线图用hellocharts方法实现,hellocharts是一个用来生成统计图表的三方库,目前支持折线图、柱状图和饼状图等常见图表。支持缩放、滑动和动画效果。是一个非常实用的Android平台的图标库。首先,需要在AndroidStudio中导包:compile'com.github.lecho:hellocharts-library:1.5.8@aar',然后调用该方法的相关属性来完成相关设置,如绘制折线图时使用Linechart(cubiclines,filledlines,scatteredpoints),用AxisaxisY=newAxis().setHasLines(true);和AxisaxisX=newAxis();分别设置Y轴和X轴的属性,用axisY.setName("类别");和axisX.setName("时长")设置Y轴和X轴的显示名称,用axisX.setLineColor(Color.BLACK);和axisY.setLineColor(Color.BLACK);分别设置X轴和Y轴轴线颜色,用axisX.setTextColor(Color.RED);和axisY.setTextColor(Color.RED);分别设置X轴和Y轴上的文字颜色,用line.setColor(Color.RED);设置折线颜色。用户点击“我的”按钮,跳转到“我的”界面,该界面有“数据统计”和“历史记录”两部分组成,点击数据统计,跳转到折线统计图界面。折线图横轴为日程类别,有学习、工作、娱乐、其他四类,纵轴为各类别进行的时长,如学习类中一共有4项日程,设这4项日程进行的时长分别为a,b,c,d,则纵轴显示的时长为a+b+c+d的和,如图4.19所示图4.19折线统计图4.7历史记录由于历史记录呈现的数据信息较多,故采用ListView控件。ListView是Android中的一个控件,该控件能够通过滑动的方式在同一个界面上显示大量的数据,而且它还不会占用大量内存。但是ListView不能直接将数据源显示到屏幕上,它们之间进行交互需要一个桥梁:Adapter(适配器)。这是因为数据源种类繁杂,如果将匹配数据的工作交给ListView控件就会显得非常臃肿,也不符合Android风格,因此将操作数据的工作交给Adapter,ListView只需要关心Adapter部分。为了能够显示批量数据,ListView必须与Adapter进行绑定。Adapter可以看作List-View的数据源,由Adapter传递数据给ListView进行显示,二者之间的关系可如图4.20所示[19]图4.20Adapter提供数据给ListView用户在“我的”界面点击“历史记录”跳转到“历史记录”界面,用户添加的所有日程信息都将按类别显示在该界面中,包括日程的事件名、地点、时长等,如图4.21所示图4.21历史记录4.8数据管理数据管理主要包括用户对显示在历史记录界面中的所有日程信息进行查询、修改、删除等操作。如图4.19所示4.8.1数据查询用户可以在历史记录界面的输入框中输入想要查询的日程的事件名,然后点击查询按钮,在数据库中按照事件名进行查询,“详细信息”界面将显示查询到的信息,如图4.22所示图4.22查询操作4.8.2删除操作用户可以在“详细”信息界面点击“删除”按钮,对在“查询”功能中查询到的日程信息进行删除操作,数据库中也会删除该日程的信息,如图4.23所示。图4.23删除操作4.8.3修改操作用户可以在“详细”信息界面点击“修改”按钮,对在“查询”功能中查询到的日程信息进行修改操作,数据库中也会对该日程的信息进行修改,如图4.24所示。图4.24修改
5系统测试通过系统测试可以使被测试的系统项目功能得到更好的检测与完善,并且科学的测试方法能够发现项目中比较隐蔽的系统bug。只有通过多次的进行测试改进,项目才能达到预期目标,最终才能将完美的项目提交给客户,所以系统测试是软件开发中最重要的一部分内容,加强对系统的测试尤其重要。5.1测试的内容与环境软件进行测试时应当规范测试顺序,明确所要测试的功能点和测试的软硬件环境。5.1.1测试主要内容:(1)用户登录注册判定是否正常,是否实现认证的准确性。(2)软件各个活动之间的跳转是否流畅。(3)日历中选择日期时背景颜色是否发生变化。(4)计时框的背景颜色是否按用户添加日程时选择的颜色变化。(5)开启提醒功能时提醒按钮是否发生变化。(6)计时结束后旗子颜色是否变化。(7)倒计时是否准确。(8)若用户提前结束计时,是否会发送通知。(9)对日程信息进行查询、删除、修改操作时数据库中的内容是否发生变化。5.1.2测试环境:服务器:笔记本(win10操作系统)开发工具:Androidstudio5.2系统测试的目的与方法目的:在软件生命周期的每一个阶段都不可避免的会出现新的问题,如果在软件运行之前,没有发现并纠正软件中的大部分错误以及功能不齐全等一系列缺陷就会导致许多问题,出现很恶劣的后果,因此必须对系统进行测试。测试的目的就在于提前发现可能出现的问题,尽可能多的发现软件中的错误给出解决方法并起到预防及检测完善作用[20]。无论采取哪种测试方法,都需要对每一种可能存在的情况进行测试,从而能够得到正确的程序。这种所有可能情况的测试叫做穷尽测试,而在实际测试过程中做到穷尽测试是不可能的,因此也可考虑边界值分析及错误推测相结合的策略和其他软件测试方法。执行可能会出现的错误操作,查看结果是否会受到错误操作的影响,以此来避免错误操作对整个程序结果的影响。5.3功能测试通过在虚拟机上模拟运行,App的功能基本都能正常运行,各界面之间的跳转也较为流畅,具体测试内容如下:用户注册、登录:新用户注册时输入用户名和密码之后会显示“注册成功”然后跳转到登录界面,再次输入用户名和密码是,显示“登录成功”,并跳转到首页界面。新增日程:用户在日历中选择日期后该日背景变为红色,然后点击加号跳转到新增日程界面,输入日程的相关信息去,并选择显示的颜色以及分类,点击提醒按钮,启动提醒功能,最后点击保存按钮,跳转到首页待办界面。计时提醒:首页中计时框的背景色按照用户在新增日程时选择的颜色显示,倒计时为系统时间与截止时间之间的时间差,计时结束后代表任务完成的旗子由白色变为蓝色,同时显示“任务已完成,计时结束”数据管理:用户在历史记录中进行查询、删除、修改等操作时,数据库中的日程信息也发生了相应变化。注册、登录功能测试用例见表5.1设定新用户注册时的用户名为“张三”,密码为“1234”,在对注册功能进行测试时,除正确操作外,分别进行不输入密码和不输入用户名的错误操作,结果均为注册成功;在测试登录功能时,除正确操作外,也进行了输入用户名为“李四”和密码为“12”的错误操作,也未能成功登录。表5.1注册、登录测试用例表用例说明前置条件输入内容输出内容测试结果注册功能新用户用户名:张三;密码:密码不能为空注册失败用户名:密码:1234用户名不能为空注册失败用户名:张三;密码:1234注册成功成功登录功能已注册账号用户名:李四;密码:1234用户不存在登录失败用户名:张三;密码:12密码错误登录失败用户名:张三;密码:1234登录成功成功颜色变化测试用例见表5.2在测试颜色变化功能是否正常时,首先保证用户已登录且完整填写了事件名、地点、时长、时间等信息,然后分别进行未选择颜色就保存、颜色选择为黄色并保存、颜色选择为绿色并保存等操作,未选择颜色时默认计时框背景色为蓝色,选择黄色或绿色时,计时框的背景色也发生了相应变化。但在用户选择颜色为黄色后未保存,这样就无法开启倒计时,计时框的颜色自然也未发生任何变化。表5.2颜色变化测试用例表用例说明前置条件输入内容输出内容测试结果计时框背景颜色变化测试用户已登录并填写相关日程信息未选择颜色就保存计时框背景色默认蓝色成功颜色选择为黄色并保存计时框背景色变为黄色成功颜色选择为绿色并保存计时框背景色变为绿色成功颜色选择为黄色后未保存未开启倒计时颜色变化失败提醒功能测试用例见表5.3在测试提醒功能是否正常时,先保证用户已登录且完整填写了事件名、地点、时长、时间等信息,然后分别进行不开启提醒功能,开启提醒功能和开启提醒功能后提前完成任务三种操作。表5.3提醒功能测试用例表用例说明前置条件输入内容输出内容测试结果提醒功能测试用户已登录并填写相关日程信息未开启提醒功能倒计时结束旗子变蓝,不提醒不发送通知开启提醒功能倒计时结束,旗子变蓝,显示“任务已完成,计时结束”发送通知开启提醒功能并提前完成任务点击旗子变蓝色,显示“任务已完成,计时结束”发送通知日程管理测试用例见表5.4在测试日程管理功能是否正常时,保证用户已登录,然后分别进行新增日程、查询日程、修改日程、删除日程的操作。表5.4日程管理测试用例用例说明前置条件输入内容输出内容测试结果新增日程用户已登录事件名:上课;时长:1h;地点:教室;截止时间:10:00:00,;保存跳转到倒计时界面新增日程成功事件名:;时长:1h;地点:教室;截止时间:10:00:00,;保存事件名不能为空新增日程失败事件名:上课;时长:1h;地点:教室;截止时间:10:00:00,;未保存界面未跳转新增日程失败查询日程用户已登录在搜索框输入开会日程不存在查询失败在搜索框输入上课显示事件名:上课;时长:1h;地点:教室;截止时间:10:00:00,;查询成功修改日程用户已登录且已执行查询功能事件名:上课;时长:3h;地点:教室;截止时间:12:00:00,;日程信息已修改修改成功删除日程用户已登录且已执行查询功能点击删除按钮日程信息已删除删除成功5.4测试结果测试对本软件的各个功能及性能与可行性均进行了重复,测试各项功能时除正确方式外还对可能出现的错误操作进行了测试,总结得出:此软件的功能基本满足日程管理及数据可视化分析系统的要求,实现的功能基本达到需求,具有较好
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 防治职业病试题及答案
- 高考总复习优化设计二轮用书物理浙江专版 第1讲 物体的平衡
- 办公楼出租委托合同协议2025年规范版
- 墨脱县气候条件
- 2025年全国小学生禁毒知识竞赛练习题库及答案(共60题)
- 初中历史填空题真题及答案
- 2025年贵阳科学素养试卷及答案
- 《儿童抗生素相关性腹泻诊断、治疗和预防专家共识》的详细解读2026
- 2025年地球概论期末试卷及答案
- 软水器合同范本
- 2025民生银行总行资产经营管理部社会招聘笔试题库带答案解析
- 公益性公墓建设项目竣工验收报告
- 2025黑龙江大兴安岭地区韩家园林业局工勤岗位人员招聘40人备考考点试题及答案解析
- 2025年陕煤澄合矿业有限公司招聘(570人)笔试备考题库附答案解析
- 2025年保密观知识竞赛题库(含参考答案)
- 2025山西朔州市两级法院司法辅助人员招聘16人笔试考试备考试题及答案解析
- 危险化学品应急救援员岗位招聘考试试卷及答案
- 物业餐饮安全协议书
- 梁截面加高加固施工方案
- 2025学年人教版小学三年级数学上册期末试卷(含答案解析)
- 第3章桩基工程课件
评论
0/150
提交评论