基于Android平台的个人理财系统设计与实现文献综述
2020-06-01 15:50:06
文 献 综 述
社会在进步,人们的个人财产收入也越来越高,这使得人们对于生活质量的要求也越来越高,然而大多数人并没有足够的时间去思考如何提高生活质量。我们普遍认为对个人财产进行管理是实现高质量生活水平的第一步。在人们收入、支出的费用在不断地增加,而又没有时间来对其进行管理的情况下,个人理财系统就变得尤为实用。
然而传统的个人财产管理系统,很多功能很强大,但也有很多冗余的功能。复杂的界面和繁琐的操作会消耗用户大量的时间和精力,因此个人理财系统所要追求的应该是方便快捷。用户需要投入应该是对数据分析结果的研究,而不是发大量时间去研究复杂的操作。
在智能手机大量普及的今天,庞大的低头族使得移动计算十分流行。利用移动终端进行记账对于用户来说是一件非常方便的事情,用户可以实时记录正在发生的收支信息,更好的保障了消费信息的准确性和实时性。人们可以利用移动终端随时查看自己当前的消费情况和财务状况。通过系统的记账,能够更快地实现个人生活目标。
本次毕业设计旨在实现一个基于Android平台的个人理财系统。开发拟采用Android技术(Android四大组件、数据持久化、网络通信、AsyncTask、Fragment、LitePal、Material Design等),使用AndroidStudio SQLite开发环境。为满足较好的人机交互,提高系统的工作效率,使用MVC模式。
Android是一种基于Linux的自由计开放源代码的操作系统,主要使用于移动设备。其系统架构大致可分为四层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。所有安装在手机上的应用程序都是属于应用层的,比如系统自带的联系人、短信等程序,也包括自己开发的程序。应用框架层提供了构建应用程序时可能用到的各种API,Android自带的一些核心应用就是使用这些API完成的,开发者可以通过这些API来构建自己的应用程序。系统运行库层主要是通过一些c/c 库来为Android系统提供主要的特性支持。因为Android系统是基于Linux内核的,所以Linux内核层为Android设备的各种硬件提供了底层驱动,如显示驱动,音频驱动等。
Android四大组件分别是活动(Activity)、服务(Service)、广播接收器(BroadcastReceiver)和内容提供器(ContentProvider)。其中活动是所有Android应用程序的门面,凡是在应用中你看的到的东西,都是放在活动中的。活动之间使用Intent进行通信。Android中的活动是可以层叠的,每启动一个新的活动,就会覆盖在原来的活动之上,然后点击Back键会销毁最上面的活动,下面的活动就会重新显示出来。服务是Android 中实现程序后台运行的解决方案,它非常适合用于去执行那些不需要和用户交互而且还要求长期运行的任务。服务的运行不依赖于任何用户界面,即使当程序被切换到后台,或者用户打开了另外一个应用程序,服务仍然能够保持正常运行。广播接收器可以允许应用接收来自各处的消息,如电话、短信等,应用同样也可以向外发出广播消息内容提供器(Content Provider)主要用于在不同的应用程序之间实现数据共享的功能,它提供了一套完整的机制,允许一个程序访问另一个程序中的数据,如读取系统电话簿中的联系人。同时还能保证被访数据的安全性。目前,使用内容提供器是Android 实现跨程序共享数据的标准方式。内容提供器可以选择只对哪一部分数据进行数据共享,从而保证应用程序中的隐私数据不会有泄露的风险。
数据持久化就是将那些内存中的瞬时数据保存到存储设备中,即使在手机或电脑关机的情况下,这些数据仍然不会丢失。保存在内存中的数据属于瞬时状态,而保存在存储设备中的数据是处于持久化状态的,持久化技术即是一种可以让数据在瞬时状态和持久化状态之间进行转换的机制。Android中主要提供了3种方式用于实现数据持久化功能,即文件存储、SharedPreferences存储以及数据库存储。文件存储是Android中最基本的一种数据存储方式,它不对存储的内容进行任何的格式化处理,比较适合存储一些简单的文本数据或二进制数据。如果想要使用文件存储的方式来保存一些较为复杂的数据,就需要定义一套自己的格式规范,这样可以方便之后将数据从文件中重新解析出来。SharedPreferences是使用键值对的方式来存储数据的,当保存一条数据的时候,需要给这条数据提供一个对应的键,这样在读取数据的时候就可以通过这个键把相应的值取出来。而且SharedPreferences还支持多种不同的数据类型存储,如果存储的类型是整型,读取出来的数据也是整型;如果存储的数据是一个字符串,那么读取出来的数据仍然是个字符串。SQLite是是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。它是D.RichardHipp建立的公有领域项目。它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如 Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。
Android中网络通信是指在手机端使用HTTP协议和服务器端进行网络交互,并对服务器返回的数据进行解析。Android发送一条HTTP请求一般有两种方式:HttpURLConnection和HttpClient。HttpClient如今已被移除,官方建议使用HttpURLConnection。在开源盛行的今天,有许多出色的网络通信库可以代替原生的HttpURLConnection,该项目中拟使用OKHttp。OKHttp是由Square公司开发的轻量级框架,相比原生的HttpURLconnection,OKHttp具有以下优势:允许连接到同一个主机地址的所有请求,提高请求效率;共享Socket,减少对服务器的请求次数;通过连接池,减少了请求延迟;缓存响应数据来减少重复的网络请求;减少了对数据流量的消耗;自动处理GZip压缩。
AsyncTask:如果通过Thread执行耗时操作,那么在操作完成之后,就可能需要更新UI,这是通常的做法就是通过Handler投递一条消息给UI线程,然后更新UI。这种方式对于这个过程的控制比较精确,但也是有缺点的,例如代码相对臃肿,在多个任务同时执行时,不易对线程进行精确的控制。AsyncTask使得创建异步任务变得更加简单,不再需要编写任务线程和Handler实例即可完成相同的工作,它背后的实现原理也是基于异步消息处理机制的,但是android做了很好的封装。
Fragment是一种可以嵌入的活动中的UI片段,他能让屏幕更加充分合理的利用屏幕的空间,因而在平板上得到广泛的应用,但即使在手机上,也有很多场景可以用到Fragment。