基于Android平台的家庭财务管理软件的设计和实现

时间:2022-10-11 09:53:08

基于Android平台的家庭财务管理软件的设计和实现

摘要:该文采用Android作为开发平台,通过对JDK、ADT-Bundle环境的搭建设计了一款简单实用的家庭财务管理软件,用户可随时随地记录、查询自己的财务信息。该文首先简要介绍了开发技术,随后对系统进行了总体设计,并对该软件进行了部分功能测试,测试结果表明该软件基本上可以满足用户的需求。

关键词:Android ;财务管理;ADT-Bundle

中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2016)28-0090-03

1 概述

随着我国信息化时代的高速发展和人们生活节奏的加快,效率和便捷越来越被人们所重视,传统的依靠手工建立台账的财务管理方式,既不利于存档,又不利于浏览查询,这种财务管理方式逐渐被社会所淘汰;计算机桌面软件虽然可以实现高效记账,但是却难以做到随时随地记账和查询浏览。基于Android平台的手机家庭财务管理软件克服了人工建立台帐效率低和计算机不能移动记账的弊端,可以实现实时记账和查询,Android平台的家庭财务管理软件无疑具有重要的实用意义。

2 开发技术

2.1开发环境

Android是一种以 Linux 为基础的开放源码操作系统,主要用于移动设备。Android主要优势在于手机系统的开放性和服务免费。Android程序的主流开发平台为Eclipse,所用的程序设计语言为Java。ADT-Bundle是安卓程序设计的集成式开发平台,里面包含了Eclipse,Android SDK并且已集成了插件,它解决了大部分新手通过Eclipse来配置Android开发环境的复杂问题。因此只需要通过安装JDK、ADT-Bundle,并对其环境进行配置,就可以快速搭建开发环境。

2.2 Android Activity应用组件

Android中,Activity用于表现功能,是Android应用程序的基本功能单元,所有程序的流程都运行在Activity之中,在Android的程序当中,Activity一般代表手机屏幕的一屏。开发人员可以通过setContentView(View)接口把UI放到Activity创建的窗口上,不同的Activity实例可运行在相同或不同的进程中,Android中通过Intent对象传递Activity消息,一个Intent对象不仅包含有这个消息的目的地,还可以包含消息的内容,开发人员通过startActivity(new Intent(当前Activity.this, 下一Activity.class)将一个Activity传递到下一个Activity。

2.3 SQlite数据库

SQLite是轻量级的、嵌入式的、关系型数据库,它支持SQL语言,现在的主流移动设备像Android、iPhone等都使用SQLite作为复杂数据的存储引擎。对于Android平台来说,系统内置了丰富的API来供开发人员操作SQLite,我们可以轻松地完成对数据的存取。SQLite可移植性好,SQLite嵌入到使用它的应用程序中,它们共用相同的进程空间,而不是单独的一个进程。在Android中当需要操作SQLite数据库的时候只需要得到一个SQLiteOpenHelper对象即可。

2.4 MVC开发框架

在Android项目中,业务逻辑,数据处理等担任了Model(模型)角色,XML界面显示等担任了View(视图)角色,Activity担任了Contronller(控制器)角色。contronller(控制器)是一个中间桥梁的作用,通过接口通信来协同 View(视图)和Model(模型)工作,起到了两者之间的通信作用。软件采用MVC设计模式,可以便于后期程序的扩展性和维护性,当需要改变UI显示的时候,无需修改Contronller(控制器)Activity的代码和Model(模型)模型中的业务逻辑代码,很好地将业务逻辑和界面显示分离。

3 系统设计

3.1 功能介绍

1)收支管理:该软件可以方便使用者对实时的收入和支出进行及时记录。记录的内容包括金额、类别、账户、消费所属的商户、日期、描述等。

2)预算设置:合理的预算是家庭财务管理的关键因素之一,使用者可以根据月初预算设置自己在生活每个消费类型例如:行车、衣物服饰、学习进修、医疗、人情往来等的预算。系统会自动计算出所有分类预算的总和,用户将月工资与月预算进行对比,可以合理地对预算进行调整,使得预算在一个合理的位置。

3)流水清单:用户可以按照天、周、月进行查看当前日期的收入和支出,用户能够一目了然查看当前日期的账目。

经过对系统功能分析之后,现在对软件进行详细的功能模块划分和设计。根据个人资金的日常管理需求,安卓家庭财务管理软件主要设计了首页、收支记录、预算管理、浏览查看功能等模块,总体功能模块结构如下图所示:

3.2 数据库设计

数据库设计师软件整体设计的根基,一个完整的数据库设计包含概念结构设计、逻辑结构设计、物理结构设计。数据库设计应对数据种类、数量、类型、数据流动等进行规划设计,形成数据库系统的整体数据架构,家庭财务管理软件采用轻量级SQLite数据库,SQLite 是Android系统集成的一个ACID关系数据库,SQLite是一款精简的SQL工具,占用的系统资源较小,对SQL的支持全面。Android提供android.database和android.database.sqlite这两个包用于对数据库的支持。根据该软件的需求,设计8种不同的数据表,包括消费表,收入表,账户表,转账表,商户表,收入类型表,消费类型表,预算表。下面主要给出消费表的结构:

3.3 收支管理功能设计

收支管理主要功能是实现收入和支出财产的记录,具体包括收支金额、收支类别、账户类别、日期、描述等的设定,收支这些属性设置了下拉列表框,这样可以方便用户进行输入。例如,将类别属性下拉列表的内容设置为:医疗、娱乐、行车、人情、居家、衣饰、通讯等。下拉列表的设计大大节省了用户的输入量,另外程序采用集成 Layout XML布局档来控制视图,Android将UI从Java代码中分离出来,放入Layout XML档中控制,java代码负责逻辑模型设计,而这种设计体现了MVC原则。图2是XML Layout设计界面。

1)本文对UI采用XML布局设计,下面给出账户的界面XML,见图3。

//设置账户布局框架的长宽

android:layout_height="wrap_content">

//设置账户下拉列表

//设置下拉标题为vlues string对应的值

android:prompt="@string/xialabiaoti"

//设置账户下拉列表触动后的样式

style="@style/touchstyle"

//设置提示信息的颜色为白色

android:textColorHint="@color/white"/>

//设置文本为账户,颜色为白色

android:textColor="@color/white" />

//设置下拉列表图示

2)对按钮实现的点击绑定操作采用Java事件监视器实现,现给输入金额按钮点击事件的代码。

public void onClick( ) {

//由shouzhiActivity界面跳转到keypad数字键盘界面

Intent i=new Intent(shouzhiActivity.this,KeyPad.class);

// 输入支出金额

i.putExtra("value", value);

//返回到shouzhiActivity界面

startActivityForResult(i, 0);}

3.4 其他功能模块

其他功能模块包括首页、收入管理和预算设计、查看功能等模块。其中欢迎页实现桌面图示 欢迎页等功能。收入管理设计同支出设计方法一样,预算设计功能模块包括为每个月的开销制定先期分类预算。查看功能模块只要实现用户可以按日、周、月查看当天收入或支出情况,并可查看每个月的预算情况,当月支出超过预算的时候,预算户自动降低,用户可直观的知道本月还剩下多少预算。图4为安装在模拟器中的桌面图示,图3为欢迎页的界面,图5为预算的界面。

4 结束语

本文通过ADT-Bundle集成开发工具、Android MVC开发模式,简要的设计了一款家庭财务管理软件。软件的数据库采用SQlite进行设计,SQlite可以实现数据永久保存,安全性较高,用XML进行视图UI设计,XML可以实现所见即所得,便于开发者修改UI,用Java代码实现逻辑控制。软件实现了收支的添加,月预算的设置,账目的查看主要功能,用户容易操作。将来需要继续完善该软件的功能,下一步会增加账目信息导出功能,网络转账功能,链接手机支付宝微信等支付软件。

参考文献:

[1] Bruce Eckel.JAVA 编程思想[M].4版:北京:机械工业出版社,2007.

[2] 周洪斌,苏凯英,温一军.基于Android的个人记账程序的设计和开发[J].沙洲职业工学院学报,2015(2).

[3] 王中华,强珏娴.Android 手机理财软件的设计和实现[J].宜春学院学报,2012(12).

[4] 尤新华.基于安卓系统理财软件的设计和应用[J].福建计算机,2013(11).

[5] 邹燕飞,胡泽江.基于 Android平台的个人理财软件开发[J].西安文理学院学报:自然科学版,2013(2).

[6] 徐春成.基于安卓平台的理财软件研究[J].计算机编程技巧与维护,2016(12).

上一篇:理性预期与宏观经济政策 下一篇:砥砺前行再铸辉煌