当前位置:文档之家› 【5】Android毕业论文v1.0

【5】Android毕业论文v1.0

毕业设计说明书

设计题目:基于Android平台的理财软件

批量处理、记账类别模块以及部分UI设计

学院计算机科学与信息工程学院

专业年级计算机科学与技术2011级

学生姓名 XXX 学号 XXXXXXXXX

指导教师 XXX 职称教授

设计地点XXX

日期2015年2月25日~5月14日

目录

1 绪论 (4)

1.1课题背景 (5)

1.2相关技术的基础知识 (5)

1.2.1 Android开发的相关技术基础 (5)

1.3 本文主要研究工作和章节安排 (8)

2 Android的架构概述及开发环境搭建 (8)

2.1 Android的架构描述 (8)

2.2 Android的开发环境搭建 (8)

2.2.1 环境的安装与搭建 (8)

2.3 本章小结 (9)

3 需求分析与系统总体设计 (9)

3.1 概述 (9)

3.1.1编写目的 (9)

3.1.2读者对象 (9)

3.1.3术语与缩写解释 (9)

3.2 系统说明 (10)

3.2.1产品开发背景和目标 (10)

3.2.1.1 背景 (10)

3.2.1.2 目标 (10)

3.2.2 产品目标用户和最终用户 (10)

3.2.2.1 目标用户 (10)

3.2.2.2 最终用户 (10)

3.2.3 系统软件的约束 (10)

3.2.4 软件系统当前版本的范围 (10)

3.2.5 软件系统的角色 (11)

3.2.6 软件系统的功能列表 (11)

3.3 功能需求描述 (11)

3.3.1管家理财的功能需求 (11)

3.3.1.1 业务流程 (12)

3.3.1.2 需求描述 (12)

3.4其他需求说明 (12)

3.4.1软件硬件环境 (12)

3.4.1.1硬件环境 (12)

3.4.1.2 软件环境 (13)

3.5 本章小结 (13)

4 系统详细设计 (13)

4.1 简介 (13)

4.1.1目的 (13)

4.1.2 范围 (14)

4.1.2.1 软件名称 (14)

4.1.2.2 软件功能 (14)

4.2 总体设计 (15)

4.2.1 总体设计思路 (15)

4.2.2 记账类别子模块的划分 (16)

4.2.3 记账类别模块页面流程 (16)

4.3记账类别各子模块的函数接口 (19)

4.3.1 记账类别主菜单函数接口 (19)

4.3.1.1 描述 (19)

4.3.1.2 模块ClassActivity类结构 (19)

4.3.1.3 XML布局文件 (20)

4.3.1.4 对外接口 (21)

4.3.2记账类别添加模块上级目录函数接口 (23)

4.3.2.1 描述 (23)

4.3.2.2 ClassEditiActivity类结构 (23)

4.3.2.3 XML布局文件 (25)

4.3.2.4 对外接口 (19)

4.4 数据库设计 (27)

4.4.1 表结构 (27)

4.4.2 访问数据库的实现 (27)

4.5本章小结 (29)

5测试 (29)

6 总结 (31)

6.1 毕业设计完成的任务 (32)

6.2 收获和总结 (32)

参考文献 (33)

致谢 (33)

基于Android平台的理财软件

批量处理、记账类别模块以及部分UI设计

XXXXXXX 计算机科学与信息工程学院 20XX级软件X班 XXX

指导老师:XXX

【摘要】本文就在分析讨论Android手机软件开发原理的基础上,开发的一款能够提供一些日常的简单理财的软件,它能够记录用户每天的消费与支出,并且可以根据自己的意愿对于自己的消费和支出进行一个分类,之后又运用了Charts图表的形式非常直观的反映出来,这样可以对用户有一个直观的冲击,让用户体验到自己的消费水平与自己的收入之间的一个匹配度,以此来提醒用户如何去规划自己的生活,同时也能够查询过往时间的消费记录,这样让用户在后面能够从哪些地方去加以改善,以此来提高用户的生活质量。

【关键词】 Android Linux 手机理财

[Abstract] In this paper, based on analyzing and discussing the Android mobile phone software development principle, the development of a simple routine can provide some financial management software, it can record the user consumption and spending every day, and can according to their own wishes for a classification for their own consumption and expenditure, and then use the Charts chart in the form of very intuitively reflected, this will have a direct impact on the user, allowing users to experience between their consumption level and their income of a match, to remind users to plan their own lives, but also be able to query past time records of consumption, so that the user can go in the back improved from where, in order to improve the user's quality of life.

[Key words] Android Linux mobile phone banking

一绪论

1、课题背景

随着经济的发展,人们的生活水平日益提高,人们的消费观念的不断转变,消费也从低级开始逐步向较高的层级递进发展,在满足物质消费的同时,人们更重视精神消费。尤其是现代化的经济生活,科学技术的作用日益显著,对劳动者素质的要求越来越高。人们不仅把钱用于物质方面,还很重视精神消费。精神消费用于增进人的精神健康、娱乐身心及发展提高自身的各种消费,而在这个经济发达的社会智能手机应运而生,而其中尤为突出的又属2008年Google推出了一款名为Android的开源智能手机系统,它采用Linux内核,开放手机联盟(OHA)成员可以任意使用和修改SDK包,系统的开源性使其具有良好的拓展性。这款软件包括了操作系统,用户界面和应用程序,即智能手机工作所需要的全部软件。Android的最大特点是其开放性体系架构,不仅具有非常好的开发、调试环境,而且还支持各种可扩展的用户体验,包括丰富的图形组件、多媒体支持功能以及强大的浏览器。因此,对于软件从业人员来说,Android平台具有无限的吸引力。

在两者的结合之下,app应用也更是层出不穷,而本文就是在Android系统上设计了一款关于理财的软件。

2、相关技术的基础知识

(1)Android开发的相关技术基础

Activity

应用程序中,一个Activity通常就是一个单独的屏幕,它上面可以显示一些控件也可以监听并处理用户的事件做出响应。Activity之间通过Intent进行通信。在Intent 的描述结构中,有两个最重要的部分:动作和动作对应的数据。

Activty的生命周期

onCreate :当活动第一次启动的时候,触发该方法,可以在此时完成活动的初始化工作。

onCreate 方法有一个参数,可以为空值,就代表要重新创建实例,也可以是之前调用onSaveInstanceState ()方法保存的状态信息。

onStart :该方法的触发表示所属活动将被展现给用户。

onResume :当一个活动和用户发生交互的时候,触发该方法。

onPause :当一个正在前台运行的活动因为其他的活动需要前台运行而转入后台运行的时候,触发该方法。

onStop :当一个活动不再需要展示给用户的时候,触发该方法。

onRestart :当处于停止状态的活动需要再次展现给用户的时候,触发该方法。

onDestroy :当活动销毁的时候,触发该方法。

onSaveInstanceState :系统调用该方法,保存之前的状态。

activity的四种加载模式

standard::标准模式,一调用startActivity()方法就会产生一个新的实例。

singleTop::如果已经有一个实例位于Activity栈的顶部时,就不产生新的实例,如果不位于栈顶,会产生一个新的实例。

singleTask::会在一个新的task中产生这个实例,以后每次调用都会使用这个,不会去产生新的实例了。

singleInstance::这个跟singleTask基本上是一样,只有一个区别:在这个模式下的Activity实例所处的task中,只能有这个activity实例,不能有其他的实例。

Service

Service是在一段不定的时间运行在后台,不和用户交互应用组件。每个Service必须在manifest中通过来声明。可以通过startservice和bindserverice来启动。

Service和其他的应用组件一样,运行在进程的主线程中。这就是说如果service需要很多耗时或者阻塞的操作,需要在其子线程中实现。

Service生命周期

startService() ->onCreate()->onStart()->stopService() | ->onDestroy()

BroadCastReceiver

B roadcastReceiver 用于异步接收广播Intent

主要有两大类,用于接收广播的:

正常广播,有序广播

另外Broadcast Receiver 并没有提供可视化的界面来显示广播信息。

BroadcastReceiver 生命周期

一个BroadcastReceiver 对象只有在被调用onReceive(Context, Intent)的才有

