基于Android的多功能备忘录的设计与实现毕业论文.doc_第1页
基于Android的多功能备忘录的设计与实现毕业论文.doc_第2页
基于Android的多功能备忘录的设计与实现毕业论文.doc_第3页
基于Android的多功能备忘录的设计与实现毕业论文.doc_第4页
基于Android的多功能备忘录的设计与实现毕业论文.doc_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

基于Android的多功能备忘录的设计与实现毕业论文目录摘要IAbstractII第1章 绪论11.1 研究背景和意义11.2 系统研究现状11.3 本文作者的工作21.4 论文组织结构2第2章 系统开发环境及相关技术32.1 Android平台32.1.1 Android的功能特征32.1.2 Android的架构分析42.1.3 Android应用的工作机制52.1.4 Android应用程序结构剖析52.1.5 Intent的详细解析72.1.6 Android活动的生命周期72.2 Java编程语言82.3 主体环境的搭建和配置92.3.1 Eclipse:92.3.2 SQLite102.3.3 SDK112.3.4 JDK112.3.5 面向对象技术12第3章 系统的设计分析133.1 系统开发环境133.1.1搭建开发环境133.1.2 在Eclipse上开发APP133.2 可行性分析153.2.1 技术可行性153.2.2 经济可行性153.2.3 操作可行性153.3需求分析153.4 概要设计173.5 详细设计18第四章 系统实现214.1程序组件214.1.1 Package Explorer中的组件214.1.2应用程序的资源214.2 关键代码224.3备忘录运行展示244.4 问题解决与测试维护30结论31参考文献32致谢33基于Android的多功能备忘录的设计与实现第1章 绪论1.1 研究背景和意义现代社会中,随着科技的进步和生活水平的提高,智能手机越来越普及。据调查数据显示,2011年至2012年我国android系统手机的市场份额已达90.1%,并呈上升趋势。因此,市场上不断涌现出大量的基于android平台的软件和增值服务。人们的生活方式向着越来越便捷的方向发展,而智能手机成为了他们获取信息最方便、快捷的途径。快节奏的生活方式使得人们的生活压力急剧增大。紧凑的日程安排、繁重的事务让人们喘不过气来。为了避免忘记日程安排而错过一些重要的事务,备忘录成了人们的随身必备品,当遇到重要的事情可以记录下来以便随时查阅。传统的文字型备忘录缺乏简单有效的备忘效果,用户需要手动输入大量的文字备忘信息,且从内容上来看文字组织灵活性不如语音。据一份android应用的市场调查显示,25.7%的用户最常下载工具类应用,位居第二。因此,从实际需求出发,开发一款基于android平台的多功能备忘录应用具有很大的实用性和市场前景。本课题研究的多功能备忘录(WLNote)的设计开发是为了最大程度上方便人们记录生活中的重要事情。备忘录除了具备记事本最基本的增删改查功能外,还拥有个性化的闹钟实时提醒功能、录音记事功能、拍照记事功能和录像记事功能。使用户能随时随刻记录下重要信息。1.2 系统研究现状现在,国内外Android开发者开发出不计其数的备忘录APP,但大多数备忘录APP还是局限在便签的功能,只实现了记事本简单的增删改查功能。有些同时具备闹钟提醒功能,有些能关联图片记事,但很少有一款APP能将这些功能汇聚到一起。本课题开发的备忘录将这些功能集中到了一起。该备忘录界面简洁、操作简单、且具有很强的可扩展性和可维护性。备忘录不仅具备记事本的功能。还允许在不方便用文字记录的情况下,可以通过录音、拍照或者录像的方式记录重要事情。1.3 本文作者的工作1 从网上查阅Android开发的相关资料,了解同类APP的背景情况和发展现状及趋势。分析研究备忘录的相关功能,结合本次毕业设计的相关要求作出需求分析。2 深入了解android平台,学习android开发技术,熟练掌握java编程语言,并能熟练使用其中的主要技术。对项目进行设计分析,完成配套的功能结构。3 熟悉并进行开发环境的搭建与配置,为开发项目奠定基础。4 熟悉Android中的SQLiteDatabase类,使用该类完成对数据的增删改查。5 学习View类,使用其提供的ondraw()、invalidate()等方法进行视图设计。6 学习Android类库中提供的Media类,使用该类提供的方法实现多媒体功能的设计。7 进行运行调试和系统测试。8 最后完成毕业设计论文。1.4 论文组织结构本文共分为4章,首先是阐述和分析为何选择这样一个课题,介绍了毕业设计的背景、开发意义和系统的现状。接着引出论文接下来的具体内容。紧接着论文对系统需要用到的一些相关技术进行了部分分析。然后便是设计和实现这个系统的基本步骤,从开发环境的搭建到创建项目再到APP的功能实现,完成了多功能备忘录的编码过程。接着便是对完成的APP进行测试与完善。最后是整篇文的总结。论文具体安排如下:第1章 简单介绍APP的背景和意义以及APP的研究现状。第2章 概述APP开发环境和APP中所使用的各项主要技术。第3章 对APP进行设计与实现。第4章 对整个APP的开发进行总结,简述APP的特色和存在的不足。第2章 系统开发环境及相关技术2.1 Android平台Android平台是一个软件栈的体系结构,包括操作系统,用户界面和应用程序。自下而上,以Linux2.6嵌入式操作系统为核心,接着用谷歌开发的Android类库做配合,再加上Android运行的应用程序架构开发各种不同的应用。2.1.1 Android的功能特征应用程序架构: 应用程序体系结构包含了很多不同类型的基础组件。通过直接调用相应的组件来进行应用程序的开发,可大大减少开发应用程序的工作量,使得开发过程更简便更快。强大的绘图能力:在APP里所提供的绘图功能分为2D与3D两种类型。针对2D绘图,Android提供了一套特有的类库(SGL);针对3D绘图,使用的则是OpenGLES1.0规范的类库。它们是一种非常快的图形引擎,且支持硬件加速。集成的浏览器: 集成的浏览器是内置的Android浏览器,是基于WebKit浏览引擎进行开发而成的。WedKit是目前主要用于浏览器的一个开放源码的Web浏览器。在智能手机本身所具备的功能的基础上,浏览网站将让用户拥有更好的操作体验。Dalvik虚拟机器: 基于Android的Java虚拟机,是由Google公司自主研发的Dalvik虚拟机,并不是Sim公司所发布的标准JAVA虚拟机。Dalvik虚拟机保证兼容API的同时,针对智能手机进行了大量改进,使得具备更小的占用资源,更高的运行效率。支持多媒体的能力:主要用于播放媒体文件。这体现在包对视频(如播放影视剧等)的支持和音频(如录音、播放音乐、播放录音文件或铃声等)的支持,甚至体现在能直接播放网络上的流媒体。同时,Android还支持各种主流的静态图像格式,比如:JPG、PNG、GIF等格式。GSM技术:即全球移动通讯系统。开发GSM技术是为了让世界各地使用的手机网络标准是同一个。这样,用户即使足迹遍布全球,也无需更换手机。蓝牙、EDGE、3G及Wi-Fi:蓝牙是一种能代替短距离电缆的无线连接技术,新型、开放且低成本。使用蓝牙能无线传输任何数据。EDGE是从GSM过渡到3G的增强型数据速率演进。WiFi也是一种无线短距离技术,这方面与蓝牙技术一致。GPS:GPS全名为全球定位系统。全球被24颗卫星覆盖着,保证GPS可随时随地同时观测到4颗卫星,由此保证能得到观测点的精确地理位置。进一步利用所得到的地理位置数据,能应用到定位、授时、导航等技术。2.1.2 Android的架构分析图中显示的是Android架构的五个主要部分。图2-1:Android系统架构应用程序框架Android系统提供一个框架给应用开发者,这个应用程序框架具有模块化、可重用性、可扩展性、简单性、可维护性。应用程序框架作为应用程序的核心,具备如下功能:Android.app:提供高层面的程序模型以及应用程序运行的基本环境。Android.content:访问和发布各种设备上的数据。Android.database:通过内容提供者浏览和操作数据库。Android.location:包含定位和其他相关服务的类。Android.os:提供系统服务、消息传输和IPC机制。Android.graphics:是底层的图形库,包含画布、颜色、点、矩形等绘图元件,能将其直接绘制到屏幕上。A:提供帮助访问网络的类。Android.media:包含管理多媒体文件的媒体接口的类。Android.util:提供类似于操作时间日期等的工具性方法。Android.telephony:提供与拨号相关的API交互。Android.webkit:提供默认的浏览器接口。Android.widget:提供各种在应用程序布局中的UI元素。Android.opengl:提供openGL的工具。Avider:涵盖访问Android内容提供者的类。2.1.3 Android应用的工作机制活动、意图接收器、服务、内容提供者组成一个Android应用程序,但这四个构件并不要求同时出现。如在应用程序中使用到这四个组件时,要求要在AndroidManifest.xml(配置文件)中进行相应的配置。每个APP都必须拥有这个配置文件,以定义在应用程序中用到的组件和组件功能,同时说明组件的必要条件等。Android应用的构成和工作流程如图2:图2-2:Android的工作流程2.1.4 Android应用程序结构剖析AndroidManifest.xmlAndroidManifest.xml是系统的控制文件,存储在项目层次中的最底层。它采用XML作为描述语言,描述了程序包的全局变量。AndroidManifest.xml主要包含以下功能:A、说明应用程序的java 数据包,数据包名是application的唯一标识;B、描述应用程序的component;C、说明应用程序的component运行在哪个process下;D、声明应用程序所必须具备的权限,用以访问受保护的部分API,以及与其他应用程序的交互;E、声明应用程序其他的必备权限,用以component之间的交互;F、列举应用程序运行时需要的环境配置信息,这些声明信息只在程序开发和测试时存在,发布前将被删除;G、声明应用程序所需要的AndroidAPI的最低版本级别,例如1.0,1.1,1.5等;H、列举应用程序所需要链接的库;Android应用程序的结构解析创建Android应用程序时,使用到的activity、services、Content providers、Broadcast receivers组件必须在AndroidManifest.xml文件中进行注册。在AndroidManifest.xml文件中可以声明应用程序组件以及它们的特性和要求。这个配置文件是每个Android应用程序所必需的。A、活动(Activity)在Android中,Activity是所有应用程序的根本,程序的运行流程都是在Activity中,它是Android中最基本的模块之一。1一个activity代表用户界面的一个独立屏幕。不同的应用程序能够从任何一个activity启动 (只要邮件应用程序允许)。例如,用户需要分享一张照片,一个拍照应用程序能够启动邮件应用程序的活动。activity是一个实现了Activity的子类,你可以在Activities开发者指导部分了解更多。B、服务(Services)服务基本都是在后台运行,执行长时间操作或者执行远程操作。服务不提供用户界面。例如,当用户在使用另一个应用程序时,可有一个独立的服务进程在后台播放音乐,或是在后台下载资料,而不用阻断用户与当前活动的交互。其他组件,比如一个活动,为了与该服务互动,可以启动或者绑定它。service是一个实现了Service的子类,你可以在Services开发者指导部分了解更多。C、内容提供者(Content providers)一个内容提供者管理一组共享的应用程序数据。数据可以存储于文件系统、SQLite数据库、网页或其它你的应用程序可以进入的存储空间。通过内容提供者,其他应用程序可以查询或者修改数据(如果服务提供商允许)。例如,安卓系统提供一个管理用户的通讯录信息的内容提供者。比如,任何有相应权限的应用程序可以查询内容提供者的部分内容(如ContactsContract.Data)以读取或修改特定人的信息。内容提供者对读取和改写应用程序的私有数据也是有用的。比如,简便记事本程序用一个内容提供者存储笔记。内容提供者作为ContentProvider被实施,并且必须实施一系列APIs的标准使其它应用程序履行事务。更多信息请查阅theContent Providersdeveloper guide。D、广播接收器(Broadcast receivers)广播接收器是响应全系统的广播公告的一个组件。很多广播来源于系统,比如说,屏幕关闭,电池低电量,或截获一张图片,这些都是来源于系统的广播。应用程序也可以产生广播,比如说,通知其它应用程序一些数据下载完成并处于可用状态。虽然广播接收器不显示用户界面,但当广播事件发生时,它们可能创建状态栏通知提醒用户。更常见的是,广播接收器是一个通往其它组件的“网关”以便做极少量工作。例如,它可能会启动一个服务进程进行基于事务的一些工作。广播接收器作为BroadcastReceiver被实施,每个广播作为目标对象被独立开来。更多信息,见BroadcastReceiver类。2.1.5 Intent的详细解析activities、services和broadcast receivers是由一种叫intent(意图)的异步消息来激活的。组件之间可以相互调用,以协调工作,最终实现Android应用程序。而它们之间的通讯由intent协助完成。Intent属于一种运行时绑定机制,当程序运行时,intent将程序运行过程中所请求的组件绑定在一起。intent在应用程序中担当媒体中介的角色,负责描述应用程序中操作的全部数据,为组件之间的互相调用提供相关信息。比如,有一个Activity希望打开网页浏览器查看某一网页的内容,那么这个Activity只需要发出WEB_SEARCH_ACTION请求给Android,Android就会根据Intent的请求内容,查询各组件注册时声明的IntentFilter,找到网页浏览器的Activity来浏览网页。2.1.6 Android活动的生命周期Android平台主要是担当手机的操作系统。而手机应该具备的最基本的功能特性就是,当手机正在使用过程中,有来电或短信的时候随时暂停正在使用的功能,切换到通话模式或短信模式,并且要求在结束通话模式或短信模式的时候能恢复到被暂停的应用程序运行界面。目前主流的智能手机,均支持多工作业。如用户在听音乐的同时,能执行其他应用程序。多工作业能让使用者有更好的用户体验,但同时执行多个程序将占用更多系统内存,当系统内存所剩无几时,系统运行时会反应缓慢,甚至导致系统不稳定。为了让这一问题不再成为问题,Android系统引入了生命周期这一新机制。 在Android系统上,由Android框架管理着Android应用程序的生命周期,而非是应用程序控制其生命周期。正常情况下,任意一个应用程序都会占据一个进程,入口为一个活动的onCreate()方法。该进程会在系统内存不足的时候回收进程,安排回收进程的顺序是根据应用程序的优先级高低而进行的。因此,开发者或使用者都无法确定应用程序会何时被回收。切换活动的时候,原来的活动会有一连串的状态改变。开发者若将各状态相对应的流程加入到程序中,每次改变活动状态的时候就会有相关的流程被执行。只有让活动在各个周期中负责各种不同状态的工作,用户才能有更好的使用体验。图2-3:Activity生命周期2.2 Java编程语言如今,在intent应用开发领域中,Java技术已成为其核心与主流技术。Java语言不仅具有面向对象、可移植性、强壮性与安全性等优良特性,同时也为各层次的分布式应用提供了全面的系统的方法与技术。大多数程序设计语言的程序运行如果不是采用编译,执行方式,就是采用解释执行的方式。但Java语言的不同之处在于,程序运行不仅要经过编译也要进行解释。首先,Java程序由编译器进行编译,产生中间代码(Java字节码),该中间代码不能在各种计算机平台上直接运行,需在虚拟器(JVM)上才能运行。Java解释器是JVM的实现,它把字节码转换为底层平台的机器码,使Java程序最终得以运行。无论是Application还是嵌入在浏览器中的Applet,都需要通过解释器才能运行。Java字节码使得“一次编程,到处运行”成为可能。平台是指支持应用程序运行的硬件或软件环境。Java平台是运行在其他硬件平台之上且完全由软件构成的平台,支持Java程序的运行,如图所示。Java虚拟机(JVM)MyProgram.javaMyProgram.javaJava APIJava平台 图2-4:Java平台Java语言因为其句法和语义都比较单纯,容易学习和使用。Java相比于C+,有了改进,去掉了指针,取消了运算符重载和多重继承,内存管理由程序员移向Java内嵌的自动内存回收机制等,从而使得语义更简化,出错机会更少,程序员负担更轻。Java的对象有模块化性质和信息隐藏努力,满足面向对象的封装要求。Java支持面向对象的继承性,并通过抽象类和接口支持面向对象的多态性要求,即一个对外接口,多种内部实现。2.3 主体环境的搭建和配置2.3.1 Eclipse:Eclipse是一钟基于Java的可扩展开源开发平台。Eclipse原先是IBM公司开发的IDE开发环境,现在由非营利软件供应商联盟Eclipse基金会管理。Eclipse最初只支持Java开发,目前通过其他插件也能支持其他编程语言的开发工作,比如C语言、C+、Python等。Eclipse不仅可作为Java的集成开发环境来使用,还允许软件开发人员进行与Eclipse环境无缝集成的工具的构建,后者的功能实现取决于Eclipse的插件开发环境组件。Eclipse 框架还可用来作为其他无关软件开发的应用程序类型的基本框架,比如内容管理系统这样的应用程序类型。2.3.2 SQLite SQLite是一款轻型的数据库,是遵守ACID的关系数据库管理系统. SQLite数据库提供结构化的数据存取。SQLite数据库轻型小巧。SQLite是为嵌入式产品而生的。因其占用非常少的资源空间,现在已被多数嵌入式智能产品采用。SQLite可在大多数主流操作系统上被使用,同时能配合多种编程语言,如Java,PHP等编程语言。SQLite作为一个完整的数据库被存储在独立的磁盘文件中,支持的数据库可以大到2TB,体积却只有几百K。相对于其他主流数据库来说,SQLite数据库无需安装,无需进行环境配置,虽然小巧却有着更快的处理速度。它在支持几乎所有的SQL语句的同时还具备事务处理功能和并发处理功能等等。SQL支持的SQL语句包括如下:ATTACH DATABASEBEGIN TRANSACTIONcommentCOMMIT TRANSACTIONCOPYCREATE INDEXCREATE TABLECREATE TRIGGERCREATE VIEWDELETEDETACH DATABASEDROP INDEXDROP TABLEDROP TRIGGERDROP VIEWEND TRANSACTIONEXPLAINexpressionINSERTON CONFLICT clausePRAGMAREPLACEROLLBACK TRANSACTIONSELECTUPDATE2.3.3 SDKSDK是Software Development Kit(软件开发工具包)的缩写,被软件开发人员用于为特定的软件包、软件框架、硬件平台、操作系统等建立应用软件的开发工具的集合。SDK多数是免费提供的,以鼓励开发者使用其相关的编程语言或相应系统。软件开发人员可能从目标系统开发者那里获得软件开发包,或者也可以从网络上下载。2.3.4 JDKJDK是Java Development Kit 的缩写,是Java语言的软件开发工具包。目前,JDK有三个版本:SE(J2SE),标准版;EE(J2EE),企业版;ME(J2ME),微型版。JDK包含的基本组件如下:A、javac 编译器,将源程序转成字节码B、jar 打包工具,将相关的类文件打包成一个文件C、javadoc 文档生成器,从源码注释中提取文档D、jdb debugger,查错工具E、java 运行编译后的java程序(.class后缀的)F、appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。G、Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。H、Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。I、Jconsole: Java进行系统调试和监控的工具。JDK常用的包如下:(1) Java.lang:这个事系统的基础类,比如String等都是这里面的,这个包是唯一一个可以不用引入就可以使用的包。(2) Java.io:这里面是所有输入输出有关的类,比如文件操作等。(3) Java.nio:为了完善io包中的功能,提高IO包中性能而写的一个新包。(4) J:这里面是与网络有关的类。(5) Java.util:这个是系统辅助类,特别是集合类Collection,List,Map等。(6) Java.sql:这个是数据库操作的类。(7) Javax.servlet:这个是JSP,Servlet等使用到的类。2.3.5 面向对象技术面向对象方法是20世纪计算机技术发展的重要成果,也是21世纪信息技术领域重要理论之一。面向对象方法向程序员提供了通用的方法和工具来表达现实世界中的各种问题。在面向对象方法中,以“对象”的概念作为建立“问题空间”与“机器空间”模型的基本元素,即人们基于现实世界中对象以及对象之间的关联建立问题空间的问题模型,在程序中建立对象并通过对象之间的互操作机制建立了机器世界问题模型,从而使问题得以解决。程序员可以根据面向对象的“问题模型”,能够容易地、完整地得到问题的面向对象“机器模型”,从而使程序易于编写且易于维护。面向对象程序设计方法的内涵,如下所述。A、程序中所有事物都是对象。对象可以被看作是一种新类型的变量,它保存着数据,对外提供服务,也可对自己的数据进行操作。B、程序是一系列对象的组合。对象之间通过消息传递机制结合在一起,可以相互调用彼此的方法,从而实现程序的复杂功能。C、每个对象都拥有可以容纳其他对象的自己独立的存储空间,。利用封装机制,可以在现有对象的基础上构造出新的对象。因此,虽然对象的概念很简单,但程序中可以实现任意复杂度的对象。D、每个对象都有一种类型。每个对象都是某个类的一个实例,其中类是类型的同义词。类最主要的特征是对外接口。E、同一类型的所有对象都能够接收相同的消息。子类与父类具有“同一类型”。例如类型为Circle的对象与类型为Shape的对象是同类对象,所以Circle对象可以接受Shape对象的消息。这意味着,在程序中可以统一操作Shape类体系(包括Shape及其所有子类),这就是面向对象程序语言中的多态性。第3章 系统的设计分析3.1 系统开发环境3.1.1搭建开发环境首先,下载安装JDK1.7,并进行安装,本人将其安装在C:Program FilesJavajdk1.7.0_45目录下。安装完jdk,需进行环境变量配置,新建或编辑环境变量里的三个变量信息,分别是JAVA_HOME、Path、CLASSPATH。环境变量配置完成后,进行jdk安装成功验证:在命令提示符窗口中输入javac,如出现所安装的jdk版本信息,即说明jdk安装完成。接着,下载Android集成开发环境包adt-bundle-windows-x86,解压缩工具包,可以看到里面有一个Eclipse文件夹和一个SDK文件夹,还有一个SDK Manager.exe。Eclipse文件夹里已集成Eclipse和ADT,且无需安装,直接启动Eclipse.exe即可。唯一需要下载安装的是SDK,启动运行SDK Manager.exe,选择开发所需的SDK版本,进行下载并安装。至此,Android应用程序开发环境搭建成功!启动运行Eclipse即可进行Android应用程序的开发设计。3.1.2 在Eclipse上开发APP首先,启动运行Eclipse,新建一个Android Application Project,根据需要输入项目名称,包名等信息。点击finish,一个空白的Android Application Project即创建成功。ADT会自动为项目创建src目录、res目录和主配置文件AndroidManifest.xml,src里面存放的是代码文件,res里面存放的是资源文件。接着,创建Android虚拟机。点击windowsAndroid Virtual Device Manager,选择new按钮,填写需要创建的虚拟器的各项参数。图3-1:虚拟机创建最后,调试应用程序。一旦建立了工程启动配置就可以按照如下的步骤调试程序:选定程序并在菜单栏上点击【run】按钮,或者右键点击工程文件选择run asAndroid Application。如果需要还可以重新配置启动参数,比如选择其他的程序界面作为启动的主界面。3.2 可行性分析3.2.1 技术可行性本课题研究的是基于Android平台的多功能备忘录的设计与实现,使用Java语言编程,目前Java平台已经嵌入了几乎所有的操作系统,因此Java程序只需编译一次,便能在各种系统中运行。而开发环境采用Eclipse集成开发环境,开发过程简便,调试容易。开发过程所需的计算机硬件配置或现有的智能手机的硬件配置也完全能满足开发的需求,因此技术上具备可行性。3.2.2 经济可行性开发该应用程序所需的相关资料可以通过到图书馆借阅或网上下载而得到,所需的软件系统、硬件系统等均可方便获得,甚至无需安卓手机而是用安卓虚拟器即可实现设计开发。开发成本低,容易实现,因此,经济上具备可行性。3.2.3 操作可行性开发该应用程序的计算机操作系统和Android系统均操作熟练,且采用集成开发环境,简化开发过程,使得开发出来的应用程序界面友好,操作简便。因此,操作上具备可行性。3.3需求分析需求分析是软件开发前的第一个阶段,是十分必要的。多功能备忘录的设计与实现是一个逐步发展的过程。无论在哪一个阶段,都必须做好完整的规划,考虑好APP的局部和全局的相容。所以在开发之前进行需求分析,有利于今后整个APP的建立。本课题研究的备忘录软件包含四个功能模块:文本备忘录、语音备忘录、视频备忘录以及图像备忘录。文本备忘录:对已创建的文本备忘录可以进行删改查操作,可以添加新的文本备忘录,可以对已有的文本备忘录进行闹钟设置。语音备忘录:对已创建的语音备忘录可以进行删改查操作,可以添加新的语音备忘录,可以对已有的语音备忘录进行闹钟设置。视频备忘录:对已创建的语音备忘录可以进行删改查操作,可以添加新的视频备忘录,可以对已有的视频备忘录进行闹钟设置。图像备忘录:对已创建的语音备忘录可以进行删改查操作,可以添加新的图像备忘录,可以对已有的图像备忘录进行闹钟设置。添加新的图像备忘录时,可以选择画图或拍照或从本地图库调取。如下为该课题的用例图:图3-2:用户用例图图3-3:管理文本备忘录用例图图3-4:管理语音备忘录用例图图3-5:视频备忘录用例图图3-6:图像备忘录用例图3.4 概要设计概要设计是对程序的总体设计,它关注的是程序的总体结构而不是细节实现,它把程序划分为不同的部分,并且对部分间的交互提出了一些设想。概要设计包括程序系统的基本流程、程序系统的组织结构、模块划分、功能分配、接口设计、运行设计、数据结构设计和出错处理设计等,为程序的详细设计提供基础。系统结构设计如下图:添加记录 删除记录 修改记录 查询记录 设置闹钟图像备忘录视频备忘录文本备忘录语音备忘录多功能备忘录图3-7:系统结构设计图系统出错处理设计:系统输出错误信息的形式含意处理方法查询关键字不能为空用户在进行信息查询时,没有进行关键字的输入用户输入关键字进行信息的查询添加的记录信息不存在用户在添加记录的时候,没命名记录标题用户重新正确添加记录信息3.5 详细设计图3-8:添加文本活动图图3-9:添加文本时序图图3-10:系统类图第四章 系统实现4.1程序组件4.1.1 Package Explorer中的组件(1)src 文件夹包含应用程序所有代码文件的包,有cc.icoc.javaxu.activity、cc.icoc.javaxu.dao、cc.icoc.javaxu.util。activity包里面包含了所有activity的定义声明,及activity之间的传递。Dao包主要负责处理数据库操作的代码实现。Util包是工具辅助类,是一组通用的代码集合,比如字符串处理、日期处理等功能的代码集。(2)R.javaAndroid Developer Tools自动创建这个文件,它提供访问 Android 应用程序的各种资源所需的常量。(3)res 文件夹包含应用程序的资源,包括:图标,布局文件,字符串。(4)AndriodManifest.xml配置文件应用程序的部署描述符。4.1.2应用程序的资源正如前面提到的,Android 中的资源放在项目的 res 子目录中。资源分为三类:(1)Drawable-xx:这个文件夹包含图形文件,比如图标和位图。(2)Layouts:这个文件夹包含表示应用程序布局和视图的 XML 文件。后面会详细研究这些文件。(3)Values:这个文件夹包含strings.xml 、styles.xml等文件。这是为应用程序实现字符串本地化的主要方法。(4)anime:这个文件夹包含动画切换效果的声明。(5)raw:存放不进行编译加工的原生文件。Raw目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。Raw中的文件会被映射到R.java文件中,访问的时候直接只用资源ID即R.id.filename。4.2 关键代码protected void onCreate(Bundle savedInstanceState) / TODO Auto-generated method stubsuper.onCreate(savedInstanceState);setContentView(new SplashView(this);application = (MyApplication)this.getApplication();application.getActivityManager().pushActivity(this);sp = new SharePreference(MainActivity.this);b = sp.getState();new Handler().postDelayed(new Runnable() Overridepublic void run() / TODO Auto-generated method stubtoNewActivity(b);, 3500);private void toNewActivity(boolean b) / TODO Auto-generated method stubif(b) Intent intent = new Intent(this, UIActivity.class); overridePendingTransition(R.anim.left_in, R.anim.left_out); startActivity(intent); else sp.setState(); Intent intent = new Intent(this, AndyViewPagerActivity.class); overridePendingTransition(R.anim.left_in, R.anim.left_out); startActivity(intent);protected void onDestroy() / TODO Auto-generated method stubsuper.onDestroy(); public static MainActivity getInstance() if(activity = null) activity = new MainActivity(); return activity; protected void onDraw(Canvas canvas) / TODO Auto-generated method stubsuper.onDraw(canvas);Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.sp);int bitmapH = bitmap.getHeight();int bitmpaW = bitmap.getWidth();WindowManager manage=getWindowManager();Display display=manage.getDefaultDisplay();int screenH = display.getHeight();int screenW = display.getWidth();float sx = (float) screenW / bitmpaW ; float sy = (float) screenH / bitmapH ;Matrix matrix = new Matrix();matrix.postScale(sx, sy);Paint paint = new Paint();canvas.drawBitmap(bitmap, matrix, paint); 4.3备忘录运行展示在虚拟器上安装备忘录,安装成功后在虚拟器上可以找到备忘录应用程序,如下图:图4-1:备忘录在虚拟器上的显示运行备忘录,进入备忘录的界面,如下图:图4-2:备忘录的打开界面选择点击文本备忘录,进入文本备忘录的记录列表,如下图:图4-3:文本备忘录的记录列表选择添加文本按钮,编辑新建的文本备忘录,如下图:图4-4:编辑文本备忘录选择添加语音备忘录,如下图:图4-5:添加语音备忘录图4-6:正在录音选择添加视频备忘录,如下图:图4-7:保存录音图4-8:添加视频备忘录图4-9:保存视频备忘录图4-10:对已创建的备忘录进行操作图4-11:修改备忘录并保存图4-12:退出应用4.4 问题解决与测试维护(1)从Eclipse创建AVD时,【OK】按钮无法点击。解决:将AVD Manager.exe复制到与tools同目录下,且设备名称不能包含空格。(2)AVD上的模拟键不能用。解决:修改该设备的文件夹下的config.ini文件中相应的属性值。(3)run项目时出错,提示“No compatible targets were found. Do you wish to add a new Android Virtual Device.”。解决:出错原因是项目版本与创建的AVD版本不一致。修改两者中其一的版本即可。创建的项目版本不能高于AVD的版本。(4)代码中的isEmpty()函数方法有时会提示出错。解决:选定工程项目,右击 - Android Tools clear lint markers。(5) 文本记录列表上的搜索功能有问题,一点击即退出应用。解决:经过仔细检查,发现是因为代码中变量名前后不一致。将其统一后,问题解决。结论本文主要研究了Android平台的架构以及介绍了在Android平台上开发备忘录软件的实现过程,此应用除了具备简单的备忘功能外,还具备多媒体记事功能。本文首先分析了Android系统的研究背景,介绍了当前手机操作系统、Android软件的发展现状,从不同角度说明本文的研究目的和研究意义并介绍了本文的主要内容

温馨提示

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

评论

0/150

提交评论