毕业论文-基于Android的移动个人助手设计与实现_第1页
毕业论文-基于Android的移动个人助手设计与实现_第2页
毕业论文-基于Android的移动个人助手设计与实现_第3页
毕业论文-基于Android的移动个人助手设计与实现_第4页
毕业论文-基于Android的移动个人助手设计与实现_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

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

文档简介

1、大连东软信息学院本科毕业设计(论文)论文题目论文题目:基于Android的移动个人助手设计与实现 系 所: 电子工程系 专 业: 电子信息工程(嵌入式系统工程方向) 学生姓名: 学生学号: 指导教师: 导师职称: 教授 完成日期: 2014年 5月 2日 大连东软信息学院Dalian 大连东软信息学院毕业设计(论文) 摘要 V基于Android的移动个人助手设计与实现摘 要随着智能手机的普及,各类手机操作系统的竞相发展,Android逐渐成为了市场占有量最大的移动平台操作系统,广泛受到开发者和用户的欢迎,所以在此平台上开发一款方便用户管理、查询日常事务的软件是非常必要的。本设计旨在为广大的移动

2、平台用户特别是Android用户提供一个较为快捷的个人日常事务查询、管理平台。本设计包括天气预报、个人理财、日历、记事本、课程表以及设置功能模块。用户只需打开一个应用软件就能使用全部的功能,不需要在原有的不同应用中不断切换,在一定程度上节省了用户的时间以及手机的硬件资源。本设计针对Android智能手机用户日常软件应用情况,对各常用功能调研统计,从而确定本设计基本功能以及框架。本设计采用软件工程中结构化思想,分模块设计,各功能模块相互独立,分工协作。为方便数据存储查找等操作,本设计采用内置SQLite数据库。主要从需求分析、系统设计、系统实现、系统测试四个方面辅助完成本设计。采用开放源代码的、

3、基于Java的可扩展开发平台Eclipse,使用当前主流Java语言进行编程,一定程度上提高了程序的兼容性、易读性、简洁性。除此之外,为方便用户对收支信息进行分析,理财模块设置有按类别查找功能。关键词:Android,SQLite,个人助手大连东软信息学院毕业设计(论文) AbstractDesign and Implementation of Mobile Personal Assistant Based on AndroidAbstractWith the popularity of smart mobile phone, and the development of all kinds

4、of mobile operating system, Android has become the dominant OS for all smart phones, and welcomed by the developers and users. So it is important for us to develop a software for android platform, which provides more convenient management and daily affairs for user.The design is intended for the maj

5、ority of users, especially Android platform users, to provide a more efficient personal daily affairs inquiry and management platform. The design includes weather forecasts, personal finance, calendar, notepad, and setting curriculum modules. Users simply open a software application will be able to

6、use the full functionality without constantly switching different in the original application, to some extent, saving the user time and the phones hardware resources.It is designed for Android users, according to statistical research on daily software applications and commonly used functions, to det

7、ermining the basic functions and framework. Using structure design and modular design of software engineering, each functional modules are independent. In order to facilitate Data processing operations, the design uses the built-in SQLite database. Mainly from the requirements analysis, system desig

8、n, system implementation, system testing four auxiliary to complete this design. Using open-source, Java-based extensible development platform Eclipse, using the current mainstream Java programming language, to some extent, improved the programs compatibility, accessibility, simplicity. In addition,

9、 to facilitate users to analyze information on revenue and expenditure, financial management module is provided with by category search function.Key words: Android, SQLite, Personal Assistant大连东软信息学院毕业设计(论文) 目录目 录 TOC o 1-3 u 摘 要 PAGEREF _Toc387665657 h IAbstract PAGEREF _Toc387665658 h II第1章绪 论 PAG

10、EREF _Toc387665659 h 11.1 课题研究背景与意义 PAGEREF _Toc387665660 h 11.2 课题研究内容与方法 PAGEREF _Toc387665661 h 11.2.1 开发平台的选择 PAGEREF _Toc387665662 h 11.2.2 开发环境的要求 PAGEREF _Toc387665663 h 11.2.3 开发语言的选择 PAGEREF _Toc387665664 h 21.2.4 开发模式的选择 PAGEREF _Toc387665665 h 21.3 课题研究现状 PAGEREF _Toc387665666 h 2第2章关键技术介

11、绍 PAGEREF _Toc387665667 h 42.1 Android架构 PAGEREF _Toc387665668 h 42.1.1 Android应用程序层 PAGEREF _Toc387665669 h 52.1.2 应用程序框架层 PAGEREF _Toc387665670 h 52.1.3 系统运行库层 PAGEREF _Toc387665671 h 52.1.4 Linux核心层 PAGEREF _Toc387665672 h 52.2 实现Activity间数据的传递 PAGEREF _Toc387665673 h 52.3 数据库应用 PAGEREF _Toc38766