效的,当从该函数返回后,该对象就无效的了,结束生命周期。

BroadcastReceiver 的两种注册方式:

静态方式,在AndroidManifest.xml的application里面定义receiver并设置要接收的action。

动态方式, 在activity里面调用函数来注册,和静态的内容差不多。一个形参是receiver,另一个是IntentFilter,其中里面是要接收的action。ContentProvider

ContentProvider主要用于对外共享数据,也就是通过ContentProvider把应用中的数据共享给其他应用访问,其他应用可以通过ContentProvider对指定应用中的数据进行操作。

Android的五种布局方式

FrameLayout 帧布局,放入其中的所有元素都被放置你设定的区域,以后的元素都会在你的区域上重叠

LinearLayout 线性布局,是应用程序中最常用的布局方式,主要提供控件水平或者垂直排列的模型,每个子组件都是以垂直或水平的方式来定位.(默认是垂直) AbsoluteLayout 绝对定位布局,采用坐标轴的方式定位组件

RelativeLayout 相对布局,根据另外一个组件或是顶层父组件来确定下一个

组件的位置。

TableLayout 表格布局,以表格的形式布局,使用TableRow,其中TableRow代表一行,TableRow的每一个视图组件代表一个单元格。

android数据存储方式

SharedPreferences存储数据;它是Android提供的用来存储一些简单配置信息的一种机制,采用了XML格式将数据存储到设备中。只能在同一个包内使用,不能在不同的包之间使用。

文件存储数据;是Android中读取/写入文件的方法,与Java中实现I/O的程序是完全一样的,提供了openFileInput()和openFileOutput()方法来读取设备上的文件。

SQLite数据库存储数据;SQLite是Android所带的一个标准的数据库,它支持SQL语句,它是一个轻量级的嵌入式数据库。

ContentProvider存储数据;主要用于应用程序之间进行数据交换,从而能够让其他的应用保存或读取此Content Provider的各种数据类型。

网络存储数据;通过网络上的方式进行上传和下载。

还有很多其他的一些知识,在这里就不做一一介绍了。

3、本文主要研究工作和章节安排

第一章主要讲述了项目的来源、项目的目的和研究意义,并对本系统开发的一些基本知识进行了介绍

第二章对android开发环境的搭配进行详细的说明

第三章是关于需求分析和系统的总体设计

第四章说明了关于系统的详细设计

第五章对本次毕设进行了总结和展望

二 Android的架构概述及开发环境搭建

1、Android的架构描述

Android系统架构图及各层介绍

应用层:应用是用java语言编写的运行在虚拟机上的程序。

应用框架层:这一层是编写Google发布的核心应用时所使用的API框架,开发人员同样可以使用这些框架来开发自己的应用,这样便简化了程序开发的结构设计,但是必须要遵守其框架的开发原则。

系统运行库(C/C++库以及Android运行库)层:当使用Android应用框架时,Android系统会通过一些C/C++库来支持我们使用的各个组件,使其更好的为我们服务。

Linux内核层:Android的核心系统服务给予Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核,比如 Binder IPC 驱动,android的一个特殊驱动程序,具有单独的设备节点,提供进程间通信的功能。

2、Android的开发环境搭建

(1)环境的安装与搭建

1)安装JDK

将下载好的JDK安装好以后,设置环境变量步骤如下:

a.我的电脑->属性->高级->环境变量->系统变量中添加以后环境变量:

b.JAVA_HOME值为:D:\Program Files\Java\jdk1.6.0_18 (你安装JDK的目录)

c.在开始追加 %JAVA_HOME%\bin;

安装完成后,可以检查JDK是否安装成功。打开cmd窗口,输入java-version 查看JDK版本信息

2)安装eclipse

3)安装 Android SDK

4)安装 ADT

5)创建AVD

以上步奏完成之后就可以开发你的第一个android程序啦。

3、本章小结

本章主要介绍一些关于Android的基础知识,以及安装软件的安装,只有当你了解了基础知识,和安装好了软件之后,才能够开发你的Android程序呢。

三需求分析

1、概述

(1)编写目的

