移动数据库应用开发大作业
题目: 基于Android平台的理财通软件开发
学 院: 信息工程学院
专 业: 网络工程
班 号:
学生姓名:
指导教师:
基于 android 平台的理财通软件开发
学生姓名:饶明昌班级:170461
指导老师:邬志红
摘要:当今我们生活在一个数字信息化的时代,随着 GPRS、GSM、CDMA、蓝牙、 RFID、WLAN、WIFI、3G 和 4G 等无线技术的飞速发展,以及云端技术的不断成熟,大数据时代已经到来,智能手机已经发展了十多个年头。当今主流品牌手机的操作系统有 Android(安卓)、iOS(苹果)、Windows Phone(微软)、Symbian(塞班)、BlackBerry OS(黑莓),而Android系统凭借其自由及开源性代码迅速在全球占有绝大多数的市场份额。
伴随着科技的不断创新,传统行业也试图通过转型以顺应时代的发展。近些年国家经济发展很快,人民的消费水平也越来越高,但是在现代社会中,很多人对于自己的消费没有严格的控制,特别是如今的商品种类越来越丰富,广告打得也越来越多样化,而且今下年轻人的自制力明显不足,月光族随处可见,甚至消费经常超过自己的经济能力,这样会产生严重影响到正常生活轨迹的后果。而开发一款记账APP则能解决这一问题,让用户对自己的消费有所记录。该APP具备手动记账的基本功能,并能通过数据库管理相关数据。设计最终实现了用户登录功能模块、新增收入功能模块、收入明细功能模块、新增支出功能模块、支出明细功能模块、数据分析功能模块等。通过测试,该系统能够正常运行,各个界面交互性良好。在系统规划时采用了系统功能结构图,并分析了系统所需的各种数据表,详细地展示了系统的各个功能模块,并给出了主要功能的运行效果图。
目录
第一章 绪 论1.1 研究的背景及意义1.2 研究的内容及方法第二章 设计原理和相关技术2.1 构架概述·2.2 关键技术简介·2.3 开发工具配置·2.4 应用平台·第三章 系统需求分析3.1 系统功能分析3.2 可行性分析·3.3 总体设计原则第四章 系统概要设计4.1 系统总体框架设计4.1.1 系统物理架构4.1.2 系统功能模块的设计4.2 数据库设计4.2.1 数据库结构设计4.2.2 数据库表设计4.2.3 数据库的创建与实现第五章 系统详细设计与实现5.1 客户端功能设计5.1.1 欢迎界面5.1.2用户登录模块5.1.3 用户注册模块5.1.4 新增收入模块5.1.5 收入明细模块5.1.6 新增支出模块5.1.7 支出明细模块5.1.8 数据分析模块5.1.9 系统设置模块5.1.10 修改和删除模块第六章 系统的测试及调试第七章 结论
1 绪 论
1.1 研究的背景及意义
近些年国家经济发展很快,人民的消费水平也越来越高,但是在现代社会中,很多人对于自己的消费没有严格的控制,特别是如今的商品种类越来越丰富,广告打得也越来越多样化,而且今下年轻人的自制力明显不足,月光族随处可见,甚至消费经常超过自己的经济能力,这样会产生严重影响到正常生活轨迹的后果。
那么我们是否可以提供一个解决方案,比如说开发一款理财app,让用户可以记录自己的收入与支出情况,并且对自己的收入与支出情况进行分析,这便是我开发这个app的初衷。因此,这个app的开发对于解决上述问题有着很大的现实意义。
1.2 研究的内容和方法
本论文介绍了基于Android平台的理财通软件的整个开发过程。论文详尽论述了从需求分析、概要分析、系统详细设计与实现以及系统调试与测试的整个设计思路。首先全面地研究了理财通软件开发的背景和意义,剖析了市场上主流软件的运行模式,从而得出设计本软件的思路和方法。接着介绍了软件开发的Android平台环境,利用Android内置的SQLite数据库进行数据管理。本软件以Android为平台采用Java语言进行编程,通过一些前端控件实现信息的输入和验证。在系统规划中需要用数据流程图、实体属性图分析数据间的各种关系,全面展示了本设计所要实现的功能模块并给出了各个功能的运行界面图。
理财通APP设计模式主要采用“模型-视图-控制器”MVC架构。利用AndroidStudio的开发环境(IDE)编写JAVA源代码以实现各模块的功能。
系统概要设计分为客户端操作设计和数据库设计两部分。详细设计主要阐述了用户管理,收入管理,支出管理等功能的实现,并列出了系统的核心功能代码。最后对各个功能模块进行了测试,测试结果表明:系统基本具备了完善的功能,视觉上简洁流畅,并且各个功能界面具有良好的交互性。
2 设计原理和相关技术
2.1 构架概述
本软件主要实现的是对支出和收入进行记录、管理、分析,设计最终实现了用户的注册,登录,权限验证,信息记录、信息修改,数据分析等功能。经过测试软件能够正常的运行,各个界面的交互逻辑与体验良好。在整个的设计中运用RecylerView对收入和支出信息展示进行设计,数据分析采用GitHub上的MPAndroidChart开源图表库,并通过SQLite对数据库进行操作。
理财通软件主要采用“模型-视图-控制器”MVC架构的设计模式。MVC架构英文全称是“Model-View-Controller”,MVC 应用程序总是由这三个部分组成。Model 是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数 据库中存取数据。View 是应用程序中处理数据显示的部分,通常视图是依据模型数 据创建的。Controller 是应用程序中处理用户交互的部分,通常控制器负责从视图读 取数据,控制用户输入,并向模型发送数据。其组件类型关系和功能如图 2.1 所示:
图2.1 MVVM组件类型关系和功能图
2.2 关键技术简介
RecyclerView控件
RecyclerView是Android5.0发布的时候推出的一个全新控件,可以支持API 7以上的版本。展示的效果类似于ListView,是列表形式。RecyclerView提供了一种插拔式的体验,高度解耦、灵活和高效。使用LayoutManger、ItemDecoration、ItemAnimator可以实现很多复杂的效果。
SQLite数据库
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,SQLite的主要优势在于灵巧、快速和可靠性高。Android Studio内置了这一数据库供开发者使用。
MPAndroidChart开源图表库
MpAndroidChart是一个开源图表库,它能实现多种常见的图表类型,如:折线图,饼图,堆叠图等。此外它还提供了一些对图表的操作功能,如:拖拽,缩放,显示标签等。这个第三方库能满足一般性图表开发需求。
2.3 开发工具配置
Android Studio
Android Studio 是谷歌推出的一个Android集成开发工具,基于IntelliJ IDEA. 类似 Eclipse ADT,Android Studio 提供了集成的 Android 开发工具用于开发和调试。
2.4 应用平台
Android 平台
Android 平台的特点:以 Linux 为核心且为开源性代码。Android 的系统架构采用 分层的架构。android 分为四个层,分别是应用程序层、应用程序框架层、系统运行 库层和 Linux 核心层。对普通的一个 Android 应用程序来讲,一般都是由 Activity、 Intent Receiver、Service、Content Provider 四个部分组成的。另外,Android 应用程 序还需要一个清单文件,叫做 AndroidManifest.xml 文件,在这个文件中对该应用程 序所要用到的每一个活动进行申明,并且定义组件的功能和 intent-filter 等。
Android 解析意图的方法:主要是通过查找在清单文件中已经过注册的相关组件 的 ID 及过滤器(intent filter)找到当中所合适的组件,然后该应用这些组件达到组件 之间的相关匹配。在 Android 框架应用处理 Intent 方法 的过程中,主要通过该 Intent 的三个属性,即动作,数据类型及类别来进行解释。其中顺序次要,先辨别动作的相关匹配程度,如果不匹配的话那么就进行数据类型之间的的解析,如果数据类型仍然不是很匹配的话,则进行相适应的数据格式之间的解析。
Android 的系统架构如图 2.2 所示:
图 2.2Android 系统架构图
3 系统需求分析
3.1 系统功能分析
理财通软件的开发目标客户是一般用户,用户通过Android手机在应用商店下载apk应用程序,安装好后可以注册使用本软件。经分析,该软件完成的功能主要有手机应用客户端程序。该系统在功能和使用性方面应达到如下要求:
(1) 操作简便,页面交互逻辑清晰,交互性良好。界面保持一致性,操作控制等要有反馈,界面保持效率,流程简化,表意清晰明确。
(2) 即时可见:用户对数据的更改能立即在视图中显示出来。
(3) 系统运行应满足快速、高效和稳定,要求页面最大响应时间不可以超过 10s。
(4) 在结构上应具备良好的可扩展性,便于今后功能的扩展和维护。
3.2 可行性分析
此次设计是基于 Android 平台开发的理财通软件。Android 平台为开发者 提供了巨大的开发空间,再运用 JAVA 面向对象语言能够使该系统的功能更加强大。 利用其内置的SQLite数据库建立本系统所需的各种表可以让其数据更加安全可靠。可行性分析也称为可行性研究,主要用于在系统未进行开发之前,对应用开发使用的可行性,系统要实现的功能以及系统如何实现这些功能,系统开发所使用到的技术,系统开发使用到的结构以及系统开发过程中的花费等进行调研,并得到可行性研究报告。得到这一报告后,便可以对系统进行针对性的研究,得到系统的可行性分析。
3.3 总体设计原则
1、开放性、可扩充性、可靠性原则
一款软件投入市场后要想拥有很高的市场占有率,必须满足开放性。能够支持公共的标准,易于扩展升级,兼容性较强。从而适应广大用户需求的多变性和产品的更新换代。
2、良好的用户操作界面
用户操作界面美观、方便、实用,使用户能在较短的时间内掌握其使用方法。 3、实用性原则
实用性需要从开发者和使用者的角度去考虑。一方面,系统越规范,标准化程度 越高,开发者的工作效率也会越高。另一方面,使用者不需要花费太多的学习成本,这样有利于产品的推广和使用。
4、工作平台设计原则
要求系统兼容性好,确保在不同的平台上都能正常工作,而且在各种网络都能够正常运行。
4 系统概要设计
系统的概要设计主要是概述系统的总体功能如何设计,如何按不同功能来划分模块以及系统所用的数据库如何设计等进行研究。本章节为系统的详细设计埋下伏笔。在系统的设计过程中扮演着非常重要的角色
4.1 系统总体框架设计
本方案主要Android客户端,SQLite数据库.终端设备能实现用户的注册,登录,权限验证,信息记录、信息修改,数据分析等功能。
4.1.1 技术选型
在本设计中,Android 客户端选用 Java 技术,数据的存储采用 SQLite 数据库。
4.1.2系统功能模块设计
在系统功能分析中已简单描述了本系统所具有的主要功能,为了更加直观地了解 本系统的各功能模块及它们之间的逻辑关系,采用系统功能结构图的形式展开,整个结构关系如图 4.1 所示:
图4.1 系统功能结构图
由系统功能结构图可知,系统客户端主要由以下几个模块构成:用户注册和登录、添加新增收入、添加新增支出、对收入和支出进行管理、对数据进行分析等。各模块逻辑关系及功能介绍如下:
1.用户登录:为了增强APP的使用安全,使用APP之前需要进行用户登录验证,而登录过程会在后台的数据库通过用户名称和密码进行查询。所以只有注册用户才有权限使用该系统;
2.主页面信息:系统登录成功后便进入了主页面界面,该页面六个Button控件显示六个子功能模块,六个textView控件显示每一个子功能的名称,便于用户选择要进行的操作。
3.新增收入:单击新增收入按钮后可进入页面添加收入信息,在此页面可以记录自己的收入详情,为日后的收入分析做准备。
4.收入明细:当添加完新增收入信息后,可以返回主页面选择点击收入明细按钮,点击按钮后,系统跳转到收入明细界面,在这里可以查看所有记录的新增收入信息,让自己的收入信息一目了然。
5.新增支出:和新增收入类似,单击新增支出按钮后可进入页面添加支出信息,在此页面可以记录自己的支出详情,为日后的支出分析做准备。
6.支出明细: 和收入明细类似,单击支出明细按钮后可进入页面查看所有记录的新增支出信息,让自己的支出信息一目了然。
7.数据分析:添加了很多收入和支出信息,怎样才能让自己对自己的收支有一个更全面的了解了,图表化是一个很好的选择。在这里用户可以看到根据类别显示的金额数据,并且是用折线的形式现实的。
8.系统设置:点击系统设置按钮,可以修改当前用户密码,也可以获取到当前用户的用户名,如果觉得自己的密码设置的不安全可以使用此功能。
4.2 数据库设计
4.2.1 数据库结构设计
数据库的支持是理财通APP能够实现信息管理的重要前提,其结构设计是系统总体设计阶段非常重要的一个环节。数据库设计要按用户具体要求,在 DBMS 中设计其结构和创建数据库。好的的数据库一般有完整的信息和紧凑的结构。此外,数据调用会很便捷,代码编写也较清晰。
4.2.2 数据库表设计
通过需求分析和E-R图分析,使用SQLite创建了名为financial.db的数据库,总共包含以下三张表,分别是用户信息表(tb_userinfo),收入表(in_come),支出表(pay_out)。financial.db数据库中各数据表的具体结构如图4.2所示:
图 4.2 数据表结构
1.用户信息表(tb_userinfo)
用户信息表用以保存用户的注册信息,主要包含编号(id),姓名(name),密码(pwd),邮箱地址(Email),电话号码(phone)。tb_userinfo表的结构如表4.1所示:
表 4.1 tb_userinfo 表结构
序号 | 字段名称 | 字段含义 | 数据类型 | 长度 | 备注 |
---|---|---|---|---|---|
1 | id | 编号 | int | 11 | 主键 |
2 | name | 姓名 | varchar | 10 | |
3 | pwd | 密码 | varchar | 15 | |
4 | 邮箱地址 | varchar | 50 | ||
5 | phone | 电话号码 | varchar | 11 |
用户信息表中保存了所有注册用户的信息,其信息存储状态如图4.3所示:
图4.3用户信息表
2.收入表
收入表用以保存用户输入的收入明细信息,主要包含编号(id),收入金额(inmoney),收入时间(intime),收入类型(intype),付款方(inpayer),备注信息(inremark)。in_come表的结构如表4.2所示:
表 4.2 in_come 表结构
序号 | 字段名称 | 字段含义 | 数据类型 | 长度 | 备注 |
---|---|---|---|---|---|
1 | id | 编号 | int | 0 | 主键 |
2 | inmoney | 收入金额 | double | 0 | |
3 | intime | 收入时间 | varchar | 20 | |
4 | intype | 收入类型 | varchar | 30 | |
5 | inpayer | 付款方 | varchar | 100 | |
6 | inremark | 备注信息 | varchar | 500 |
收入表中保存了用户输入的所有收入信息,其信息存储状态如图4.4所示:
图 4.4收入信息表
3.支出表(pay_out)
支出表用以保存用户输入的支出明细信息,主要包含编号(id),支出金额(outmoney),支出时间(outtime),支出类型(outtype),收款方(outpayee),备注信息(outremark)。pay_out表的结构如表4.3所示:
表 4.3 in_come 表结构
序号 | 字段名称 | 字段含义 | 数据类型 | 长度 | 备注 |
---|---|---|---|---|---|
1 | id | 编号 | int | 0 | 主键 |
2 | outmoney | 支出金额 | double | 0 | |
3 | outtime | 支出时间 | varchar | 20 | |
4 | outtype | 支出类型 | varchar | 30 | |
5 | outpayee | 收款方 | varchar | 100 | |
6 | outremark | 备注信息 | varchar | 500 |
支出表中保存了用户输入的所有支出信息,其信息存储状态如图4.5所示: