基于Android平台的家庭理财系统应用开发_第1页
基于Android平台的家庭理财系统应用开发_第2页
基于Android平台的家庭理财系统应用开发_第3页
基于Android平台的家庭理财系统应用开发_第4页
基于Android平台的家庭理财系统应用开发_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

延陵学院毕业设计说明书 毕 业 设 计 说 明 书题目: 基于Android平台的家庭理财系统应用开发 二级学院: 专 业: 班级: 学生姓名: 学号: 指导教师: 职称: 评阅教师: 职称: 20 年 月基于Android平台的家庭理财系统应用开发摘 要在科技文化高速发展的今天,人们对理财应用的需求也日益高涨。从最初用笔记的账本到如今的多种多样的理财产品无不体现了理财的魅力。而随着智能手机终端的涌现,更是为手机应用提供了高速发展的平台。特别是iPhone智能手机和Android智能手机的面世,为理财应用提供了更完善的的开发环境。本文基于Google公司为广大智能手机开发者提供的Android系统环境,综合运用java、Android、Sqlite、图像处理等技术研究并开发了一款名为“理财助手”的金融理财类应用,应用基本功能包括:用户通过各种不同的控件对日常收支信息进行添加、删除、查询、修改等操作;实时的财经频道,使用户能够接受最新的财经信息;便捷的数据下载功能,使用户能够直接对数据进行操作,除此之外,用户还可以修改自己的账户信息,保证自己的数据安全。此款应用虽然操作比手工复杂,但会使用户能够随时随地地记录自己的日常开销,给用户一个方便的理财环境。关键词:Android;手机应用;Java;理财助手 延陵学院毕业设计说明书DEVELOPMENT OF FAMILY FINANCIAL MANAGEMENT SYSTEM BASED ON THE ANDROID PLATFORM APPLICATIONAbstractIn the culture of science and technology rapid development today, the people of electronic games and entertainment needs also rising. anything that from initial account books to todays various financial products embodies the charm of financing.With the intelligent mobile phone terminal emerge in large numbers, is for the Mobile phone application provides a platform for rapid development of. Especially iPhone intelligent mobile phone and Android intelligent mobile phone available, for Financial application provides a better development environment.the convenient function of data download can make users operate the data directly;beyond that users can also modify thier own account information, ensure the safety of their data. This text based on Google company for the majority of the smart mobile phone provided by the developers of Android system environment, using Java, Android, Sqlite, image processing technology research and the development of a Financial Assistant Financial application, the application features include:user can operate The daily revenue and expenditure information through A variety of different widget;the real-time channel of finance and economics which enables users to accept the latest financial information;the application may be more difficult than handwork when it operated, but it may make user record their own Daily expenses anywhere,provide user a Convenient financing environment.Keywords: Android; mobile phone application; Java; Financial Assistant 延陵学院毕业设计说明书第1章绪论11.1手机应用的研究背景11.2 国内外手机应用的研究现状21.3 本课题研究的目的、意义及研究内容3第2章Android平台研究32.1 Android特性32.2 Android系统架构研究42.3 Android开发的技术点62.3.1Android四大组件62.3.2Android五大存储62.3.3Android应用程序的工作机制82.4Java语言的特点10第3章 应用设计与相关技术123.1理财助手概述123.1.1应用主题创意123.1.2应用程序流程123.2理财助手设计流程133.2.1需求分析133.2.2开发环境143.2.3应用设计思想和模块划分153.2.4应用具体设计153.3应用设计过程中遇到的问题和技术难点163.3.1环境搭载问题163.3.2图标问题163.3.3数据问题163.3.4控件使用问题17第四章4程序分析和具体实现174.1数据库的设计174.2界面布局设计204.3应用主体功能设计224.3.1登录设计224.3.2主界面设计234.3.3添加功能设计234.3.4查询功能设计254.3.5数据下载功能设计274.3.6财经频道与退出功能设计29第五章 测试与完善305.1安装到真实Android手机测试305.2发现BUG和解决情况31总 结31致 谢32参考文献331第1章绪论1.1手机应用的研究背景自上世纪80年代第一部手机诞生以来,随着计算机技术的进步,手机也经历了从模拟到GSM、2.5G再到今天的3G手机如此一个发展历程。特别是进入21世纪后手机的硬件性能得到很大的提高,当前主流手机普遍配有主频500MHZ的微处理器和500MB容量的存储器。与之同步发展的还有支持手机运行的手机操作系统,从当初的单片机系统到后来的专用嵌入式系统,到后来开始为智能手机设计开发出可以更高效管理手机软硬件资源的操作系统,其中有不少属于开源项目的手机操作系统。目前全球的智能手机操作系统主要以Google公司开发的Android系统、苹果公司开发的iPhone系统、诺基亚公司开发的Symbian系统、微软公司开发的Windows Mobile系统和Linux系统为代表。从图1.1为2011全球智能手机操作系统市场份额统计,Android仅仅经过两三年的发展就抢占了43%的市场份额,并保持着2%的增长速度。中国是最大的手机市场,2011年的统计数据表明,Android已取代了iPhone成为中国市场额最大的智能手机操作系统。图1.1 2011全球智能手机操作系统市场份额统计Android系统是Google公司于2007年推出的一款手机操作系统,目前能安装于HTC、摩托罗拉、联想、华为等知名品牌手机。它是基于Linux2.6.1内核的一个开源手机操作系统,目前最高版本为2.4,集成了GPS电子地图导航、重力感应器、多点触控等重要功能,开发者可以开发出丰富的运用。由于Android智能手机操作系统是一个开源项目,具有很强的开放性和可扩展性,吸引了大量的手机软件开发人员为这些手机系统开发应用软件及休闲游戏,极大的丰富了手机功能。为服务广大的开发人员与谷歌手机用户,谷歌公司在因特网搭建了一个应用软件商店。开发人员开发出的手机应用软件可以陈列于应用软件商店中供用户挑选购买,解决了软件工程师最薄弱的软件营销环节,作为目前广大手机软件工程师最大的创收途径而博得广泛的热衷。此外,随着我国城乡居民收入的增加和生活水平的提高,家庭理财已成为人们居家过日子的重要内容。社会学家细心的观察到,时下家庭的财务管理比之计划经济年代,开始发生微妙的变化。现在的城乡家庭生活发生了明显的变化,人们的收入逐渐拉开档次,消费水平也高了。大多数家庭关注的是提高生活质量,一方面精打细算,量入为出,把钱用在刀刃上;另一方面保证适当的娱乐活动、社会交际、智力开发等方面的开支。为此,不少家庭就有中长期财务预算,有基本建设规划。总的说来,家庭财务必须以量入为出为原则,以财产保值增值为目标,处理好积累和消费的关系。家庭财务管理作为手机应用的一部分,使用手机对家庭财务进行管理,具有着手工管理和计算机软件管理所无法比拟的优点,如:便携方便,随时随地,检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点在以上背景下都使得家庭理财管理系统具有很大的发展空间。1.2 国内外手机应用的研究现状在手机应用开发领域当前较为火热的有J2ME语言、Object C语言和Android SDK。J2ME 作为Java2的一个组成部分,以其发展时间长而成为较为普遍的技术。其最大的优势在于移植性强,使用J2ME技术开发的程序,可以经过简单的修改以后,能在不同厂商的手机上运行。同时由于Java语言的普及从而开发周期大大缩短。但是,也因为兼顾移植性,导致其开发出的功能受到一定的限制,又因为其运行于JVM上并受手机性能的影响所以运行速度普遍较慢。Object C语言基于标准的ANSI C,其语法源于Smalltalk消息传递风格,作为iPhone手机上的标准开发语言而受到青睐。相对于J2ME最大特点是软件运行效率高速度快,界面也继承了苹果的华丽风格,遗憾的是开发出的应用软件只能运行于iPhone手机上。谷歌与开发手机联盟合作开发的Android SDK是近两年诞生的充满活力和生命力的手机开发语言,是一个标准的、开放的移动电话软件平台,不存在任何以往那种阻碍移动产业创新的专有权障碍。相对于其他开发语言,Android最大的优点就是开放性,吸引了众多的开发者的支持,短短两年时间开发出大量的手机应用软件,丰富了手机的应用功能。另外对网络友好,支持大部分网络功能,并与Google应用无缝结合,可以轻松获取Google服务。图1.2 2011年中国移动应用超市各类手机软件下载比例Android和手机应用市场正处于起步阶段,市场和消费者需要个接受的过程,众多开发者也都在积极探索盈利模式。Android开发者实现盈利主要依赖两方面因素,一是全球Android手机终端的爆发,另外就是海外付费应用程序的模式逐渐形成。目前Android应用开发个人或团体基本已能摆脱亏损的束缚,获得不错收益。图1.2是中国移动应用软件超市2011年的统计数据,消费者下载量最高的依然是应用开发,占据51%的下载量,而传统的增值业务则只占5%,在移动互联网时代,开发者纷纷逃离营运商的束缚,转向利润较为丰厚的应用程序和游戏开发。由此图也可以看出手机应用软件在消费者中的受欢迎程度,如果想在未来手机应用程序开发中实现规模则需要加大手机应用的开发力度。1.3 本课题研究的目的、意义及研究内容由于本人对手机的酷爱、对代码的敏感和对理财的憧憬,在Android平台下通过掌握的Java语言基础和对Android知识的深入学习,研究并开发了一款金融理财类应用“理财助手”,并通过整个学习、设计和实现的过程,能提高自己的代码量和读写代码能力,为以后步入Android应用开发工作打下基础。第2章Android平台研究2.1 Android特性Android是专门为移动设备开发的平台,其中包含了操作系统、中间件和核心应用等。Android最早由Andy Rubin创办,于2005年被搜索巨人谷歌收购。2007年11月5日,谷歌正式发布该平台。如今采用Android平台的厂商主要包括HTC、Samsung、LG、Motorola等。Android平台有如下特性: 1.应用程序框架支持组件的重用与替换。这样我们可以把系统中不喜欢的应用程序删除,安装我们喜欢的应用程序。2.Dalvik虚拟机专门为移动设备进行了优化。Android应用程序将由Java编写、编译的类文件通过DX工具转换成一种后缀名为.dex的文件来执行。Dalvik虚拟机是基于寄存器的,相对于Java虚拟机速度要快很多。3.内部集成浏览器基于开源的WebKit引擎。有了内置的浏览器,这将意味着WAP应用的时代即将结束,真正的移动互联网时代已经来临,手机就是一台“小电脑”,可以在网上随意遨游。4.优化的图形库包括2D和3D图形库,3D图形库基于OpenGL ES 1.0。强大的图形库给游戏开发带来福音。在3G最为重要的的应用莫过于手机上网和手机游戏。5.SQLite用作结构化的数据存储。6.多媒体支持包括常见的音频、视频和静态印象文件格式如MPEG4、H.264、MP3、AAC、AMR、JGP、PNG、GIF。7.GSM电话(依赖于硬件)。8.蓝牙(Bluetooth)、EDGE、3G、WiFi(依赖于硬件)。9.照相机、GPS、指南针和加速度计(依赖于硬件)。10.丰富的开发环境包括设备模拟器、调试工具、内存及性能分析图表和Eclipse集成的开发环境插件。Google提供了Android开发包SDK,其中包含了大量的类库和开发工具,并且针对Eclipse的可视化开发插件ADT。2.2 Android系统架构研究从图2.1我们可以看出,Android操作系统的体系结构可分为4层,由上到下依次是应用程序、应用程序框架、核心类库和Linux内核,其中第三层还包括Android运行时的环境。下面分别来讲解各个部分。1.应用程序Android 连同一个核心应用程序包一起发布,该应用程序包包括E-mail客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的应用程序都是用Java编写的。图2.1 Android系统架构图2.应用程序框架开发者完全可以访问核心应用程序所使用的API框架。该应用程序框架架构用来简化组件软件的重用,任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性限制)。该应用程序重用机制使得组件可以被用户替换。以下所有的应用程序都由一系列的服务和系统组成,包括:1)一个可扩展的视图(Views)可以用来创建应用程序,包括列表(lists)、网络(grids)、文本框(text boxes)、按钮(buttons),甚至是一个可嵌入的Web浏览器。2)内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据。3)一个资源管理器(Resource Manager)提供非代码资源的访问,如本地字符串、图形和分层文件(layout files)。4)一个通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息。5)一个活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。3. Android程序库Android包括一个被Android系统中各种不同组件所使用的C/C+集库。该库通过Android应用程序框架为开发者提供服务。以下是一些主要的核心库:1)系统C库:一个从BSD继承来的标准C系统函数库(libc),专门为基于Embedded Linux的设备定制。2)媒体库:基于PacketVideo OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态映像文件包括MPEG4、H.264、MP3、AAC、JPG、PNG。3)Surface Manager:对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。4)LibWebCore:一个最新的Web浏览器引擎,用来支持Android浏览器和一个可嵌入的Web视图。5)SGL:一个内置的2D图形引擎。6)3D libraries:基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。7)FreeType:位图(bitmap)和向量(vector)字体显示。8)SQLite:一个对于所以应用程序可用、功能强劲的轻型关系型数据库引擎。4. Android运行库Android包括了一个核心库,该核心库提供了Java编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对同时高效地运行多个VMs实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都是经由Java汇编器编译,然后通过SDK中的DX工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于Linux的一些功能,比如线程机制和底层内存管理机制。5. Linux内核Android的核心系统服务依赖于Linux内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型。Linux内核也同时作为硬件和软件栈之间的硬件抽象层。2.3 Android开发的技术点2.3.1Android四大组件Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器。Activity是Android程序中最基本的模块,他是为用户操作而展示的可视化用户界面,一个Android应用程序中可以只有一个Activity,也可以包含多个,每个Activity的作用及其数目取决于应用程序及其设计。在Android程序中一般每个Activity都是满屏的,但有时也可以浮动于其他窗口只上。Service是能够在后台执行长时间运行操作并且不提供用户界面的应用程序组件。其他应用程序组件能启动服务并且当用户切换到另一个应用程序时,服务还是可以在后台运行。此外组件能够绑定到服务并与之交互,甚至执行进程间通信(IPC)。Content Provider,当应用继承ContentProvider类,并重写该类用于提供数据和存储数据的方法,就可以向其他应用共享其数据。虽然使用其他方法也可以对外共享数据,但数据访问方式会因数据存储的方式而不同。如:采用文件方式对外共享数据,需要进行文件操作读写数据;采用sharedpreferences共享数据,需要使用sharedpreferences API读写数据。而使用ContentProvider共享数据的好处是统一了数据访问方式。BroadcastReceiver是用于接收广播通知的组件。广播是一种同时通知对象的事件通知机制。类似日常生活的广播,允许多个人同时收听,也允许不收听。Android中广播来源有系统事件,例如按下拍照键、电池电量低、安装新应用等,还有普通应用程序,例如启动特定线程,文件下载完毕等。BroadcastReceiver类是所有广播接收器的抽象基类。其实现类用来对发送出来的广播进行筛选并作出响应。广播接收器的生命周期非常简单,当消息到达时,接收器调用onReceive()方法,在该方法结束后,BroadcastReceiver实例失活。2.3.2Android五大存储对于一个开发平台来讲,数据的存储机制是一个非常重要的部件,Android也不例外。它总共包含五大存储:SharedPreferences、文件存储、SQLite存储、 ContentProvider、 网络存储。1.SharedPreferencesSharedPreferencesy主要用于存储“key-value paires”格式的数据,它是一个轻量级别的键值存储机制,只可以存储基本数据类型。SharedPreferencesy主要是通过键盘值对来存储简单数据,我们可以通过SharedPreferencesy的putXXX方法来实现键值数据的存储,同样我们也可以使用SharedPreferencesy的getXXX方法来获取键盘值数据的内容。那么,肯定会有人会问,我们的SharedPreferencesy保存在什么地方呢?我们存储的SharedPreferencesy是以XML文件的格式方式自动保存的,我们可以利用开发环境中DDMS在file explorer中的/data/data/shared_prefs中来查看2.文件存储文件存储是通过java中的IO流来对文件进行操作,然而在android中文件是一个应用程序私有的,一个应用程序无法读写其他应用程序的件。Android中可以在设备本身的存储设备或外接的存储设备中创建用于保存数据的文件,文件是不能在不同的程序之间共享的,我们在android中实现文件的操作都是使用java中IO流的文件操作。在使用文件用于存储数据时我们需要注意,如果使用绝对PATH来存储文件,那么在其他应用程序中一样不能通过这个绝对PATH来访问和操作该文件。3.SQLite存储SQLite是android自身向外提供的一个标准小型数据库。SQLite是一个轻量级嵌入式数据库,支持SQL语法,我们可以通过SQLite来完成一些数据关系复杂,需要长期记录的应用项目。我们可以使用SQLiteDatabase以及SQLiteOpenHelper来实现数据库的创建、打开以及使用(SQL语法)。4.ContentProviderContentProvider是所有应用程序之间数据存储和检索的一个桥梁,它的作用就是使得各个应用程序之间实现数据共享。在我们android中ContentProvider是一个特殊的存储数据的类型,它提供了标准的接口用来获取、操作数据。Android的应用程序可以通过实现ContentProvider的接口来完成数据的共享,利用接口将应用程序中私有的数据暴露提供其他应用程序来使用。如果需要提供其他应用程序来使用我们的私有数据就一定要实现ContentProvider接口中的方法,并生成URI来让外界的应用程序来访问数据。5.网络存储通上网络资源来存储和获得存储空间进行数据存储。这个对于我们来说已经很清楚了,通过网络上提供给我们的存储空间来上传数据(存储)和下载数据(获取)我们存储在网络空间中的数据信息。2.3.3Android应用程序的工作机制工作机制主要是围绕四大组件进行展开的1、ActivityAndroid中,Activity是所有程序的根本,所有程序的流程都运行在Activity之中,Activity具有自己的生命周期由系统控制生命周期,程序无法改变,但可以用onSaveInstanceState保存其状态。对于Activity,关键是其生命周期的把握(如下图),其次就是状态的保存和恢复(onSaveInstanceStateonRestoreInstanceState),以及Activity之间的跳转和数据传输(intent)。图2.2 Activity生命周期图Activity中常用的函数有SetContentView()findViewById()finish()startActivity(),其生命周期涉及的函数有: voidonCreate(BundlesavedInstanceState) voidonStart() voidonRestart() voidonResume() voidonPause() voidonStop() voidonDestroy()注意的是,Activity的使用需要在Manifest文件中添加相应的,并设置其属性和intent-filter。Android中提供了Intent机制来协助应用间的交互与通讯,Intent负责对应用中一次操作的动作、动作涉及数据、附加数据进行描述,Android则根据此Intent的描述,负责找到对应的组件,将Intent传递给调用的组件,并完成组件的调用。Intent不仅可用于应用程序之间,也可用于应用程序内部的Activity/Service之间的交互。因此,Intent在这里起着一个媒体中介的作用,专门提供组件互相调用的相关信息,实现调用者与被调用者之间的解耦。2、Intent属性的设置,包括以下几点:(以下为XML中定义,当然也可以通过Intent类的方法来获取和设置)(1) Action,也就是要执行的动作SDk中定义了一些标准的动作;(2) Data,也就是执行动作要操作的数据。Android中采用指向数据的一个URI来表示,如在联系人应用中,一个指向某联系人的URI可能为:content:/contacts/1。对于不同的动作,其URI数据的类型是不同的(可以设置type属性指定特定类型数据),如ACTION_EDIT指定Data为文件URI,打电话为tel:URI,访问网络为http:URI,而由contentprovider提供的数据则为content:URIs。(3) type(数据类型),显式指定Intent的数据类型(MIME)。一般Intent的数据类型能够根据数据本身进行判定,但是通过设置这个属性,可以强制采用显式指定的类型而不再进行推导。(4) category(类别),被执行动作的附加信息。例如LAUNCHER_CATEGORY表示Intent的接受者应该在Launcher中作为顶级应用出现;而ALTERNATIVE_CATEGORY表示当前的Intent是一系列的可选动作中的一个,这些动作可以在同一块数据上执行。(5) component(组件),指定Intent的的目标组件的类名称。通常Android会根据Intent中包含的其它属性的信息,比如action、data/type、category进行查找,最终找到一个与之匹配的目标组件。但是,如果component这个属性有指定的话,将直接使用它指定的组件,而不再执行上述查找过程。指定了这个属性以后,Intent的其它所有属性都是可选的。(6)extras(附加信息),是其它所有附加信息的集合。使用extras可以为组件提供扩展信息,比如,如果要执行“发送电子邮件”这个动作,可以将电子邮件的标题、正文等保存在extras里,传给电子邮件发送组件。理解Intent的关键之一是理解清楚Intent的两种基本用法:一种是显式的Intent,即在构造Intent对象时就指定接收者;另一种是隐式的Intent,即Intent的发送者在构造Intent对象时,并不知道也不关心接收者是谁,有利于降低发送者和接收者之间的耦合。对于显式Intent,Android不需要去做解析,因为目标组件已经很明确,Android需要解析的是那些隐式Intent,通过解析,将Intent映射给可以处理此Intent的Activity、IntentReceiver或Service。Intent解析机制主要是通过查找已注册在AndroidManifest.xml中的所有IntentFilter及其中定义的Intent,最终找到匹配的Intent。在这个解析过程中,Android是通过Intent的action、type、category这三个属性来进行判断的。3、BroadcastReceiver接收响应动作,如来发送短信时可以注册一个广播接收器,接收发送是否成功的反馈消息,如果发送成功就提示发送成功,失败就提示失败,代码如下:4、事件监听机制如Button按钮的监听。5、数据存储机制SharedPreferences存储、SQLite存储、ContentProvider、网络存储、SD卡存储。2.4Java语言的特点Java语言的流行除了因为它能够编制嵌入HTML文件中的Applet外,还在于Java语言本身的面向对象、简单、平台无关性、安全性、多线程等特点。Java语言的结构与编写方式,与c语言类似,因此学习Java语言,不仅要了解Java语言独有的编程特点,同时还要有程序设计基础和面向对象的概念。 Java语言的主要特点如下: 1简单、高效 Java语言与C类似,如果用户了解C和面向对象的概念,就可以很快编写出Java程序;此外,Java与C+又有所不同,它只提供了基本的方法,这样就减少了编程的复杂性。Java语言虽然简单,却很高效,它可以用面向对象的方法来描述用户的每一个动作。 2面向对象 Java语言是一种新的面向对象的程序设计语言,它除了几种基本的数据类型外,大都是类似c中的对象和方法,程序代码大多体现了类机制,以类的形式组织,由类来定义对象的各种行为。Java同样支持类继承,这样也减少了程序设计的复杂性。 3平台无关性 Java语言经编译后生成与计算机硬件结构无关的字节代码(Bytecode),这些字节代码被定义为不依赖任何硬件平台和操作系统。当Java程序在运行时,需要由一个解释程序对生成的字节代码解释执行。这体现了Java语言的与平台无关性,使得Java程序可以在任何平台上运行,如MS-DOS, Windows,Unix等,因此具有很强的移植性。 4交互式特性Java是面向对象的网络编程语言,由于它支持TCPIP协议,使得用户可以通过浏览器访问到Internet上的各种动态对象。并且在网络上用户可以交互式地进行各种动作,而多线程技术的引入使得这种交互式操作更为容易。 5多线程机制Java语言支持多线程机制,多线程机制使得Java程序能够并行处理多项任务。Java程序可以设计成具有多个线程。多线程机制可以很容易地实现网络上的交互式操作。 6动态的内存管理机制Java语言采用了自动垃圾回收机制进行内存的管理。在Java系统中包括了一个自动垃圾回收程序,它可以自动、安全地回收不再使用的内存块,这样,程序员在编程时就无需担心内存的管理问题,从而使Java程序的编写变得简单,同时也减少了内存管理方面出错的可能性。 7安全性在类似Internet的这种分布式网络环境中,安全性是个不容忽视的问题。Java语言在安全性方面引入了实时内存分配及布局来防止程序员直接修改物理内存布局;通过字节代码验证器对字节代码的检验,以防止网络病毒及其它非法代码侵入。此外,Java语言还采用了许多面向对象的异常处理机制,负责对一些异常事件进行处理,如内存空间不够,程序异常中止等的处理。 8可移植的同体系结构无关的特性使得Java应用程序可以在配备了Java解释器和运行环境的任何计算机系统上运行,这成为Java应用软件便于移植的良好基础。但仅仅如此还不够。如果基本数据类型设计依赖于具体实现,也将为程序的移植带来很大不便。例如在Windows3.1中整数(Integer)为16bits,在Windows95中整数为32bits,在DECAlpha中整数为64bits,在Intel486中为32bits。通过定义独立于平台的基本数据类型及其运算,Java数据得以在任何硬件平台上保持一致。第3章 应用设计与相关技术3.1理财助手概述3.1.1应用主题创意理财助手属于金融理财类应用软件,与该类其他应用类似,用户登录到自己的账号,进行日常收支的管理,该应用相对于一般理财类应用来说,平凡而不失创新,平凡的是主要功能都是日常收支信息的添加,删除,查询,修改等功能,从设计之初,想加入自己独特的创意,让应用在不经意间给玩家带来不一样的体验。比如:应用中新增了数据下载的功能,让用户可以对自己的数据进行进一步处理;应用中还设定了理财频道,此功能可以让用户能够及时的了解身边最新的财经信息,使用户能够及时调整理财方法,亦能方便用户发现当中的商机。除此之外,应用还可以供多人使用,用户可以不止一个,当然一个用户只能看到属于自己的数据。3.1.2应用程序流程本程序采用面向对象的设计模式,下面是程序流程图:系统登录提示错误登录验证 N新增收入添加 Y理财助手新增支出查询信息我的收入更新信息删除信息我的支出数据下载删除信息删除用户系统设置更新用户财经频道退出图3.1 程序流程图打开快捷方式,首先出现的是应用登录界面,输入账号密码之后进行验证,验证通过就跳转到主界面,否则提示错误重新登录或者退出。在主界面中,设置有八个模块,新增收入、新增支出、我的收入、我的支出、数据下载、系统设置、财经频道以及退出。其中新增收入与新增支出的功能大体相同都是将数据添加到数据库中进行保存,只不过添加的信息略有不同,我的收入与我的支出类似主要都是进行数据的修改、删除、查询,只不过在点击这两个图标之后首先运行的是数据的查询,在列表中将查询的数据显示出来再点击其中的一条列表信息会才会跳转到数据的详细界面,之后才能进行删除修改操作,剩下的模块都是直接点击的,没有先后顺序,在系统设置中可以对用户的信息进行操作。退出的话就直接退出程序。3.2理财助手设计流程3.2.1需求分析结合网上调研与应用的大体情况将对以下三方面进行需求分析:界面需求作为与用户交互的直接桥梁,界面的好坏直接关系到用户的体验感,在Android Market中有许多应用就是因为界面设计不够好而失去了用户的青睐,从开发者角度来说,界面简单,有经验的人就会认为你下的功夫不够,因此好的界面也就是点睛的一笔。由于还不是专业开发,所以本应用对于界面的要求还不是很好,但最基本的排版还是要有的。主界面采用GirdView显示图片、标题列表,查询界面则采用ListView显示相关信息,点击跳转到其他页面。总的来说,界面要实现排版整洁,图片缩放正常。功能需求应用界面在一定程度上影响着用户对应用的青睐度,而功能直接关系到用户会不会使用,对于理财助手,满足信息的增、删、查、改是必须能够实现的功能,除此之外本应用还增加了其他的功能,比如让系统支持网页的浏览功能,这样可以可以保证用户能够随时关注最新的财经信息,为了保护用户的隐私,系统还支持用户修改密码;初此之外用户还可以将收支信息下载到本地进行进一步处理。安全性需求理财类应用实际上就是用户收支信息的添加,删除。这在某种意义上也是用户的隐私,没有哪一个用户会希望自己的隐私公布于众,而这在本应用中的体现就是,用户自己的信息绝对不能被其他用户看到。正常情况下,一人用一个手机基本上是不会出现信息泄露的情况,但是在某些情况下,会出现多用户使用的情况,这个时候用户的数据就会又被其他用户看到的可能,对付这种情况一般开发者会设置前后台,固然这种方法解决了用户看不到彼此间的信息,但他的信息会被后台管理者所获取,为此还是开发成单机的应用也不失为一种选择,只要通过一些技术手段使用户只能查询到自己的信息,这还是可以实现的。3.2.2开发环境本程序的开发环境搭建相对比较繁琐,并不是单一软件的傻瓜式安装就可以的,而是有几部分组成,这里我们有必要介绍一下开发环境的组成部分:首先是JDK,JDK(Java Development Kit) 是 Java 语言的软件开发工具包(SDK)。包含了开发和运行Java应用程序的全部工具,目前最新的版本是Java SE 8.0 (1.8.0);其次是Eclipse,Eclipse是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK),其本身就是使用Java语言开发的。ADT(Android Development Tools)是Android应用程序的开发插件,它适用于Eclipse IDE。最后是SDK(Software Development Kit),它是一些被软件工程师用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。在Android中,它为开发者提供了库文件以及其它开发所用到的工具。简单理解为开发工具包集合,是整体开发中所用到的工具包,如果你不用Eclipse作为你的开发工具,你就不需要下载ADT,只下载SDK即可开发。前面已经提到Android开发环境的搭建相对比较繁琐,这里就简单说一下:在已经下载好相应的安装包的情况下,安装的顺序依次是JDK-Android SDK-Eclopse-ADT插件。需要注意的是安装过程中不能出现中文文件名。安装好后会肯定要建立工程,工程的目录结构有必要了解一下。(1) Src:放置的是编写的源文件;(2) Gen:ADT插件自动生成的R.java文件,不可以修改它;(3) Android 2.2:这是android提供的一个jar文件我们所引用的所有类都来源于这个jar文件;(4) Res:可放置文件,同时会在R.java中自动生成ID; Drawable:存放的是图片资源; Layout:存放的是布局文件; Values:存放的是字符串、颜色、数组;(5) AndroidManifest.xml:这是整个应用程序的配置文件,起到关键性的作用;3.2.3应用设计思想和模块划分本应用采用Java面向对象思想,将应用中所有的对象通过划分模块进而创建各自的类。设计初期,通过对程序需求的分析,划分了收入信息模块、支出信息模块,系统设置模块、数据下载模块、登录模块主要几个模块。而后,通过几大模块,对游戏中的对象归类,通过不断的补充各个类的属性,完善程序。系统的总体模块框架图如下:图3.2 系统框架图3.2.4应用具体设计为便于理解将各种功能不同的类进行分类,包括用于数据存储的Model,用于数据处理的DAO以及用于与用户直接交互的com,其中:Model中包括Tb_pwd类、Tb_inaccount类、Tb_outaccount类,这些类都是对数据进行封装的,包括Get()、Set()方法,从命名上也可以看出来Tb_pwd是对密码相关的信息进行存储Tb_inaccount类、Tb_outaccount类分别是对收入信息、支出信息进行存储的,这些类的运行简化了程序的开发过程实现项目代码的重用,提供了程序的性能和代码的可读性。DAO全称Data Access Object,即数据访问对象本系统中创建了dao包,其中包含了DBOHelper、InaccountDAO、OutaccountDAO和PwdDAO四个数据访问类。其中:DBOHelper类用来实现创建数据库、数据表等功能;InaccountDAO类用来对收入信息进行管理包括增、删、查、改;OutaccountDAO与InaccountDAO类似,只不过是对支出信息进行管理;PwdDAO就是对密码相关的信息进行管理。Com包中的类大都是与用户直接交互的类,其基本上都是继承与Activity类其中主界面上的每个模块对应于一个类,从中也可以看出新增收入和新增支出基本一样,所以其对应的类也差距不大。Shourucaozuo类就是对应于新增收入,zhichucaozuo类对应于新增支出,Myincount,Myoutcount对应的就是收入和支出信息的查询模块,前文也提到,在查询界面中,随便点击一个列表信息就会跳到对应的数据界面进行更新,删除操作,这个是由shouruUpdate类和zhichuUpdate类来完成的,前者对应收入信息的修改,后者对应支出信息的修改。Download类顾名思义就是数据下载类,主要功能实现将数据下载到本地保存以便后续的进一步处理。Flip类实现的是登录功能,用户输入数据进行验证成功就顺序执行步骤,验证不通过,执行错误提示。主界面的功能是由MainActivity类来实现的初看之下,主界面上没有什么功能,实则不然MainActivity类实现了将图片和标题进行适配使其一一对应,并且用户能够点击一个图标进入特定的功能,也都是Mainactivity类实现的Intent组件传递功能,下面会有介绍。3.3应用设计过程中遇到的问题和技术难点3.3.1环境搭载问题环境在应用开发过程中扮演者极其重要的角色,为此搭建开发环境并不是一个简单的任务,Android开发环境更是如此,在一开始的搭建过程中失败过好多次,搭建开发环

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论