用于方便个人生活的小软件,它能够非常方便的记录你个人财产的使用情况,能够用图表的方式直观体现你的经济使用情况,能够让你的生活更有规律,更有节奏。

(2)术语与缩写解释

缩写、术语解释

APK AndroidPackage

JNI JA V A native Inteface

SDK SOFTWARE DEVELOPMENT KIT

ADT 开发 Android 应用程序的插件

2、系统说明

(1)产品开发背景和目标

1)背景

从改革开放至今,我国经济快速增长,居民的家庭财富也在不断积累扩大,人们未来面对的不确定性越来越多,这使每一个家庭必须要通过理财才能实现自己的家庭的生活目标和提高生活质量。由于理财的重要性,它日益成为家庭关注的焦点,目前我国居民的家庭理财规划方式较片面,理财中绝大多数只是关心财富增值效应,缺乏长期性、严谨性和科学性。

所以我们希望能设计出一款能够提供一些日常的简单理财,提升个人以及家庭的生活质量。

2)目标

人们的生活水平提高,但是人群却分为了很多种类,比如月光族,蚁族等等人群的出现,这都是对于自己的消费没有规律造成的,并且还不知道自己的钱花到了何处,不过当你用到了管家理财这款软件之后,你所有的消费都能够一目了然,更是运用到了图表的方式,更直观的显示,这样下次就可以省掉很多不必要的支出,来保持你的收支,提高你的生活质量。

(2)产品目标用户和最终用户

1)目标用户

安卓系统移动端使用者

2)最终用户

安卓系统移动端使用者

(3)系统软件的约束

客户端操作系统:Android系统;

客户端硬件设备:Android手机登移动终端;

JDK版本1.5以上;

Android SDK版本2.2以上;

开发环境:Windows 7操作系统

开发工具:eclipse,sqlite;

(4)软件系统当前版本的范围

Android手机

(5)软件系统的角色

用户

(6)软件系统的功能列表

批量处理

记账类别

3、功能需求描述

(1)管家理财的功能需求

1)用例模型 用户

登录

高级设置统计批量处理

记录

收入信息

记账时间

记账类别

支出信息

选择时间段数据展示修改密码

图1用户登录模型

2) 动态模型 输入密码主界面退出系统

收入模块

支出模块

批量处理

记账类别统计高级设置

图2用户总体流程图

3 )业务流程

记账类别的业务流程:

记账类别

管理添加

删除修改

子目录父目录查重查重显示

图3记账类别流程图

4 )需求描述

记账类别:根据个人的需求添加出不同的分类,方便自己的管理,更清晰的显示你的消费和收入情况,其中分为两个打的模块:

管理:把之前分好的类别的数据进行操作

添加:添加新的类别,同时判断类别中与上级目录是否重复

(2)其他需求说明

1)硬件环境

详细配置如下:

基本类别

类别

Android 手机 结构

Android

软件系统

系统支持 Android 系统 2)软件环境 Dev 版本: Android 手机4.4.4版本

操作系统名称: Android 手机

开发工具: eclipse

软件体系结构: Android 系统

数据库版本: SQLite

4、本章小结

本章主要介绍实现该软件的需求分析,后期需要根据这个需求来完成设计。

四 系统设计

1、 简介

总体E-R 图:

记账类别

编号

名称备注

图片子类编号

上级目录编

号关联

1

1

N

收入

收入金额备注所属类别收入地址

收入日期

图4收入-记账类别E-R 图

记账类别

编号名称

备注图片子类编号

上级目录编号

关联N

1

N

消费

消费金额

备注所属类别消费地址

消费日期

图5消费-记账类别E-R 图

(1)目的

本文的目的是为了描述记账类别模块的软件设计思想,主要包括:

介绍记账类别模块的总体设计思路;

描述记账类别模块的子模块划分;

描述记账类别模块各子模块间的关系和内部接口;

着重描述记账类别各子模块的设计思路和实现方法。

本文档经过需要经过评审以后,为后续的编码做准备工作,并且该文档将为系统测试计划以及测试用例写作的提供必要的相关参考信息。该文档也可供软件组其他模块软件开发人员、测试人员参考之用。

(2) 范围

1) 软件名称

记账类别模块详细设计说明书