12、5674 h 62.4 SharedPreferences应用 PAGEREF _Toc387665675 h 62.5 JSON文本 PAGEREF _Toc387665676 h 7第3章系统需求分析 PAGEREF _Toc387665677 h 83.1 系统设计目标 PAGEREF _Toc387665678 h 83.2 系统功能需求 PAGEREF _Toc387665679 h 83.2.1 用户登录模块 PAGEREF _Toc387665680 h 83.2.2 主界面模块 PAGEREF _Toc387665681 h 83.2.3 天气预报模块 PAGEREF _Toc

13、387665682 h 93.2.4 个人理财模块 PAGEREF _Toc387665683 h 93.2.5 日历模块 PAGEREF _Toc387665684 h 103.2.6 记事本模块 PAGEREF _Toc387665685 h 103.2.7 课程表模块 PAGEREF _Toc387665686 h 113.2.8 设置模块 PAGEREF _Toc387665687 h 113.3 系统非功能需求 PAGEREF _Toc387665688 h 123.4 系统开发环境 PAGEREF _Toc387665689 h 123.5 系统可行性分析 PAGEREF _Toc

14、387665690 h 123.5.1 技术可行性 PAGEREF _Toc387665691 h 123.5.2 经济可行性 PAGEREF _Toc387665692 h 123.5.3 操作可行性 PAGEREF _Toc387665693 h 12第4章系统设计 PAGEREF _Toc387665694 h 144.1 系统设计指导原则 PAGEREF _Toc387665695 h 144.1.1 先进性 PAGEREF _Toc387665696 h 144.1.2 可靠性及安全性 PAGEREF _Toc387665697 h 144.2 体系结构设计 PAGEREF _Toc

15、387665698 h 144.3 系统类设计 PAGEREF _Toc387665699 h 154.4 系统数据库模型设计 PAGEREF _Toc387665700 h 174.4.1 各模块E-R图 PAGEREF _Toc387665701 h 174.4.2 数据库设计 PAGEREF _Toc387665702 h 18第5章系统实现 PAGEREF _Toc387665703 h 205.1 环境配置 PAGEREF _Toc387665704 h 205.2 功能模块实现 PAGEREF _Toc387665705 h 205.3 系统集成与调试 PAGEREF _Toc38

16、7665706 h 27第6章系统测试 PAGEREF _Toc387665707 h 286.1 测试概述 PAGEREF _Toc387665708 h 286.2 测试用例 PAGEREF _Toc387665709 h 28第7章结论 PAGEREF _Toc387665710 h 33参考文献 PAGEREF _Toc387665711 h 34致 谢 PAGEREF _Toc387665712 h 36大连东软信息学院毕业设计(论文)- 第1章绪 论1.1 课题研究背景与意义随着移动平台的崛起,越来越多的传统PC软件被移植到移动平台,比如iPad,iPhone,Android等智能

17、终端设备,在这些平台中,Android占领着巨大的市场份额,凭借其自身的开源化、大众化、高适应性,使得基于该平台的产品广泛分布在低端,中端和高端市场中,并且在各个阶层市场中都有很受欢迎的机型。现在基于Android平台的应用软件层出不穷,分散的各个功能软件不但降低了用户的应用体验,各应用软件间的重复部分更在很大程度上浪费了宿主机原本有限的硬件资源。所以,为Android用户开发一款功能集成度高的应用软件就显得尤为必要了。本设计将一些使用率较高的日常软件集成在一个应用软件中,可以使各类型的软件得到功能互补,共享资源,为本来硬件条件就不是很好的手机提供一个良好的运行环境。1.2 课题研究内容与方法

18、本设计旨在为广大的移动平台用户特别是Android用户提供一个较为快捷的个人日常事务查询、管理平台,其中包括:天气预报,个人理财,日历,课程表等等的一个软件集成应用。用户只需打开一个应用软件就能使用全部的功能,不需要在原有的不同应用中不断切换,在一定程度上节省了用户的时间以及手机的硬件资源。1.2.1 开发平台的选择Android系统的发展势头迅猛,让Symbian系统手机措手不及,Android智能手机数量已超过iPhone也成事实。Android的开发是开源的,安卓开发更具可行前提,苹果机封闭源代码,使得在众多智能手机厂家中一枝独秀,但是有些过于封闭;而安卓机近年风生水起,其开源性给开发者

19、提供了极大的便利,虽然目前软件开发有些混乱,但相信以后会推出规范化的操作系统。1.2.2 开发环境的要求硬件:一台电脑(配置中等)。软件:JDK:是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。Eclipse:是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务的集合,用于通过插件组件集成构建开发环境。Android SDK:Android SDK 指的既是Android专属的软件开发工具包。ADT:在Eclipse下开发工具的升级和下载工具。从比较中Android的必要条件要少,与iPhone开发相比更具有优势。1.2.

20、3 开发语言的选择Android主流开发语言是Java,但也可以使用C、C+开发,即使用Android NDK,不过使用NDK编程有一些劣势,例如程序会变的更加复杂,兼容性无法保障,无法访问Framework API,Debug难度更大等。所以一般还是用Java。1.2.4 开发模式的选择Android的网络编程主要分为2种:一种是基于socket的,另一种是基于http协议的。第一种方法:基于socket的用法,先启动服务器端的一个socket,用于侦听请求、取得输入和输出,客户端发起一个socket连接,用于取得输入和输出,socket的交互是通过流(输入输出流)来完成的;第二种方法:基于

21、http协议,一般是发送请求到某个应用服务器,此时需要URL,设置缓存获得输出流便于服务器发送信息,同时向流里写请求参数,用于获得输入流,取数据。本设计中有一个天气预报功能的需求,关键的获取天气数据部分有两种方案可供可供采用:方案一,Webservice方式,即基于socket。方案二,访问中央气象台的天气预报API,即基于http协议。对两种方案进行比较。方案一:采用Webservice方式获取天气数据时,在Android SDK中并没有提供调用WebService的库,因此,需要使用第三方的SDK来调用WebService。方案二:通过访问中央气象台的天气预报API获取天气数据,执行URL

22、,得到一个JSON格式的返回文本,再对文本加工处理得到所需数据。比较两种方案,方案一采用中国气象局提供的服务服务,而该服务分为付费和免费的。而免费的每天有一定的访问次数限制。将应用安装到其他手机上也无济于事。并且免费的有时也不是很稳定。方案二有很高的稳定性和一定的广阔性,可以精确到县和区,并可以无限次重复使用。唯一的缺点就是需要获取对应的城市码。通过对两种方案的对比,本设计采用方案二。1.3 课题研究现状Android手机发展迅速,占据着极大的市场份额,Android比原来手机系统具有很大优势,其友好的用户界面、简易流畅的操作模式带来了前所未有的用户体验,其开源性、可移植性、高效的开发环境对A

23、ndroid的开发者提供了很大的便利,所以Android手机的兴起、迅猛发展是必然的。Android手机系统的日常实用软件目前还处于中低端水平,比起之前的各个辅助类应用软件,本设计应该更加综合,网络化也是必须的发展方向,将各个原有不同应用集成到同一个应用中,方便用户使用,节约硬件资源是本设计重点关注的。 大连东软信息学院毕业设计(论文)第2章关键技术介绍本设计中涉及到的主要的关键技术有以下几个:技术一:Android架构技术二:实现Activity间数据的传递技术三:数据库应用技术四:登陆界面SharedPreferences的应用技术五:JSON文本2.1 Android架构Android采

24、用分层的架构,分为四层,从高层到底层分为应用程序层,应用程序框架层,系统运行库层和Linux核心层。Android架构图如图2.1所示。图2.1 Android架构2.1.1 Android应用程序层应用是用Java语言编写的运行在虚拟机上的程序,其中,Android系统中内置邮件客户端、SMS程序、日历、地图、浏览器、联系人等核心应用。用户使用的应用程序也在这一层。2.1.2 应用程序框架层这一层主要包括了各种供开发者使用的API框架,方便开发人员进行扩展应用的开发,简化架构设计。任何应用程序都能发布他的功能且任何其他应用程序可以使用这些功能,但是必须遵守其框架的开发原则。这一机制允许用户自

25、由替换组件。在Android SDK中内置了一些对象,其中最重要的组件要属Activities、Intents、Services以及Content Providers四个组件。2.1.3 系统运行库层Android包含一个CC+库的集合,供Android系统的各个组件使用。这些功能通过Android的应用程序框架(application framework)暴露给开发者。2.1.4 Linux核心层所有东西的底层是一个稳定的保持更新的Linux内核,以及开发者精心打造的能源管理组件;当然还有将它们整合至上层Linux代码的扩展和公共组件。2.2 实现Activity间数据的传递如果要在两个类中

26、传递数据,方法可以有很多。方法一:可以先实例化某个类,获得该类的引用,当其他类需要该对象的内部数据时,可以直接通过该引用去访问该类的内部数据。方法二:对于A、B两个类之间,可以先实例化一个第三方类C,然后两个类都可以把需要传递的数据存入C中,或从C中取出。这些方法理论上都可以用在Activity类之间传递数据。然而,与普通类传递数据有所不同,普通类的实例化都是程序员显式完成的,而Activity类的实例化却是由Framework完成的,程序员只能使用startActivity()方法来告诉Framework去运行哪个Activity,这就意味着程序员不能得到Activity对象的引用,那么就不

27、能直接访问该对象的内部数据。解决的办法是使用Activity.getApplication()函数,该函数能够返回一个Application对象,该Application对象在该程序中是唯一的,同一程序中的不同Activity调用该函数所返回的Application对象是相同的,该对象的名称可以在AndroidManifest.xml中指定。一旦获取了该Application对象,就可以借助该对象,在不同的Activity之间传递数据。除此之外,Framework本身也提供了标准的Activity之间传递数据的方法,即Intent类一种基于消息的通信机制。该类作为startActivity()

28、的参数,仅用于在启动Activity时传递给目标Activity,同时,如果调用startActivityForResult(),目标Activity在结束后,也会返回一个Intent对象给原Activity。其中Intent包含两部分:(1)目的【action】要去到哪里去(2)内容【category、data】路上带些什么,区分性数据和内容性数据2.3 数据库应用本设计采用关系型数据库SQLite3,它是一个支持SQL轻量级的嵌入式数据库,在嵌入式操作上有很广泛的应用。使用SQLiteOpenHelper对数据库进行版本控制。当设计中应用SQLite数据库时,需要考虑到用户初次使用时数据表

29、的创建、初始化,以及升级软件时候对数据表的更新。针对这种情况,采用Android系统提供的SQLiteOpenHelper的抽象类,继承该类,通过对数据库版本管理实现创建、初始化以及更新操作。其中,SQLiteOpenHelper类提供了onCreate(SQLiteDatabase db)和onUpgrade(SQLiteDatabase db,int oldVersion, int newVersion)两个重要方法实现数据库版本控制。前者用于数据表的生成及初始化操作,后者用于数据库表结构的更新操作。对数据进行添加(Create)、查询(Retrieve)、更新(Update)和删除(De

30、lete)操作则需要使用Android提供的一个名为SQLiteDatabase的类,利用其封装的操作数据库的API实现对数据的相应操作。2.4 SharedPreferences应用SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置参数,它是采用xml文件存放数据的,文件存放在/data/data/shared_prefs目录下。由于SharedPreferences是一个接口,而且在这个接口里没有提供写入数据和读取数据的能力。但它是通过其Editor接口中的一些方法来操作SharedPreference的,用法见下面代码:Context.g

31、etSharedPreferences(String name,int mode)来得到一个SharedPreferences实例。name:是指文件名称,不需要加后缀.xml,系统会自动为我们添加上。mode:是指定读写方式,其值有三种,分别为:Context.MODE_PRIVATE:指定该SharedPreferences数据只能被本应用程序读、写。Context.MODE_WORLD_READABLE:指定该SharedPreferences数据能被其他应用程序读,但不能写。Context.MODE_WORLD_WRITEABLE:指定该SharedPreferences数据能被其他应

32、用程序读写。2.5 JSON文本JSON(JavaScript Object Notation)是一种轻量级的数据交换格式。它基于JavaScript(Standard ECMA-262 3rd Edition - December 1999)的一个子集。JSON除了使用类似于C,C+,C#,Java,JavaScript,Perl,Python等语言习惯外采用完全独立地文本格式。JSON的这些特性使得他发展为一个较为理想的数据交换语言,不仅易读写而且方便机器解析生成。JSON建构有两种结构,简单说就是javascript中的对象和数组,通过这两种结构可以表示各种复杂的结构。(1)对象:对象在

33、js中表示为“”括起来的内容,数据结构为key:value,key:value,的键值对的结构,在面向对象的语言中,key为对象的属性,value为对应的属性值,所以很容易理解,取值方法为对象key获取属性值,这个属性值的类型可以是数字、字符串、数组、对象几种。(2)数组:数组在js中是中括号“”括起来的内容,数据结构为“ HYPERLINK /view/29.htm t _blank java”,“javascript”,“vb”,取值方式和所有语言中一样,使用索引获取,字段值的类型可以是数字、字符串、数组、对象几种。经过对象、数组两种结构就可以组合成复杂的数据结构了。第3章系统需求分析本章

34、主要在系统系统功能性需求和非功能性需求两方面进行需求分析,简要介绍了系统开发环境,并对设计可行性加以分析。3.1 系统设计目标本设计旨在设计一款集成式个人应用软件,将原本分散的各项功能整合到一起,从而方便用户使用。本设计预期目标为完成系统基本功能,并在基本功能基础上有所扩展,增加其美观性、实用性、安全性。3.2 系统功能需求根据需求调研结果确定本系统主要包括天气预报、个人理财、日历、记事本、课程表、设置等功能模块。本系统是一个人机交互的过程,需要使用者输入必要的信息,经过系统处理后数出相应的结果供用户使用,本系统各模块的IPO过程将在下文分别列出。3.2.1 用户登录模块为保护用户隐私设置此模

35、块,在使用该系统时,用户需要输入争取的密码才可访问。本模块IPO过程如表3.1所示。表3.1 用户登录模块信息输入输出信息输入信息处理信息输出用户输入密码系统获取用户输入输入密码界面用户按“确定”键系统进行密码匹配密码正确显示系统主界面密码错误退出系统3.2.2 主界面模块本功能模块用户可以直观的看到有哪些主要的功能,并可以进行自主选择。本模块IPO过程如表3.2所示。本模块UI界面如图3.1所示。表3.2 主界面模块信息输入输出信息输入信息处理信息输出用户选择“天气预报”功能系统菜单响应处理显示天气预报主界面用户选择“个人理财”功能系统菜单响应处理显示个人理财主界面用户选择“日历”功能系统菜

36、单响应处理显示日历主界面用户选择“记事本”功能系统菜单响应处理显示记事本主界面用户选择“课程表”功能系统菜单响应处理显示课程表主界面用户选择“设置”功能系统菜单响应处理显示设置主界面图3.1 主界面3.2.3 天气预报模块用户可以进行天气预报城市的选择、城市的添加、删除操作,并可以对查询过的城市进行管理。本系统应具备基本的天气情况显示功能,在联网情况下,每次查询显示未来三天的天气情况,包括温度、风力等。本模块IPO过程如表3.3所示。表3.3 天气预报模块信息输入输出信息输入信息处理信息输出用户选择“天气查询”功能系统菜单响应处理显示城市选择界面用户选择“管理现有省市”功能系统菜单响应处理显示

37、现有城市界面用户选择“添加国内城市”功能系统菜单响应处理显示城市信息查询界面用户选择“城市”下拉列表功能获取输入,进行匹配显示已选择城市界面长按列表中的某个城市功能判断用户动作显示提示框用户选择“确认”功能将获取到的该城市信息从库里删除显示剩余城市列表用户选择“取消”功能关闭当前对话框显示当前城市列表界面用户输入城市名称系统获取用户输入查询城市ID显示查询成功或失败用户选择“OK”功能将新添加城市信息添加到城市列表提示添加成功或失败用户选择功能键“返回主菜单”功能系统菜单响应处理显示系统主界面用户选择功能键“退出程序”功能调用消息机制显示是否退出确认对话框用户选择“取消”功能关闭当前对话框显示

38、当前界面用户选择“确认”功能关闭该应用所有界面退出系统3.2.4 个人理财模块本功能模块应具备基本的收入、支出管理功能,包括添加、查找、修改、删除等操作,还应具备相应的统计功能,收支分类统计并显示。收支添加时间应与当前系统时间相对应。本模块IPO过程如表3.4所示。本模块界面如图3.2所示。表3.4 个人理财模块信息输入输出信息输入信息处理信息输出用户输入“事件”、“金额”选择支出获取用户输入显示用户输入数据用户选择“确定”功能将用户输入添加到数据库显示收入、支出、结余用户选择“清空”功能将当前用户输入清除显示空白输入框用户选择功能键“每月账单”功能系统菜单响应处理显示月份界面用户选择功能键“

39、返回主菜单”功能系统菜单响应处理显示系统主界面用户选择月份系统获取用户输入调取该月份收支信息显示该月份收支详情 图3.2 个人理财模块界面3.2.5 日历模块本功能模块应当具备显示日历,标注当前日期功能。用户可以自行选择显示月份进行查看。本模块IPO过程如表3.5所示。表3.5 日历模块信息输入输出信息输入信息处理信息输出用户选择“上月”功能获取输入,内部计算显示上月日历界面用户选择“下月”功能获取输入,内部计算显示下月日历界面用户选择功能键“返回主菜单”功能系统菜单响应处理显示系统主界面用户选择功能键“退出程序”功能调用消息机制显示是否退出确认对话框用户选择“取消”功能关闭当前对话框显示当前

