1、河北农业大学本科毕业论文(设计)题 目:基于Android的家庭理财通软件的设计收入管理模块 基于Android的家庭理财通软件的设计收入管理模块摘要:今天我们生活在一个崭新的时代-移动互联网,就是把移动通信和互联网整合在一起,使用移动设备随时随地的访问网络资源,智能手机是移动互联网一个标志性的客户端工具。Android是一个真正意义上的开源智能手机操作系统,而其占用率较低,性能稳定,开放性,可拓展性等特点,受到广大手机运营商的追捧。随着Android智能手机一步步走进人们的生活,手机的功能早已不再局限于打电话和发短信,由于具备天然的便携性,智能手机日益在生活,工作,娱乐等各个方面为人们提供更
2、便捷的服务。理财是现代社会每个人都必须掌握的基本生存能力之。随着信息化时代的到来和现代生活节奏的加快,通过纸笔记账的传统理财方式早已远去,将理财软件同智能手机相结合,用户就可以随时随地方便地记录自己的收支及借贷信息,并可进行统计分析和查看,这样就可以帮助用户随时随地地了解自己的财务状况。本文主要对运用eclipse为开发工具,基于Android系统之上设计关于家庭理财通软件。关键词:家庭理财 android eclipse SQLite Design of Android based on family financial management software- Revenue manage
3、ment moduleAbstract Today we are living in a new age, mobile Internet, mobile communication and the Internet is put together, cyber source access using mobile devices whenever and wherever possible, intelligent mobile phone mobile Internet is a hallmark of client tools.Android is an open source oper
4、ating system of intelligent mobile phone in a real sense, the occupancy rate is low, stable performance, openness, scalability,and other characteristics, by the majority of mobile phone operators pursued.With the development of Android intelligent mobile phone step by step into peoples lives, mobile
5、 phone function is no longer limited to phone calls and send text messages, because the portable natural, intelligent mobile phone increasingly in life, work, entertainment and other aspects provide more convenient service for people.Financial management is the basic ability to survive in modern soc
6、iety, everyone must master.With the advent of the information age and the accelerating pace of modern life, gone through the traditional way of managing money paper notes already accounts, financial software with the combination of intelligent mobile phone, users can easily record revenues and borro
7、wing whenever and wherever possible to their own information, and can analyze and check, so they can help the user whenever and wherever possible to know yourself financial condition.This paper focuses on the use of eclipse as a development tool, Android system design on family financial management
8、financial software based on.Keyword: Family financial management android eclipse SQLite 目录第一章 绪论51.1 课题背景和意义51.2 发展现状及趋势51.3 研究内容6第二章 系统开发技术62.1.1 Android平台介绍62.1.2 eclipse简介72.2 Android开发环境介绍72.3 Android开发环境的搭建 82.3.1 JDK安装82.3.2 Eclipse安装82.3.3 Android SDK安装82.3.4 ADT安装92.3.5 创建AVD9第三章 系统设计103.1.1
9、功能性需求103.1.2非功能性需求103.2设计思想113.3功能分析113.4 SQLite数据库概和需求分析123.4.1 SQLite概况123.4.2 SQLite的常用类123.4.3数据库需求分析13第四章 系统实现134.1 系统架构134.2系统用例分析144.3 系统详细设144.3.1 Activity界面规划及程序执行流程144.3.2 系统编码实现16第五章 总结19致谢20参考文献20第一章 绪论1.1 课题背景和意义随着经济和科技的日益发展,科学技术和移动互联网的日趋进步和更新,人们的生活水平有了显著的提高,收入来源和支出管理日趋重要,如何管理规划财富,如何让财富
10、升值,如何享受财富也日渐成为每个家庭的关注的话题。我国很多居民除购房买车,日常需求外还有现金资产,如何分配管理现金资产是居民最大的需求。如何记录自己收入的多少,支出的方向和现金资产的结余收入等等,成为一个现实的问题。理财是现代社会每个人都必须掌握的基本生存能力之。随着信息化时代的到来和现代生活节奏的加快,通过纸笔记账的传统理财方式早已远去,通过PC软件实施的信息化理财也曾兴起,但是通过PC软件进行理财,很难做到理财信息的实时记录和浏览。移动互联网时代的来临,说明一个崭新的时代开始了。所谓移动互联网是将移动通信和互联网整合在一起,移动设备(包括手机和上网本)可以随时随地地访问互联网资源和应用。智
11、能手机是移动互联网时代一个标志性的客户端工具,它和传统的手机是有区别的,它就像一台“小电脑”,具有独立的操作系统,可以自由安装、卸载软件,具有强大的计算和存储能力,可以通过移动通信网络来实现无线网络接入。对于移动终端设备飞速发展的今天,传统WEB上的应用出现在手机终端是一个大的趋势。将android系统同手机家庭理财相结合,用户就可以随时随地方便地记录自己的收支及借贷信息,并可进行统计分析和查看,这样就可以帮助用户真正实时地了解自己的财务状况,使用户不再为只有打开电脑或通过账本才能理财而烦恼,对家庭的财产有更便捷的管理。1.2 发展现状及趋势Android 是Google开发的基于Linux平
12、台的开源手机操作系统。它包括操作系统、用户界面应用程序移动电话工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。Google与开放手机联盟合作开发了Android,这个联盟由包括中国移动、摩托罗拉、高通、宏达电和T-Mobile 在内的30 多家技术和无线应用的领军企业组成。Google通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。Android系统作为当下最流行的智能终端操作系统由于其开放性和易操作性等特点越来越受到人们的青睐在正式推出两年后在市场占有率上就已经超越
13、称霸十年的诺基亚Symbian系统市场份额现已跃居首位。就市场需求和技术来说未来移动终端的服务会成为主流的手机软件。1.3 研究内容 设计主要应用eclipse开发工具,使用多种组件进行Android 平台对家庭财务通系统的收入管理模块开发。在前台管理中主要用户登录,设置密码。用户可以进行收入有添加,浏览,修改,删除等功能。第二章 系统开发技术2.1 Android平台与eclipse介绍 2.1.1 Android平台介绍Android一词的本义指“机器人”,是Google在2007年11月5日公布的基于Linux平台的开源智能手机操作系统名称。它以Linux核心为基础,只提供基本功能,包括
14、预置Gmail,Google Map,Google Search等移动互联网和社交类业务。同时,为了推广此技术,Google、三星、高通、Motorola、Intel、中国移动、T-Mobile等几十家组建开放手机联盟(Open Handset Alliance),通过与运营商、设备制造商、开发商和其他有关各方结成深层次的合作伙伴关系,Google希望借助建立标准化、开放式的移动电话软件平台,在移动产业内形成一个开放式的生态系统。自07年发布第一个Android版本外,现在Android平台对应的版本号分别为:1.5版Cupcake,1.6版Donut、2.0/2.0.1/2.1版Eclair
15、以 及 下一代F royo和Gingerbread。 特性 : 应用程序框架 支持组件的复用和更换;Dalvik 虚拟机 专门为移动设备进行过优化;集成的浏览器 基于开源的 WebKit 引擎;优化的图形机制 自定义的2D图形库,基于OpenGL ES 1.0规范的3D图形实现(本项为硬件加速器可选);SQLite 轻量级的数据库,支持结构化数据的存储;媒体支持 面向常见的音频、视频以及静态图形档案格式 (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF); GSM 技术 GSM:global system for mobile communications
16、 (依赖硬件支持);Bluetooth, EDGE, 3G, and WiFi (依赖硬件支持);Camera, GPS, compass, and accelerometer (依赖硬件支持);Rich development environment 丰富的开发环境,包含一套硬件仿真器,一些用于程序调试、内存和性能剖析的工具,以及支持Eclipse集成开发环境的插件(ADT )。 2.1.2 eclipse简介 Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的
17、插件集,包括 Java 开发工具(Java Development Kit,JDK)。Eclipse的发展史,版本代号 平台版本 主要版本发行日期 SR1发行日期 SR2发行日期,如下:表2-1 Eclipse的版本号版本代号平台版本主要版本发行日期SR1发行日期SR2发行日期Callisto3.22006年6月26日N/AN/AEuropa3.32007年6月27日2007年9月28日2008年2月29日Ganymede3.42008年6月25日2006年9月24日2009年2月25日Galileo3.52009年6月24日2006年9月25日2010年2月26日Helios3.62006年
18、6月23日2006年9月24日2011年2月25日Indigo3.72006年6月22日2006年9月23日2012年2月24日Juno(预定)3.8及4.22006年6月27日2006年9月28日2013年2月22日Kepler4.32006年6月26日2006年9月27日2014年2月28日Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成Eclipse Platform、JDT、CDT和PDE。JDT支持Java开发、
19、CDT支持C开发、PDE用来支持插件开发,Eclipse Platform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。Eclipse Platform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。2.2 Android开发环境介绍Android的上层应用程序是用Java语言开发,同时还需要基于Dalvik虚拟机,所以,Google公司推荐使用主流的Java继承开发环境Eclipse。只有Eclipse还不够,因为是使用Jav开发,还应该有由SUN公司提供的Java SDK(
20、其中包括JRE:Java Runtime Environment)。此外,Android的应用程序开发和Java开发有较大区别的,所以还要有Google提供的Android SDK。同时,还需要在Eclipse安装ADT,为Android开发提供开发工具的升级或者变更,是Eclipse下开发工具的升级下载的工具。简言之,需要以下软件,才能搭建Android开发环境,从而进行Android应用程序的开发。 (1) Java SDK (2) Eclipse (3) Android SDK (4) ADT2.3 Android开发环境的搭建2.3.1 JDK安装可以先到 下载安装JDK,安装步骤如下
21、:1.我的电脑-属性-高级-环境变量-系统变量中添加以下环境变量:2.JAVA_HOME值为: D:Program FilesJavajdk1.6.0_18(你安装JDK的目录)3.CLASSPASH为:.;%JAVA_HOME%libtools.jar;%JAVA_HOME%libdt.jar;%JAVA_HOME%bin;4.Path: 在开始追加 %JAVA_HOME%bin;5.NOTE:前面四步设置环境变量对搭建Android开发环境不是必须的,可以跳过。安装完成之后,可以在检查JDK是否安装成功。打开cmd窗口,输入java version 查看JDK的版本信息。出现版本信息说明安
22、装成功。2.3.2 Eclipse安装可以去这里http:/www.eclipse.org/downloads/解压之后即可使用。2.3.3 Android SDK安装在Android Developers下载android-sdk_r05-windows.zip,下载完成后解压到任意路径。1.运行SDK Setup.exe,点击Available Packages。如果没有出现可安装的包,请点击Settings,选中Misc中的Force https:/.这项,再点击Available Packages 。2.选择希望安装的SDK及其文档或者其它包,点击Installation Select
23、ed、Accept All、Install Accepted,开始下载安装所选包3.在用户变量中新建PATH值为:Android SDK中的tools绝对路径(本机为D:AndroidDevelopandroid-sdk-windowstools)。完成后,进入cmd运行android -h检查SDK是否安装成功。2.3.4 ADT安装1.打开 Eclipse IDE,进入菜单中的 Help - Install New Software2.点击Add.按钮,弹出对话框要求输入Name和Location:Name自己随便取,Location输入http:/dl-图2.1 ADT设置3.确定返回后
24、,在work with后的下拉列表中选择我们刚才添加的ADT,我们会看到下面出有Developer Tools,展开它会有Android DDMS和Android Development Tool,勾选他们,然后就是按提示一步一步next。4.完成之后:选择Window Preferences.;在左边的面板选择Android,然后在右侧点击Browse.并选中SDK路径,本机为: D:AndroidDevelopandroid-sdk-windows;点击Apply、OK。配置完成。2.3.5 创建AVD为使Android应用程序可以在模拟器上运行,必须创建AVD。1、在Eclipse中。选
25、择Windows Android SDK and AVD Manager2、点击左侧面板的Virtual Devices,再右侧点击New3、填入Name,选择Target的API,SD Card大小任意,Skin随便选,Hardware目前保持默认值 4、点击Create AVD即可完成创建AVD第三章 系统设计3.1 需求分析 3.1.1功能性需求通过案例分析,大致得出以下主要功能需求:(1) 记账功能:收入、支出、转账等条目的记录。(2) 账目查询:可通过设立多个查询条件(如日期区间、账目类别)来获取账目列表。(3) 账户管理:设置例如现金、银行卡、信用卡、一卡通等各类账户。(4) 账目
26、类别管理:设置账目类别如餐饮、交通、娱乐等一级类别;早餐、公交、KTV等二级类别,可供添加账目条目时进行选择。(5) 数据管理:可将数据备份至本机存储空间,或者选择将数据备份至应用的Web系统版。(6) 报表分析:设定若干可选条件,进行符合条件的账目统计,并能按用户要求输出图表,并提供消费建议。(7) Web版同步账号的注册和登陆功能。(8) 理财资讯的获取:通过移动互联网从服务器获取个人理财规划相关资讯。3.1.2非功能性需求移动互联网时代,一个应用想要获得用户青睐,让用户真正的喜欢上该系统,不仅仅需要满足用户的功能性需求,非功能性需求的满足也是十分必要的,必须具备以下良好的用户体验:(1)
27、 界面简洁明了,不失美感,必须适合全触摸屏的使用习惯(2) 操作应尽量简单、快速(3) 程序页面跳转应流畅、平滑(4) 使用优秀的算法,将明细查询和统计分析的报表生成时间做到最短(5) 金额数字应显示清晰,毕竟手机屏幕的大小仍有限,绝大多数为3.5至4.5英寸3.2设计思想随着经济的飞速发展人们的经济来源和支出多方面全方位的发展,家庭理财成为一个家庭收支或家庭不可缺少的一部分,家庭理财很早就实现了集中管理,但是小型的理财系统比较少。随着移动互联网的飞速发展,智能手机已经渐渐在我国居民的生活中普及,为了实现小型的,便捷,高效的管理和规划家庭财产,家庭财务通系统主要实现:收入管理,支出管理,明细查
28、询,预算,类别,股票六个方面。3.3功能分析1.系统登录为了增强系统的使用安全所有用户使用之前必须登录,初次登录需要设置密码。2.收入模块在主界面选择功能进入收入管理模块,该模块主要实现添加,修改收入。理财数据由用户在手机端输入。由于手机输入一般不如PC机键盘输入快捷,因此手机软件的输入一般多采用提供默认值、通过下拉框或列表选择预设数据等方式,从而尽可能减少用户的实际输入量。并且通过类另行设置,用户可以随时更新列表项及默认值。例如,理财记录的账目发生时间可默认为手机系统时间,账户和收支类别均采用下拉框或列表选择的方式,这些设置将大大提高的用户的输入速度。增加备注栏可对下拉框的内容作补充。3.明
29、细管理在主界面选择功能进入明细管理模块,该模块主要实现浏览,删除收入。理财数据由用户在手机端输入,提交后将显示相关详细信息,同时提供指定金额段的查询统计。查询的根据数据表中的表的内容显示。4. 功能流程图。如图3.1所示:是 初次登录 输入密码否设置密码设置初始金额 进入主界面 收入模块明细模块继续添加否 添加完成输入金额范围是 查找完成结束结束是否图3.1 程序流程图3.4 SQLite数据库概和需求分析3.4.1 SQLite概况Android中通过SQLite数据库引擎来实现机构化数据存储。SQLite是一个嵌入式数据库引擎,针对内存等资源有限的设备(如手机、PDA、MP3)提供的一种高
30、效的数据库引擎。SQLite数据库不像其他的数据库(如Oracle),它没有服务器进程。所有的内容包含在同一个单文件中。该文件是跨平台的,可以自由复制。基于其自身的先天优势,SQLite在嵌入式领域得到了广泛应用。Andriod也没有重复发明“轮子”,而是直接使用了SQLite数据库。3.4.2 SQLite的常用类 1.SQLiteDatabase Android提供了创建和使用SQLite数据库的API。SQLiteDatabase代表一个数据库对象,提供了操作数据库的一些方法。Open,insert,delete,query,update,execSQL,close()分别为打开或创建,
31、添加,删除,查询,修改,执行,关闭数据库等。 2.SQLiteOpenHelper SQLiteOpenHelper是SQLiteDatabase的一个帮助类,用来管理数据库的创建和版本更新。一般的用法是定义一个类继承之,并实现其两个抽象方法onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,int oldVersion,int newVersion)来创建和更新数据库。3.4.3数据库需求分析1.数据的导入 手机端数据主要以SQLite数据表的形式存储。SQLite是Android自带的数据库系统,它无须独立运行的数据库引擎,可以由
32、程序直接调用相应的API实现对数据的存取操作,便于删改和检索。对于涉及账户和密码等敏感信息的数据,手机端则采用系统自定义的文件格式加密后存储,从而加强了数据的保密性。对用户设置的密码,输入的数据等需要进行保存,以便下次的更改,删除等。2.数据的导出对用户存储数据的导出到界面,以便可以做到人机交互。第四章 系统实现4.1 系统架构 在Android平台上,个人记账系统被分为了三层,分别是:表现层、业务逻辑层、数据持久层。表现层:主要是Android应用程序的界面提供数据录入、数据的浏览与数据的修改,数据删除等。除此之外,还将负责将用户的事件响应请求消息传递给下一层进行业务逻辑处理。Activit
33、y活动类作为Android平台应用程序的表现层,在系统中的每一个显示屏幕都是一个Activity。业务逻辑层:专门完成业务逻辑的处理。常用来对表现层传入的数据进行业务逻辑处理。为了完成某个业务功能,它可能会跟多个数据访问对象DAO打交道。数据持久层:该层次专著于数据持久化逻辑的实现,将内存数据模型(如实例化对象)转换为持久化的存储模型数据(数据库记录),也可将持久的存储模型数据转换为内存数据模型。系统架构的层次图如图4.1所示:图4.1 系统架构层次图4.2系统用例分析一个具有良好用户体验的系统,需要优秀的边界类提供给参与者,使参与者能够与系统进行良好的交互,并且获取参与者录入的数据,反应触发
34、的事件并将结果反馈给参与者。在Android应用中,边界类主要以Activity界面类来表示。在系统的表示层中添加以下边界类:系统登录边界类、收入界面边界类、系统主界面。图4.1 系统首页界面边界类主界面由6个Tab选项卡组成,用户可分别通过选项卡来选择进行支出、收入、两种账目的记录,每个选项卡具有符合各账目类型的输入框和下拉菜单,最后将数据传递至业务层进行业务逻辑的处理。4.3 系统详细设4.3.1 Activity界面规划及程序执行流程1.登录界面登陆界面是系统的入口,该界面包括一个EditText、两个TextView和两个Botton。如图4.3.1所示。4.3.1 登录 4.3.2
35、主页2. 系统主菜单系统用户登录成功后将进入系统主菜单。系统主菜单由6个Button展示,包括支出、收入、明细、股票信息、类别管理、预算。其界面如图4.3.2所示。3.收入管理模块用户进入模块后可进行添加。选择下拉栏中类别,并可以添加备注对类别进行添加。界面如图4.3.3所示。图4.3.3 收入模块块 4.明细管理模块用户进入模块后可进行浏览。选择一定范围的金额,界面输出查询结果。界面如图4.3.4所示。 4.3.4 明细模块4.3.2 系统编码实现1. 登录模块的实现为了提高系统的安全性,想要使用该系统必须进行系统登录。登录的基本流程是:通过用户输入的用户密码,到后台数据库做查询,如果有该用
36、户存要完成登录模块的Android客户端实现,需要的步骤如下。创建一个Android工程,名称为“JiaTingLiCai”。在工程res/layout目录下,创建一个名称为“welcome_system.xml”的布局文件。该布局文件包括一个EditText、一个TextView和两个Botton。一个TextView可以查验是否首次登陆选择显示的不同。代码下: 获得Button的实例,添加Click事件: button = (Button) findViewById(R.id.button12); 若初次设置密码,代码如下: button.setOnClickListener(new On
37、ClickListener() public void onClick(View v) Cursor cursorB = bcqDao.getAllD();Cursor cursorC = bcqDao.getAllC();if (!cursorB.moveToNext() if (!cursorC.moveToNext() /设置密码成功,跳转到设置账户界面bcqDao.addD(1, editText.getText().toString();new AlertDialog.Builder(YanZhengAct.this).setTitle(密码设置成功!).setPositiveBut
38、ton(下一步,new DialogInterface.OnClickListener() public void onClick(DialogInterface di, int i) Intent intent = new Intent(YanZhengAct.this,ShezhiZhAct.class);startActivity(intent);finish();addsztype();bcqDao.close();).show(); 非初次使用: else Cursor cursorD = bcqDao.getAllD();cursorD.moveToNext();String pa
39、ssword = cursorD.getString(1);if (password.equals(editText.getText().toString() Intent intent = new Intent(YanZhengAct.this,MainAct.class);startActivity(intent);finish();bcqDao.close(); 密码不正确: new AlertDialog.Builder(YanZhengAct.this).setTitle(密码错误!).setNegativeButton(确定,new DialogInterface.OnClickL
40、istener() public void onClick(DialogInterface di, int i) ).show();2.主页设置。收入的实例和Click事件。 super.onCreate(savedInstanceState); setContentView(R.layout.zhuye); shouruImageButton = (ImageButton)findViewById(R.id.shouruImageButton); shouruImageButton.setOnClickListener(this); case R.id.shouruImageButton:I
41、ntent intent1 = new Intent(ZhuYeAct.this, ShouRuAct.class);startActivity(intent1);break;3. 收入的功能的实现。 打开SQLite: bcqDao = new BcqDao(this);bcqDao.open(); 获取当前时间并显示,可以减少人们的操作,也可以进行手动的设置: SimpleDateFormat sDateFormat = new SimpleDateFormat(yyyy/MM/dd);date = sDateFormat.format(new java.util.Date();et2.s
42、etText(date);获取B表的收支:int j = 0;Cursor cursor = bcqDao.getAllB();cursor.moveToLast();cursor.getCount();String zhanghu = new Stringcursor.getCount();cursor.moveToFirst();cursor.moveToPrevious();while (cursor.moveToNext() zhanghuj=cursor.getString(1);j+; 获取B表中的收支类型: B表的设置: private void addsztype() bcqD
43、ao.addB(工资); bcqDao.addB(医疗); bcqDao.addB(奖金); bcqDao.addB(金融保险); bcqDao.addB(人情往来); bcqDao.addB(休闲娱乐); bcqDao.addB(行车交通); bcqDao.addB(食品酒水); bcqDao.addB(衣服饰品); bcqDao.addB(存款利息); bcqDao.addB(交流通讯); bcqDao.addB(灰色收入); bcqDao.addB(每月水电网费); 获取C表中账户类型; 适配spinner,是用户每次可以选取确定的列表选项。 确定监听,可以选择继续添加,或返回主页。 重置监听: resetButton.setOnClickListene