2)软件功能

a.点击记账类别,从主菜单进入记账类别管理主界面

b.管理模块下会显示你的所有收入以及消费的目录

c.长按管理模块下的消费目录会弹出操作主界面

d.点击操作界面的修改按钮,会进入修改页面,并且会将之前的数据传

入修改页面

e.点击操作界面的删除按钮,会弹出一个提示界面,询问你是否删除,

如果点击确定,这条数据就会被删除,点击取消就会回到主菜单

f.选择添加模块的时候,就会进入添加主界面

g.你可以在主界面添加你新增的数据,并且进行一些判断

h.当你点击上级类别的时候,会弹出你之前新增的目录结构

i.点击是否重复按钮的时候,会根据你输入的字符串与数据库中的数据

进行匹配,重复则不可添加,不重复才能够使用,以及其他的一些信息

j.点击重设,所有的数据会清空

k.当可以添加成功之后,会回到记账类别管理界面

2、总体设计

(1) 总体设计思路

记账类别总体结构图 点击记账类别

进入记账类别主菜

管理主界面添加主界面

操作窗口

长按主界面内容

进入修改界面

选择修改

完成进入添加主界面,输入你要添加的信息

同时在添加界面选择其他的一些功能弹出删除窗口选择删除

选择操作完成取消

图6记账类别总体结构图

(2)记账类别子模块的划分

根据所需实现的功能和总结设计思路,也为了对记账类别进行有效管理,在详细的设计过程中,我们把记账类别模块划分为以下几个子模块来进行实现。管理子模块

a.修改子模块

b.删除子模块

添加子模块

a.添加子模块

b.判断类别模块

管理子模块:用于管理我们插入的记账类别信息

添加子模块:用于添加新的记账类别信息

修改子模块:用户修改自己已经存在的类别信息

删除子模块:用户可以根据自己的需要删除类别信息

判断类别模块:用户可以根据自己的需求生成父级与子级目录

(3)记账类别模块页面流程

根据需求分析时所定义的功能,我们对记账类别模块从界面上做一个介绍.

总体框架图:

判断上级目录模块:

3、记账类别各子模块的函数接口

(1)记账类别主菜单函数接口

1)描述

主菜单模块主要是实现用户与记账类别各模块进行交互的接口,用来对子模块功能进行选择。本模块是基于TabActivity类来实现的。

2)模块ClassActivity类结构

public class ClassActivity extends TabActivity {

}

主要包括如下函数:

protected void onCreate(Bundle savedInstanceState) {

//用于初始化加载图形界面

}

public boolean onContextItemSelected(MenuItem item) {

//对条目的选择功能进行设置,eg:操作,修改,删除等

}

private void updateManageFclassListViewAdapter(ListView lv, long _pid,int type) {

// 管理页面动态显示类别

}

private void updateAllFlcassListViewAdapter(ListView lv, long _pid, int type) {

// 对界面的功能操作之后,更新界面

}

private void updateAllFlcassListView(long _pid, int type) {

// 添加类别页面动态显示类别

}

private void setAllFcclassDialogListener() {

//给记账类别中的控件添加监听时间

}

private void deleteItem(final long _id) {

// 删除类别

}

private boolean checkIsRepeat(String name) {

// 根据名称查询在已有类型(不含自己)中是否已经存在该类别的名称

}

private boolean insertBefore() {

//判断是否能够插入数据

}

private void insertFclass() {

//用于插入数据

}

private long getIdByName(String name) {

// 根据Name查询表中已存在记录的ID

}

private String getNameById(long _id) {

// 根据ID查询表中已存在记录的Name

}

private Fclass getFclassById(long _id) {

// 根据ID查询表中已存在记录

}

p rivate ArrayList getSubFclassByParentId(long _pid) {

// 根据子类别中的父类别ID属性值查询子类别

}

protected void onStop() {

//查询结束之后关闭游标

}

3)XML布局文件

activity_fclass.xml //用于对页面的总体的布局,在这个类模块加载管理模块理模块

dialog_fclass_allclass.xml//用于显示添加的所有数据的布局

相关主题
文本预览
相关文档 最新文档