40、界面用户选择“确认”功能关闭该应用所有界面退出系统3.2.6 记事本模块本功能模块设计为用户提供最基本的记事功能,同步当前系统时间。单项记事字数不做严格设定,方便用户使用。应具备基本的添加、修改、保存、删除记事功能。本模块IPO过程如表3.6所示。表3.6 记事本模块信息输入输出信息输入信息处理信息输出用户选择“添加记录”功能系统菜单响应处理显示记事添加界面用户选择“查看记录”功能系统菜单响应处理显示记事列表界面用户输入标题和内容获取用户输入显示用户输入内容用户选择功能键“保存记录”功能判断输入是否为空,创建表,保存用户输入到数据库输入为空则保存失败,输入合理则显示记事列表界面用户选择功能键“

41、切换模式”功能监听事件,做相应处理显示对话框用户可选择显示模式用户选择“普通模式”并确定监听事件,改变列表排列方式记事列表顺序显示用户选择“九宫格模式”并确定监听事件,改变列表排列方式记事列表平铺显示长按某个记事获取事件弹出对话框供用户选择修改删除用户选择“修改”并确定系统菜单响应处理显示事件编辑界面用户选择“删除”并确定获取要删除的目标,在数据库里删除显示删除成功,及记事列表用户选择功能键“返回主菜单”功能系统菜单响应处理显示系统主界面用户选择功能键“退出程序”功能调用消息机制显示是否退出确认对话框用户选择“取消”功能关闭当前对话框显示当前界面用户选择“确认”功能关闭该应用所有界面退出系统3

42、.2.7 课程表模块本功能模块应当具有添加、修改、保存、删除课程等基本功能。本模块IPO过程如表3.7所示。表3.7 课程表模块信息输入输出信息输入信息处理信息输出用户长按某一天选项系统菜单响应处理显示当天各时段课程界面用户长按已保存课程信息调用消息机制显示“删除”选项用户确认删除获取要删除的目标,在数据库里删除刷新界面后显示当前时段课为空用户长按为空课程调用消息机制显示“添加课程”选项用户确认添加课程监听事件,进行Activity调用显示编辑课程界面用户输入课程和其他信息获取用户输入显示用户输入内容用户选择“确认”功能判断输入是否为空,创建表,保存用户输入到数据库输入为空则保存失败,输入合理

43、则显示记事列表界面用户选择“取消”功能关闭当前对话框显示当前界面用户选择“确认”功能关闭该应用所有界面退出系统3.2.8 设置模块本模块要求具有简单的UI界面,用户可以进行密码修改并保存。本模块IPO过程如表3.8所示。表3.8 设置模块信息输入输出信息输入信息处理信息输出用户输入新密码获取用户输入模糊显示用户输入数据用户选择“确定”功能将用户输入添加到数据库显示修改成功用户选择“取消”功能关闭当前对话框显示系统主界面3.3 系统非功能需求(1)性能为了保证软件能够长期、安全、稳定、可靠、高效地在Android设备上运行,本系统应该满足实用性、可扩展性与可维护性、安全可靠性界面美观性以及准确性

44、等性能需求。本软件设计可在手机2G3G网络下正常工作,获取实时信息。为适应极高的更新换代速度,该设计尽可能组件化、模块化以达到方便扩展、维护的目的。其中,系统的可扩展性应包括能接纳已有的系统和在今后系统软硬件扩展时,能有效地保护已有的资源建设。本软件基于手机设备的,要求其具有一定的安全性,对于用户隐私不作保留。参考当下流行的软件风格进行设计,并在此基础上简化设计,使用户应用更易上手,不需要声明特别的使用说明及指导。(2)成本由于软件开发只要一个人,硬件设备只要一台电脑即可,所以不需要太大的成本。3.4 系统开发环境 开发工具:Eclipse Classic 3.7.2数据库环境:SQLite3

45、系统运行环境:Android2.3或以上版本3.5 系统可行性分析3.5.1 技术可行性本设计采用Eclipse作为开发工具,应用当下较为主流的Java开发语言,结合SQLite3数据库进行开发。使用Android原生组件进行开发,把应用程序组件化从而降低模块间的耦合性,同时提高模块的复用性。3.5.2 经济可行性本软件采用PC机开发,应用于手机,不涉及额外硬件资源,开发成本低廉,携带方便,不受地理和时间限制,一定程度上节约用户时间,从该角度出发,该设计可行。3.5.3 操作可行性界面设计时充分考虑用户使用习惯,尽量使界面简洁、功能设置明了,使用户无需特殊学习即可操作使用。本设计涉及到开发环境

