基于安卓Android平台的个人理财软件的设计与实现.docx
《基于安卓Android平台的个人理财软件的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于安卓Android平台的个人理财软件的设计与实现.docx(56页珍藏版)》请在冰豆网上搜索。
基于安卓Android平台的个人理财软件的设计与实现
基于Android平台的个人理财软件的设计与实现
摘要
个人理财管理系统是基于Android系统开发的一款手机应用程序。
它主要是为了满足人们在快节奏的生活中可以随时记下自己的收支情况的需求。
个人理财管理系统与传统的记账方式相比,体现了它的便捷性、安全性及可扩展性。
系统采用Eclipse+AndroidDeveloperTools作为开发工具,以SQLite为数据库。
系统功能包括:
用户账户的注册、用户切换、用户名密码修改、账户删除,语音识别记账,收入信息的增删改,支出信息的增删改,收入类型的增删,支出类型的增删,收入信息分类统计,支出信息分类统计,收入支出总额统计,数据还原、清空等等。
系统具有界面简洁鲜明、功能便捷易用、操作人性化等特征。
【关键字】:
收支管理;Android;SQLite;
PersonalFinancialManagementSystemDesignandImplementation
Abstract:
PersonalfinancialmanagementsystemisbasedontheAndroidsystemdevelopedamobileapplication.Itismainlytomeetthosepeoplewhowanttowritedowntheirincomeandexpendituremorequicklyandconvenientlyinthefast-pacedlife.Comparedwiththetraditionalmethod,Personalfinancialmanagementsystemreflectsmoreconvenience,securityandscalability.Especiallyinthisdayandage,peopleareonthesideofthephone.SystemusesEclipseandAndroidDeveloperToolsasadevelopmenttoolandSQLiteasthedatabase.Androidtechnologyisnowverymature,wecaneasilydevelop.PersonalFinancialManagementSystemofthemainfunctionalmodules,including:
useraccountregistration,userswitching,usernamepasswordchanges,accountdeletion,Incomeinformationmanagement,Expenditureinformationmanagement,voicerecognitionaccounting,Typeofincomemanagement,ExpenditureTypeManager,Incomeinformationclassificationstatistics,expenditureinformationclassificationstatistics,totalincomeandexpenditurestatistics,Datareduction,dataemptiedandsoon.Thesystemhasasimpleandclearinterface,easy-to-usefeatures,user-friendlyoperationandotherfeatures
Keywords:
Revenueandexpendituremanagement;Android;SQLite;
绪论
1.1选题背景
出门口诀“伸手要赏钱”分别代表着身份证、手机、钥匙、伞、钱。
在后PC时代的今天,手机成为最重要的移动终端,是我们出门出行的必携物。
以前,或许我们的手机只能为我们提供基本通信功能,而随着Android系统的诞生,我们的生活迎来了一场不亚于“工业革命”带给我们的巨大变化。
基于Android系统的手机处理各类信息的能力得到了质的提升。
而Android这个开源的操作系统,将享受这项优质服务的权利给了所有愿意使用它的人。
Android从08年9月的1.1版到去年的L版,一路走来,从基本走向优化,全方面地为我们提供了出色的网络、多媒体、通讯、娱乐等功能。
这匹黑马,从诞生伊始到去年7月的“全球市场占有率达81.9%”,告诉我们它的出现是多么受人们欢迎。
它备受追捧的原因不外乎它完全的对第三方软件开发商和我们这些开发者的开发。
我们可以在它上面实现无限自主的“自定义”。
它宛如一张白纸,我们可以在上面随意画出自己想要的东西。
它,贵在给予了我们自由。
1.2课题研究的目的和意义
随着高速经济化,我们的生活节奏越来越快。
我们忙东忙西,总会容易忽略忘记了一些生活细节,比如收支管理。
为了更好的释放一些时间来享受我们的生活,我们期待有这么一款软件来帮助管理这些小数据。
建立在Android操作系统上的个人理财系统,方便我们随时随地地记录着这些零散的数据,从此我们不必再为收支费心,清心地查看数据统计结果是我们唯一要做的事。
1.3国内外现状和发展趋势
安卓在手机上的应用使得手机的功能有了很大改善,这使得越来越多的入主要依靠手机查询大量信息,而用户们不断提高的需求也决定了越来越多的基于安卓平台的应用软件及系统的产生。
若是基于安卓平台的个人理财系统得到广泛推广,人们能从该应用显而易见的了解到个人的财务状况,明确的使用自身钱财,了解到日常中支出比例,调整支出,正确理财。
(1)开放性手机平台:
android是Google开发的基于Linux平台的开源手机操作系统。
Google通过与运营商、设备制造商、手机公司和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的智能手机操作系统,在移动产业内形成一个开放式的生态系统。
(2)网络集成性很高:
涵盖了生活中各个方面的网络应用,对长期使用网络、信息依赖度比较高的人群很合适。
(3)Android具备创新性自从:
Google开发出Android后,许多人认为其技术可信度要比其它操作系统略胜一筹,但这并不是用户购买Android智能手机的唯一原因。
人们认为Android是一种相对较新的、又较为成熟的技术,在达到巅峰之前还有很大发展空间。
(4)Android平台在数量上逐渐主宰市场:
市场分析机构NPD发布的数据显示,2014年4-6月份发售的智能手机中,33%为Android手机,而RIM手机发售比例为28%,iPhone为22%...
(5)Android在其它领域的拓展:
android不仅促进了手机产业的发展,它的全面计算服务和丰富的功能支持,已将应用拓展到手机以外的其他领域。
Android平台的通用性可以适用于不同的屏幕、有线和无线设备。
Android的系统和应用程序开发人员将更多的涉足多媒体、移动互联网设备、数字视频和家庭娱乐设备、汽车、医药、网络、监测仪器和工业管理、机顶盒等新领域。
2设计开发所用到的工具和技术
2.1系统开发工具
个人财务管理系统的开发及运行环境如下所述:
操作系统:
Windows7
JDK环境:
JavaDevelopmentKitversion=1.7.0_45
开发工具:
Eclipseversion=4.2.0
AndroidSoftwareDevelopmentKitversion=4.4.2
AndroidDeveloperToolsBuild:
v22.3.0-887826
开发语言:
Java、XML
数据库软件:
SQLite
运行平台:
Windows
虚拟机:
720P(1080x720)
2.2Android的介绍
Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。
尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。
Android操作系统最初由AndyRubin开发,主要支持手机。
2005年8月由Google收购注资。
2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。
该平台由操作系统、中间件、用户界面和应用软件组成。
它采用软件堆层(SoftwareStack,又名软件叠层)的架构,主要分为三部分。
底层以Linux内核工作为基础,由C语言开发,只提供基本功能;中间层包括函数库Library和虚拟机VirtualMachine,由C++开发。
最上层是各种应用软件,包括通话程序,短信程序等,应用软件则由各公司自行开发,以Java作为编写程序的一部分。
不存在任何以往阻碍移动产业创新的专有权障碍,号称是首个为移动终端打造的真正开放和完整的移动软件。
android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。
在ApplicationFramework之下,由C/C++的程序库组成,通过JNI完成从JAVA到C的调用。
图2-1Android架构
2.3Eclipse的介绍
eclipse-galileoEclipse是一个开放源代码的、基于Java的可扩展开发平台。
就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。
幸运的是,Eclipse附带了一个标准的插件集,包括Java开发工具(JavaDevelopmentTools,JDT)。
Eclipse最初是由IBM公司开发的替代商业软件VisualAgeforJava的下一代IDE开发环境,2001年11月贡献给开源社区,现在它由非营利软件供应商联盟Eclipse基金会(EclipseFoundation)管理。
2003年,Eclipse3.0选择OSGi服务平台规范为运行时架构。
2007年6月,稳定版3.3发布。
2008年6月发布代号为Ganymede的3.4版。
2009年7月发布代号为GALILEO的3.5版。
Eclipse是著名的跨平台的自由集成开发环境(IDE)。
最初主要用来Java语言开发,但是目前亦有人通过插件使其作为其他计算机语言比如C++和Python的开发工具。
Eclipse的本身只是一个框架平台,但是众多插件的支持使得Eclipse拥有其他功能相对固定的IDE软件很难具有的灵活性。
许多软件开发商以Eclipse为框架开发自己的IDE。
Eclipse最初由OTI和IBM两家公司的IDE产品开发组创建,起始于1999年4月。
IBM提供了最初的Eclipse代码基础,包括Platform、JDT和PDE。
目前由IBM牵头,围绕着Eclipse项目已经发展成为了一个庞大的Eclipse联盟,有150多家软件公司参与到Eclipse项目中,其中包括Borland、RationalSoftware、RedHat及Sybase等。
Eclipse是一个开发源码项目,它其实是VisualAgeforJava的替代品,其界面跟先前的VisualAgeforJava差不多,但由于其开放源码,任何人都可以免费得到,并可以在此基础上开发各自的插件,因此越来越受人们关注。
近期还有包括Oracle在内的许多大公司也纷纷加入了该项目,并宣称Eclipse将来能成为可进行任何语言开发的IDE集大成者,使用者只需下载各种语言的插件即可。
2.4SQLite的介绍
SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中。
它是D.RichardHipp建立的公有领域项目。
它的设计目标是嵌入式的,而且目前已经在很多嵌入式产品中使用了它,它占用资源非常的低,在嵌入式设备中,可能只需要几百K的内存就够了。
它能够支持Windows/Linux/Unix等等主流的操作系统,同时能够跟很多程序语言相结合,比如Tcl、C#、PHP、Java等,还有ODBC接口,同样比起Mysql、PostgreSQL这两款开源的世界著名数据库管理系统来讲,它的处理速度比他们都快。
SQLite第一个Alpha版本诞生于2000年5月。
至2015年已经有15个年头,SQLite也迎来了一个版本SQLite3已经发布。
3系统需求分析
3.1需求分析
生活中记录日常花销、收入总是琐碎累心的。
特别是纸质记录,除了携带不方便外,还很容易丢失损毁。
这个时候,若是我们身边常带的手机上有这么一款可以随时记录收入和支出的软件,因为在记录收支的同时,会有一些注意事项需要标注,比如欠钱还钱注意事项。
在对各项数据进行记录后,用户会希望看到对各类数据的统计,所以需要满足基本需求的统计模块。
为了保证数据安全,增设账户模块。
为了区分各用户的操作习惯,所以增设收入支出类型管理模块和系统设置模块。
3.2可行性分析
3.2.1系统可行性
可行性分析实在目前市场己有的类似系统调查的基础上,辩证新系统的研发是否具备开发必要性和可能性,对新系统的研发从技术、经济、社会因素等多个方面进行相关的分析和研究,以避免造成不必要的投资失误,保证和提高新系统开发成功的把握。
可行性研究的目的就是以最小的时间、金钱代价确定疑难问题是否能够妥善解决。
3.2.2技术可行性
此系统需要在Android手机操作系统上运行,用Eclipse进行开发,数据库我选用轻量级的SqLite。
开发所需的软件技术成熟稳定,且支持Android系统的手机也分布广泛,可以完全满足所以的开发需求。
至于自己在Android方面虽然没有基础,鉴于之前有Java编程经验且时间充裕,有足够时间来学习空白的知识。
3.2.3经济可行性
从市场经济来看,近年来,国人生活品质提升,逐渐重视生活品质,手机应用便成了人们生活的一部分。
当今社会己步入了一个全新的信息时代,人类的每个活动都和“信息”紧密的联系在一起,小至个人的衣食住行,大及国家大事新闻发布,都依与信息的传播与发布,而社会中最活跃的,在市场经济高速发展的现在,手机应用普遍化,生活化,低端化成了不可阻挡的趋势。
从技术经济来看,由于SQLite数据库和AndroidSDK都是开源的免费的开发学习工具,而且本系统使用灵活方便,技术也不是很复杂,开发周期较短,因此开发成本较低。
市场前景非常看好,所以说技术经济方面来看,本项目也是可行的。
由此可以看出本系统开发所产生的效益将大于投入,所以开发本项目是可行的、必要的。
综上所述,个人理财系统充分利用了软硬件资源,技术成熟,成本低廉,操作简单,管理方便,使理财记账摆脱空间的限制,实现自动化处理和信息化管理,因此,本系统的实施是可行的。
3.3系统功能模块
(1)用户管理:
可以设置当前用户
(2)类别维护:
用户可以添加日常收入、日常支出的类别,并且可以删除相应的类别,填写类别详细。
(3)日常收入:
用户可以按照日常收入日期、金额、类别、备注进行数据的增添
(4)日常支出:
用户可以按照日常支出日期、金额、类别、备注进行数据的增添
(5)收入支出统计:
按照一定的数据查询条件,用户可以对数据进行统计。
图3-1个人理财管理系统功能结构图
4系统总体设计
4.1系统总体设计分析
系统设计是系统开发过程中的核心,从需求出发,总体上描述系统架构应该包含的组成要素。
系统总体设计尽可能模块化,描述了各个模块之间的关联。
模块化是一种很重要的设计思想,把一个复杂的系统分解为一些规模较小、功能简单的、更易于建立和修改的部分。
一方面,各个模块具有相对独立性,可以分别加以设计实现;另一方面,模块之间的相互关系则通过一定的方式予以说明。
各模块在这些关系的约束下共同构成一个统一的整体,完成系统的功能。
总体设计的核心内容就是依据需求分析定义的功能,合理、有效地实现系统中定义的各种需求,包括模块设计、数据库设计等。
4.2系统流程图
根据系统分析以及功能需求,系统的基本流程可以描述为:
主界面→选择各子功能模块,如下图所示:
图4-1系统流程图
4.3系统特点
(1)目的明确:
理财就是以管钱为中心,通过抓好赚钱、生钱、护钱,三个环节,管好自己手中的现金流动,让资产在保值的基础上,实现稳定持续的增长。
(2)功能齐全:
系统覆盖了理财所需要的功能,收支,统计。
(3)适应性强:
系统采用基于模型的设计思,用户的特点抽象出管理模型,根据模型进行系统设计,使系统具有很好的开放性的拓展性,能够高效率地适应各用户群体的需求。
4.4数据库设计
4.4.1tb_account(账户表)
tb_account用于管理系统各个用户信息。
_id为用户的唯一标识,为表的主键,也为其他表的_id相对应。
Username和pwd分别代表着用户名和密码。
这两个是用户后期可以修改的。
账户表中存在着一个特殊的用户:
默认用户。
它的用户名密码用户不可见。
用户在没有登陆的情况下,数据保存在这个用户下方。
表4-1用户账户表
字段名
数据类型
是否主键
描述
_id
Integer
Y
用户id
USERNAME
VARCHAR(20)
N
用户名
PWD
VARCHAR(50)
N
密码
4.4.2tb_income(收入信息表)
TYPE_ID与tb_itype表的type_id对应。
No为收入信息的编号,不同用户的收入信息存入数据库的时候,都是以no=1为起始的,进而往后递增。
表4-2收入信息表
字段名
数据类型
是否主键
描述
_id
INTEGER
N
用户id
NO
INTEGER
Y
编号
MONEY
DECIMAL
N
收入金额
TIME
DATE
N
收入时间
TYPE_ID
INTEGER
N
收入类别
HANDLER
VARCHAR(100)
N
放款方
MARK
VARCHAR(200)
N
备注
PHOTO
VARCHAR(200)
N
照片
KIND
VARCHAR(10)
N
类别
4.4.3tb_pay(支出信息表)
TYPE_ID与tb_ptype表的type_id对应。
No为收入信息的编号,不同用户的支出信息存入数据库的时候,都是以no=1为起始的,进而往后递增。
表4-3支出信息表
字段名
数据类型
是否主键
描述
_id
INTEGER
N
用户id
NO
INTEGER
Y
自增
MONEY
DECIMAL
N
支出金额
TIME
DATE
N
支出时间
TYPE_ID
INTEGER
N
支出类别
ADDRESS
VARCHAR(100)
N
消费地点
MARK
VARCHAR(200)
N
备注
PHOTO
VARCHAR(200)
N
照片
KIND
VARCHAR(10)
N
类别
4.4.4tb_ptype(支出类型表)
tb_ptype为支出类型表。
由于每个用户都有对应的用户习惯,在添加支出信息时,收入类型的种类、使用频率都会有所不同。
在此设计支出类型表,可以为用户提供修改支出类型的服务,根据自己的使用频率修改支出类型。
表4-4支出类型表
字段名
数据类型
是否主键
可否为空
描述
_id
INTEGER
N
N
用户id
no
INTEGER
Y
N
类型编号
type_id
INTEGER
N
N
类型id
4.4.5tb_itype(收入类型表)
tb_itype为收入类型表。
由于每个用户都有对应的用户习惯,在添加收入信息时,收入类型的种类、使用频率都会有所不同。
在此设计收入类型表,可以为用户提供修改收入类型的服务,根据自己的使用频率修改收入类型。
表4-5收入类型表
字段名
数据类型
是否主键
可否为空
描述
_id
INTEGER
N
N
用户id
no
INTEGER
Y
N
类型编号
type_id
INTEGER
N
N
类型id
5系统详细设计与实现
5.1主界面设计
快速记个人记账软件主界面,有4个Fragment页面。
图5-1为快速记主界面
主界面使用4个Fragment和PopupWindow生成,部分代码:
/**
*显示PopupWindow弹出菜单
*/
privatevoidshowPopupWindow(Viewparent){
DisplayMetricsdm=parent.getResources().getDisplayMetrics();
intw_screen=dm.widthPixels;
inth_screen=dm.heightPixels;
//System.out.println("你的设备w_screen:
"+w_screen+"h_screen:
"+
//h_screen);
if(popWindow==null){
LayoutInflaterlayoutInflater=(LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Viewview=layoutInflater.inflate(R.layout.popwindow_layout,null);
popWinLayout=(LinearLayout)view.findViewById(R.id.popwindow);
//创建一个PopuWidow对象
floatradiowith=w_screen/480.0f;
floatradioheight=h_screen/800.0f;
popWindow=newPopupWindow(view,
(int)(popWinLayout.getLayoutParams().width),h_screen/4);
}
//使其聚集,要想监听菜单里控件的事件就必须要调用此方法
popWindow.setFocusable(true);
pop_voiceView=(LinearLayout)popWinLayout
.findViewById(R.id.pop_voice);
pop_quickView=(LinearLayout)popWinLayout
.findViewById(R.id.pop_quick);
pop_voiceView.setOnClickListener(