46、配置,安卓组件的熟悉,以及安卓平台上的数据存储等,相对来讲难度适中,从这方面来看,该设计具有一定的可操作性。第4章系统设计4.1 系统设计指导原则4.1.1 先进性本设计分为几个功能模块,在此基础上又分为不同的小模块,然后再对各个小模块进行详细设计和编写,从而使得软件结构更加清晰易读、容易管理。联网即可获取实时天气数据,便捷高效。在主流的Android平台上应用,具有较高的兼容性。4.1.2 可靠性及安全性开发平台采用当下主流的Android平台,所需设备大众化,易获取,天气预报实时信息通过中国天气网获得,可靠性很高;只有密码输入正确才能够进行操作,一定程度上保证了系统的安全性。4.2 体系结

47、构设计根据本软件的功能需求,将本软件分为以下几个功能模块,系统功能框图如图4.1所示。图4.1 系统功能框图登录模块,只需要用户输入既定密码,密码匹配正确则进入系统,否则提示用户重新输入。该模块对应本设计中的LoginActivity类。主菜单模块设计,用户可以直观的了解该系统有哪些主要的功能,并进行选择,另外设置两个功能键用来直接返回到主界面和退出该应用。该模块对应本设计中的MyAssistantActivity类。天气预报模块设计有三个主要功能,通过添加城市,将用户所需要的城市信息添加到城市列表,用户进行天气查询时候可以直接选择已经添加的城市,用户也可以对当前列表中存在的城市进行管理。另外

48、设置两个功能键用来直接返回到主界面和退出该应用。该模块对应本设计中的WeatherActivity类,其中分功能分别涉及到AddCityActivity类、CityListActivity类、MyApplication类、QueryMainActivity类。个人理财模块设计有三个主要功能,收支添加、收支统计和每月账单统计,其中添加收支信息时,用户在金额输入框被限制为只可以输入阿拉伯数字,而每月账单显示是在收支统计的基础上进一步按月份按项目对某月收支情况进行统计显示。该模块对应本设计中的FinanceActivity类。该模块数据库对应表4.1所示。日历模块设计具备基本的当前日期显示、日期结合

49、星期显示以及上下月翻页功能。该模块对应本设计中的CalendarActivity类。记事本模块设计有两大功能分别是添加记事和查看记事,其中查看记事又包含修改记事、删除记事、清除所有记事等功能,还设计了列表和九宫格两种记事显示模式供用户选择。该模块对应本设计中的NotesActivity类,其中分功能分别涉及到NotesQueryActivity类、NotesQueryGridViewActivity类、NotesAddOrUpdateActivity类。该模块数据库对应表4.2所示。课程表模块主要设计为列表显示当前星期,以及每天的课程情况,用户可以自行编辑课程信息。该模块对应本设计中的Sche

50、dulesActivity类,其中分功能分别涉及到InsertActivity类、DayActivity类。该模块数据库对应表4.3所示。设置模块设计用户通过输入新的密码即可对密码进行修改并保存。4.3 系统类设计根据系统需求可以识别系统中存在的对象。从需求中可知我们至少创建6个类:天气预报类、个人理财类、日历类、记事本类、课程表类和登陆类。系统和用户交互时需要直观的图形化界面,所以我们还需要很多用户界面类。本项目至少需要以下用户界面类,分别是主界面类(MyAssistantActivity)、天气预报界面类(WeatherActivity)、个人理财界面类(FinanceActivity)、

51、日历界面类(CalendarActivity)、记事本界面类(NotesActivity)、课程表界面类(SchedulesActivity)、登陆界面类(LoginActivity)。其中类MyAssistantActivity为整个应用的主Activity,显示该应用的主界面。其主要属性如图4.2所示。图4.2 主界面类属性图(1)onCreate:Activity主要重写方法之一,实现程序初始化和界面展示;(2)MyOnClickListener:实现按钮事件监听;(3)onCreateOptionsMenu(Menu):实现Option菜单的创建;(4)onMenuItemSelect

52、ed(int, MenuItem):实现菜单项的点击事件响应。界面设计方面通过LinearLayout实现整体布局。使用了TextView,ImageButton选项列表通过RelativeLayout实现界面展示。其中类FinanceActivity为个人理财主界面Activity,显示个人理财功能主界面。其主要属性如图4.3所示。图4.3 个人理财类属性图(1)onCreate:Activity主要重写方法之一,实现程序初始化和界面展示;(2)onCreateOptionsMenu(Menu):实现Option菜单的创建;(3)onMenuItemSelected(int, MenuIte

53、m):实现菜单项的点击事件响应;(4)cancel():实现button(清除输入框)点击事件响应。界面设计方面通过RelativeLayout实现整体布局。使用了TextView,ImageButton,RadioGroup选项列表通过TableLayout实现界面展示。系统主控流程如图4.4所示。图4.4 系统主控流程图4.4 系统数据库模型设计为了便于计算及实现,方便开发人员查看、修正,比较真实的模拟客观场景,易于为用户所理解,以下将在E-R图和数据库属性两方面进行介绍。4.4.1 各模块E-R图ER方法就是一种实体关系方法,而其使用的工具就是ER图。ER图由实体、实体的属性以及实体之间

54、的关系三部分组成,实体是具有相同的性质并且彼此之间可以基于Android的个人助手系统设计与实现相互区分的现实世界对象的集合;属性是实体所具有的特征,它是描述实体或者关系的性质的数据项;实体之问的关系通过直线连接。个人理财模块E-R图如图4.5所示。图4.5 个人理财模块E-R图记事本模块E-R图如图4.6所示。图4.6 记事本模块E-R图课程表模块E-R图如图4.7所示。图4.7 课程表模块E-R图4.4.2 数据库设计本系统是实现移动个人助手系统,主要设计了3张表,分别为finance,notes,schedules表。分别用于存储天气预报城市信息、收入支出项目信息、记事本信息、课程表信息

55、。下面给出个人理财模块、记事本模块、课程表模块的数据表的详细设计。个人理财模块数据表如表4.1所示。表4.1 个人理财模块数据表列名数据类型允许空说明_idintegerN主键,递增dateintegerY日期getintegerY收入outintegerY支出续表4.1 个人理财模块数据表列名数据类型允许空说明tasktextY内容totalGetintegerY收入统计totalOutintegerY支出统计leaveintegerY结余tagintegerY分类记事本模块数据表如表4.2所示。表4.2 记事本模块数据表列名数据类型允许空说明_idintegerN主键,递增titleint

56、egerN标题contentintegerN内容insertdatetimestampN日期delintegerN删除课程表模块数据表如表4.3所示。表4.3 课程表模块数据表列名数据类型允许空说明day_nointegerN星期,主键class_nointegerN课节号class_nametextN课程名otherstextN备注大连东软信息学院毕业设计(论文)第5章系统实现5.1 环境配置下载JAVA的IDE开发工具Eclipse,下载Java开发包Java SE Development Kit (JDK),下载Android开发包Android SDK。安装Ecplise,安装JDK,

57、安装Android开发包(SDK)。启动安装完(解压)后的Ecplise目录下的Ecplise.exe,点击菜单“Help” “Software Updates”,在打开的窗口中切换到选项页“Availabe Software”,点击“Add site”,加入以下地址:/android/eclipse/然后点击“OK”,点击“Install”安装ADT(Android Development Tools),重启Ecplise。点击菜单“Window”“Preference”,打开配置窗口,在左边选中Android,在右边输入Android SDK的路径(刚才步骤中下载的Android SDK解

58、压出来的目录),点击“OK”,环境配置完毕。5.2 功能模块实现(1)用户登录模块实现打开该软件显示密码输入界面进行匹配登陆。用户第一次使用初始化时候设置有默认密码,用户所输入密码正确则进入本系统,错误则提示用户重新输入。用户登陆模块流程图如图5.1所示。图5.1 用户登陆流程图(2)主界面模块实现该模块主要用于用户选择所需要的功能模块,实现模块间连接功能。用户可以直观的看到本设计包含的主要功能模块,点击某项所需要的功能就可以转到该功能模块进行使用。主界面模块UI界面如图5.2所示。图5.2 主界面模块UI图其中,监听按钮事件进行部分代码如下所示。protected void onCreate

59、(Bundle savedInstanceState) super.onCreate(savedInstanceState); setContentView(R.layout.main); button_weather=(ImageButton)findViewById(R.id.weatherButton); button_finance=(ImageButton)findViewById(R.id.financeButton); button_weather.setOnClickListener(new MyOnClickListener(); button_finance.setOnCl

60、ickListener(new MyOnClickListener(); class MyOnClickListener implements OnClickListener public void onClick(View v) Intent intent = new Intent();switch (v.getId() case R.id.weatherButton:intent.setClass(MyAssistantActivity.this, WeatherActivity.class);startActivity(intent);break;case R.id.financeBut

温馨提示

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

评论

0/150

提交评论