毕业论文(设计)基于安卓多功能时钟app设计与实现

上传人:青 文档编号:16549288 上传时间:2020-10-11 格式:DOC 页数:60 大小:110KB
返回 下载 相关 举报
毕业论文(设计)基于安卓多功能时钟app设计与实现_第1页
第1页 / 共60页
毕业论文(设计)基于安卓多功能时钟app设计与实现_第2页
第2页 / 共60页
毕业论文(设计)基于安卓多功能时钟app设计与实现_第3页
第3页 / 共60页
点击查看更多>>
资源描述
毕业论文(设计)基于安卓多功能时钟app设计与实现目 录 摘 要 1 ABSTRACT 2 第1章 绪论 3 1.1 开发背景 3 1.2 研究现状 5 1.3 本文的主要工作 6 1.4 论文的组织结构 6 第2章 安卓相关介绍 7 2.1 安卓系统介绍 7 2.1.1 安卓技术简介 7 2.1.2 安卓应用程序组件 8 2.2 Android Studio简介 10 2.2.1架构组成 10 2.2.2主要功能 10 第3章 需求分析 12 3.1 多功能时钟的功能需求 12 3.2 多功能时钟的性能需求 13 第4章 多功能时钟的架构设计 14 4.1多功能时钟设计目标和原则 14 4.2多功能时钟的架构设计 14 4.3多功能时钟的功能设计 15 第5章 多功能时钟的详细设计与实现 18 5.1 界面设计 18 5.2 多功能时钟的功能设计 19 5.2.1显示时间功能 19 5.2.2闹钟功能 21 5.2.3计时器功能 27 5.2.4秒表功能 29 第6章 多功能时钟的实现与测试 32 6.1 多功能时钟的架构实现与测试 32 6.2 多功能时钟的模块实现与测试 32 结论 33 致谢 34 参考文献 35 附录 36 附录1 英文原文 36 附录2 中文译文 41 应用程序基础Android Developers 41 基于安卓的多功能时钟APP设计与实现 摘 要 随着移动通讯技术的快速发展逐渐趋于成熟以及手机、平板等各类智能设备用户数量的增长,应用逐渐趋向移动化,移动应用取得突飞猛进地发展,极大地改变了人们的日常生活。随着移动用户数量的增长,移动应用的开发与更新速度逐渐加快,移动应用也为各类智能终端用户提供了更方便、舒适和丰富多彩的生活。本应用是多功能时钟手机应用程序,使用的语言是java编程语言,开发平台是谷歌研发的Android开发环境Android Studio。本应用主要包括显示时钟功能,可以显示当前时间;闹钟功能,可以进行闹钟的添加和删除;计时器功能,可以添加倒计时时间、开始、暂停、继续和重置;秒表功能,可以开始、暂停、继续、记录、重置。首先,本文讨论了移动应用的开发背景、现状,接着进行了相关技术的介绍,然后分析了多功能时钟APP的功能和性能需求。在需求分析基础上,进行了多功能时钟APP的架构设计和实现。接着进行APP的详细设计,详细介绍了代码编写实现。在详细设计的基础上,给出了APP的实现、测试改进、调整优化。 关键字:安卓;移动应用;多功能;时钟。 ABSTRACT With the rapid development of mobile communication technology is gradually mature and smart devices of various types, such as mobile phones, tablet the growth of the number of users, application gradually incline to mobile, mobile application development by leaps and bounds, greatly changed Peoples Daily life. As the growth of the number of mobile users, mobile application development and update speed gradually speeding up, the mobile application also provides all kinds of intelligent terminal users with more convenient, comfortable and colorful life. This application is multi-functional clock mobile applications, the use of language is the Java programming language, development platform was developed by Google Android development environment Android Studio. This application is mainly including showing the clock function, it can display the current time. The alarm clock function, and you can make the alarm clock to add and delete; Timer function, you can add the countdown time, start, pause, continue, and reset; Stopwatch function, you can start, pause, continue, records, reset. First, this paper discusses the development of mobile application background, present situation, then has carried on the related technology is introduced, and then analyzes the functions of multi-functional clock APP and performance requirements. On the basis of demand analysis, has carried on the multi-functional clock APP architecture design and implementation. Then APP in the detailed design, coding are introduced in detail. On the basis of the detailed design and the realization of the APP, testing, adjusting and optimizing improvement. Keyword: android,mobile application,multi-function,clock 第1章 绪论 1.1 开发背景 在以前的10年里,世界电信发生了很大的改变,移动通信尤其是蜂窝小区的快速发展,使得用户彻底脱离了终端设备的限制,达到了比较完美的个人移动性,靠得住的传输信息手段和芯线对接方式。现在进入21世纪后,移动通信将逐步演化成社会发展和前进的不可缺少的工具。目前移动通信技术的发展分为第一代移动通信技术(1G)、第二代移动通信技术(2G)、第三代移动通信技术(3G)、第四代移动通信及其技术(4G)。1G是根据模拟进行传输的,它的特点是业务量比较小、安全性比较差、质量比较差、速度低、没有加密。1G的传输速率约24kbit/s。2G主要包括客户化应用移动网络增强逻辑(CMAEL)、支持最佳路由(S0)、立即计费、与全速率完全兼容的增强型话音编解码技术等,通话声音的质量得到了质的改变,数据传送速率可达115/384kbit/s。3G最基本的特征是智能信号处理技术,它可以提供前两代通信系统所不能提供的各种宽带信息业务。4G是结合3G与WLAN,并且可以进行高质量视频图像的传输。4G系统下载速度可以达到100Mbps,也可以以20Mbps的速度上传,并且可以达到绝大多数用户关于无线网络服务的需求。智能手机,其具有独立的操作系统和运行空间,用户可以自行安装第三方服务商提供的程序(软件、游戏、导航等),并且能够通过移动通讯网络来实现无线网络接入手机的类型。智能手机的使用范围已经遍布整个世界,但并不是每个人都知道、熟悉和使用。因为智能手机具有优秀的操作系统、可以自由地安装各类软件(仅限安卓系统)、完全大屏的全触屏式操作感这三大特性,所以完全终结了前几年的键盘式手机。其中谷歌(Google)、三星、宏达电(HTC)、苹果、诺基亚这五大品牌在全世界最被大众所知道,而华为(HUAWEI)、联想(Lenovo)、小米(MI)、魅族(MEIZU)、酷派(Coolpad)、金立(GIONEE)、中兴(ZTE)、一加手机(oneplus)、天宇(K-Touch)等品牌在中国备受关注。智能手机支持多种操作系统,如:谷歌的Android(中文:安卓/安致,全球第一大智能操作系统,占据全球智能手机操作系统市场79%左右的份额),苹果公司的IOS(全球第二大智能操作系统),微软公司的Windows Phone(全球第三大智能操作系统),RIM公司的黑莓(Blackberry,全球第四大智能操作系统),塞班公司的Symbian(全球第五大智能操作系统),三星集团的bada(全球第六大智能操作系统),魅族公司的Flyme OS系统等。智能手机具有六大特点:具备无线接入互联网的能力:即需要支持GSM网络下的GPRS或者CDMA网络的CDMA1X或3G(WCDMA、CDMA-2000、TD-CDMA)网络,甚至4G(HSPA+、FDD-LTE、TDD-LTE)。具有PDA的功能:包括PIM(个人信息管理)、日程记事、任务安排、多媒体应用、浏览网页。具有开放性的操作系统:拥有独立的核心处理器(CPU)和内存,可以安装更多的应用程序,使智能手机的功能可以得到无限扩展。人性化:可以根据个人需要扩展机器功能。根据个人需要,实时扩展机器内置功能,以及软件升级,智能识别软件兼容性,实现了软件市场同步的人性化功能。功能强大:扩展性能强,第三方软件支持多。运行速度快:随着半导体业的发展,核心处理器(CPU)发展迅速,使智能手机在运行方面越来越极速。安卓平板电脑(Android平板电脑)是搭载了谷歌Android操作系统的平板电脑,可以进行商务定制的一款定位于笔记本电脑与智能手机之间的移动商务终端,同时也是是一款携带方便而且通信功能完善而强大的移动数据终端。安卓平板电脑(Android 平板电脑)功能强大,不仅可搭载丰富的消费类娱乐应用,还可实现移动商务办公,随时随地可以使用无线上网,系统反应速度快,画面清晰细腻,触感轻柔敏锐,机身细薄,小巧玲珑,便于随身携带,比手提电脑更轻巧,比手机屏幕更宽广,但又具有手提电脑上网查询看电影看网页的功能,以及手机翻阅信息、收发邮件、拨打电话的功能。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。Android操作系统最初由Andy Rubin开发,主要支持手机。Android一词的本义指“机器人”,同时也是Google于x年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。x年11月5日,谷歌公司正式向外界展示了这款名为Android的操作系统,并且在这天谷歌宣布建立一个全球性的联盟组织。x年8月2日,Android手机已占据全球智能机市场48%的份额,并在亚太地区市场占据统治地位,终结了Symbian(塞班系统)的霸主地位,跃居全球第一。Android系统目前已经布满我们生活的各个方面,如:手机、平板电脑、电视、电视盒子、游戏机、手表和车载系统等。随着Android系统的逐步发展,安卓应用如雨后春笋般出现,现实生活中需要很多物品才能实现的多个功能仅仅一个安卓应用就可以实现。在这里,通过编程实现多功能时钟,可以集手表、闹钟等功能于一体,使其简单、方便、实用。1.2 研究现状 Android系统自从出现以来,就以其开放性、丰富的硬件、便于开发等优势逐渐扩大自己的市场份额,尤其在国外,其呼声日高,正处于迅速发展的开拓阶段。x年第一季度,在美国,基于Android系统的智能手机的销售量已占据整个美、美国手机销售量的28%份额,而IPhone手机的市场份额紧追其后。随着Android系统的不断发展和更新,选择Android系统的智能手机或者无线终端设备的人越来越多,人们对智能手机或设备的功能需求会越来越高,人们从应用商店里下载应用,同时对移动应用的功能的要求也会越来越高。安卓平台具有开发性,开发的平台允许任何移动终端厂商加入到安卓联盟中来,显著的开放性可以使其拥有更多的开发者;安卓具有开放性,众多的厂商会推出千奇百怪,功能特色各具的多种产品。安卓平台提供给第三方开发商一个十分宽泛、自由的环境,不会受到各种条条框框的阻扰,可想而知,会有多少新颖别致的软件会诞生。当前国内手机市场正在快速向智能手机推进,而安卓系统无疑是最大的市场需求。各种安卓应用商店的不断出现、发展和开发者的涌入,安卓平台的应用资源优势不断扩大。随着移动设备的制造和信息技术的不断发展,智能手机或者无线终端设备越来越普遍,各种各样的安卓应用的用户也越来越多。多功能时钟作为拥有一个简单而实用功能的安卓移动应用必将为人们的生活带来许许多多的便利。显示时间功能可以让你随时知道时间;闹钟功能可以提醒人们注意一些容易忽略的时间,可以让人们养成良好的作息习惯,可以提醒、通知等;计时器功能可以进行较短时间内的提醒鞥;秒表功能可以测量做某件事情的时间等。1.3 本文的主要工作 本文在现有的Android发展现状基础上,展示了一款基于安卓的移动应用-多功能时钟的构建的逻辑思路、系统架构以及各个功能的详细实现与调试过程。当安装后点击进入应用时,出现的是一个时钟界面,在界面中间显示的是当前设备的时间,精确到秒。在界面的上方,有“时钟”、“闹钟”、“计时器”、“秒表”功能。点击“闹钟”,此时界面中间是空白,下方有“添加闹钟”功能;点击“添加闹钟”,会出现一个时钟界面,上方的时间是当前的时间,精确到分;点击“时”,通过旋转时钟上的指针来选择“时”;点击“分”,通过旋转时钟上的指针来选择“分”,“确定”或“取消”;添加之后,长按添加的闹钟后,会提示“删除”,或取消。点击“计时器”,会出现“00:00:00”,依次点击,输入数字进行设定,精确到秒,点击“开始”进行倒计时,“暂停”、“继续”或“重置”。点击“秒表”,会出现“0:0:0:0”,点击“开始”进行计时,“记录”记录时间,“暂停”、“继续”或“重置”。本文是对这几个功能开发的详细介绍。1.4 论文的组织结构 第1章,绪论。主要描述的是基于安卓的多功能时钟的开发背景,安卓系统智能手机和平板电脑的发展现状。第2章,安卓相关介绍。介绍了安卓技术、安卓应用程序组件、Android Studio的架构组成和主要功能。第3章,需求分析。对多功能时钟的功能和性能进行需求分析,为后续设计做准备。第4章,多功能时钟的架构设计。描述了多功能时钟的设计目标和原则,介绍了多功能时钟的架构设计和功能设计,为详细设计提供参考。第5章,多功能时钟的详细设计与实现。介绍了多功能时钟的界面设计和各个功能的设计与实现。第6章,多功能时钟的实现与测试。介绍了多功能时钟的架构和模块的实现、测试与调试,并对出现的问题进行分析说明。第2章 安卓相关介绍 2.1 安卓系统介绍 2.1.1 安卓技术简介 Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。Android的系统架构和其操作系统一样,采用了分层的架构。从架构图看,Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。1、应用程序层 Android会同一系列核心应用程序包一起发布,该应用程序包包括客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是使用JAVA语言编写的。2、应用程序框架 开发人员也可以完全访问核心应用程序所使用的API框架。该应用程序的架构设计简化了组件的重用;任何一个应用程序都可以发布它的功能块并且任何其它的应用程序都可以使用其所发布的功能块(不过得遵循框架的安全性)。同样,该应用程序重用机制也使用户可以方便的替换程序组件。隐藏在每个应用后面的是一系列的服务和系统, 其中包括:丰富而又可扩展的视图(Views),内容提供器(Content Providers),资源管理器(Resource Manager),通知管理器 (Notification Manager) ,活动管理器( Activity Manager) 。应用程序框架呢可以说是一个应用程序的核心,是所有参与开发的程序员共同使用和遵守的约定,大家在其约定上进行必要的扩展,但程序始终保持主体结构的一致性。其作用是让程序保持清晰和一目了然,在满足不同需求的同时又不互相影响。开发应用时都是通过框架来与Android底层进行交互,接触最多的就是应用框架层。3、系统运行库 Android 包含一些C/C+库,这些库能被Android系统中不同的组件使用。它们通过 Android 应用程序框架为开发者提供服务。以下是一些核心库:系统 C 库(一个从BSD继承来的标准C系统函数库 Libc),媒体库(基于PacketVideo OpenCORE),Surface Manager(对显示子系统的管理,并且为多个应用程序提 供了2D和3D图层的无缝融合), LibWebCore(一个最新的web浏览器引擎用,支持Android浏览器和一个可嵌入的web视图)4、Linux内核层 Android的核心系统服务基于Linux2.6内核,如安全性、内存管理、进程管理、网络协议栈和驱动模型等都依赖于该内核。Linux内核同时也作为硬件和软件栈之间的抽象层,它可隐藏具体硬件细节而为上层提供统一的服务。2.1.2 安卓应用程序组件 应用程序组件是Android应用程序的基本构建单元。每个组件是系统进入你的应用程序的不同入口点。不是所有的组件对于用户都是实际上的入口点,有些是互相依赖的,但是每个组件都有特定的作用每个都是唯一的构建单元,这些构建单元定义你应用程序的全部行为。有四种不同类型的应用程序组件。每种都有不同的用处并且有不同的生命周期。生命周期定义了他们是怎样被创建和销毁的。Android开发四大组件分别是:活动(Activity):用于表现功能。服务(Service):后台运行服务,不提供界面呈现。广播接收器(BroadcastReceiver):用于接收广播。内容提供商(Content Provider):支持在多个应用中存储和读取数据,相当于数据库。1、Activitiy Android 中,Activity是所有程序的根本,所有程序的流程都运行在Activity 之中,Activity可以算是开发者遇到的最频繁,也是Android 当中最基本的模块之一。一个Activity代表一个单独的拥有用户界面的屏幕。比如,一个邮件应用程序可能拥有一个显示新邮件的列表的Activity,一个编写邮件的Activity,一个读邮件的Activity。虽然这些Activity一起工作,但是他们是相互独立的。因此一个不同的应用程序也可以启动这些Activity中的任何一个(如果邮件应用程序允许的话)。Activity 当中可以添加一些Button、Check box 等控件。可以看到Activity 概念和网页的概念相当类似。一个Activity是由Activity类的子类来实现的。 2、Service Service 是android 系统中的一种组件,它跟Activity 的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service 是没有界面的长生命周期的代码。一个Service组件是运行在后台的一个进程,这个进程处理一个长时间的操作或者是一个远程调用。一个Service不需要提供一个用户界面。比如,一个Service可以在用户运行一个不同程序的同时在后台播放音乐,或者在不阻塞一个Activity的用户界面的同时获取网络数据。其他的组件,比如一个Activity,可以启动一个Service并且与之交互。一个Service是由Service的子类来实现的。3、BroadcastReceiver 在Android 中,Broadcast是一种广泛运用的在应用程序之间传输信息的机制。而BroadcastReceiver 是对发送出来的Broadcast进行过滤接受并响应的一类组件。可以使用BroadcastReceiver 来让应用对一个外部的事件做出响应。大量的广播都是由系统产生的。例如屏幕关闭的广播,电量不足的广播,拍了一张相片的广播。应用程序也可以发出广播,例如让其他应用程序知道一些数据已从网上下载了,并且它们可以使用这些数据。一个Broadcastreceiver组件用于响应整个系统的广播通知。一个Broadcastreceiver是由BroadcastReceiver的子类来实现的,并且每个广播都是当作一个Intent对象来传递的。4、Content Provider Content Provider 是Android提供的第三方应用数据的访问方案。一个Contentprovider管理一组共享的应用程序数据。你可以把这些数据存储到文件系统、一SQLite数据库、互联网或者任何你的应用程序可以访问的持久化存储设备中。通过Contentprovider其他的应用程序能够查询甚至修改(如果Contentprovider允许修改操作)这些数据。例如Android系统提供了管理联系人信息的Contentprovider。因此,任何一个应用程序在拥有相应权限的情况下都可以访问这个Contentprovider管理的数据(比如ContactsContract.Data)来读取或者修改某个联系人的信息。Contentprovider用于管理应用程序不与其他程序共享的的私有数据也是非常有用的。一个ContentProvider是由ContentProvider的子类来实现的,并且必须实现一组使其他应用程序能与之通信的API。2.2 Android Studio简介 2.2.1架构组成 在IDEA的基础上,Android Studio 提供:基于Gradle的构建支持;Android 专属的重构和快速修复;提示工具以捕获性能、可用性、版本兼容性等问题;支持ProGuard和应用签名;基于模板的向导来生成常用的 Android 应用设计和组件;功能强大的布局编辑器,可以让你拖拉UI控件并进行效果预览。2.2.2主要功能 x年5月16日,在I/O大会上,谷歌推出新的Android开发环境Android Studio,并对开发者控制台进行了改进,增加了五个新的功能。Android Studio是谷歌推出了新的Android开发环境,开发者可以在编写程序的同时看到自己的应用在不同尺寸屏幕中的样子。谷歌对开发者控制台进行了改进,增加了五个新的功能,包括优化小贴士、应用翻译服务、推荐跟踪、营收曲线图、用版测试和阶段性展示。1、优化小贴士:在主体中打开你的应用,点击小贴士,会得到这样的建议:为你的应用开发平板电脑版本。2、应用翻译服务:允许开发者直接在开发主体中获得专业的翻译。上传你的需求,选择翻译,其会显示翻译方和价格,并在一周内发回译本。3、推荐跟踪:允许开发者找出最有效的广告。4、营收曲线图:向开发者展示其应用营收,以国家进行划分。5、试用版测试和阶段性展示:开发者可以对应用进行测试,然后向测试用户推出,测试结果不会对外公布。当一个版本的测试结束,开发者可以向特定比例用户推出。Android Studio这款开发工具被首次公布,这也是为了方便开发者基于Android开发。首先解决的一个问题是多分辨率。Android设备拥有大量不同尺寸的屏幕和分辨率,根据新的Studio,开发者可以很方便的调整在各个分辨率设备上的应用。同时Studio还解决语言问题,多语言版本(但是没有中文版本)、支持翻译都让开发者更适应全球开发环境。Studio还提供收入记录功能。最大的改变在于Beta测试的功能。Studio提供了Beta Testing,可以让开发者很方便试运行。x年5月29日,在谷歌I/O开发者大会上,谷歌发布AndroidStudio 1.3版,支持C+编辑和查错功能。Android Studio 1.3版开发码代码变得更加容易,速度提升,而且支持C+编辑和查错功能。 第3章 需求分析 3.1 多功能时钟的功能需求 对于应用的设计目标,首要原则是以用户为本,宗旨是满足用户的需求。从用户的需求出发,多功能时钟这款基于安卓的移动应用应当包含日常生活中时钟的最基本的功能,能够显示当前时间,能够添加和删除闹钟,能够进行倒计时和能够进行秒表计时等。多功能时钟的设计需要根据系统功能的不同对应用进行模块划分,不同的功能独立出来形成一个模块,这样能够使我们更好的根据不同的模块不同特点有针对性地进行代码编写。根据应用的总体描述,这款应用的功能需求大致分为以下四部分。1、 查看时间的功能需求 查看时间对于每个时钟应用来说是一个最基本的功能,在设计多功能时钟的时候,为了方便用户查看时间,设计以数字来显示时间,简单明了。2、添加和删除闹钟的功能需求 多功能时钟设置闹钟时要制作一个“添加闹钟”的按钮,点击“添加闹钟”,会出现一个界面。界面下方是一个时钟,界面上方显示的是当前的时间。点击上方时间的“时”,下方时钟的指针是跳转到时的范围里,有两圈,一圈12小时;通过旋转时钟上的指针来选择“时”。点击上方时间的“分”,下方时钟的指针是跳转到分的范围里,有一圈,一圈60分钟;通过旋转时钟上的指针来选择“分”。在此界面还应有“确定”和“取消”两个按钮。此外还应有删除闹钟的功能,因此可以这样设计:添加闹钟之后,长按添加的闹钟,会弹出一个提示,提示“删除”或者“取消”。3、 计时器的功能需求 倒计时被人们广泛用于事件提醒。当你有事情需要在特定的时间完成或者到某个时间点要完成某件事情的时候。计时器功能可以提醒你按时完成所需要完成的工作。界面上方显示为“00:00:00”,可以输入数字进行设定,应可以精确到秒,界面下方应有一个“开始”按钮,点击“开始”进行倒计时,之后应有“暂停”“重置”按钮,点击“暂停”后,“暂停”按钮应变为“继续”按钮,计时器应可以进行倒计时。4、秒表的功能需求 秒表具有测量时间的功能,秒表的功能需求来源于需要精确计时的人群,人们可以用秒表测试自己的跑步速度,可以用秒表计算完成一项任务所需要的精确时间,可以用秒表测试自己呼吸频率、脉搏等等。界面上方显示为“0:0:0:0”,应可以精确到毫秒,界面下方应有一个“开始”按钮,点击“开始”进行计时,之后应有“暂停”和“记录”按钮,“记录”可以记录时间,点击“暂停”后,两个按钮应分别变为“继续”和“重置”按钮。3.2 多功能时钟的性能需求 手机应用要有好的发展空间,就需要能给用户提供良好的体验,而良好的用户体验是基于应用的性能的,一般从界面、操作、提示和响应速度等来评价应用的性能的。对于界面来说,不同的应用有着不同的要求。对于移动应用,需要在30秒到1分钟的时间内吸引用户。应用应当设计成,一看到应用就愿意使用,但这并不意味着需要复杂的界面,有可能只需要可以给用户提供细节内容就行了。对于多功能时钟的界面,应该是简单、突出主题。操作应该是简单,容易学会和上手。提示应该是简单明了,让用户一看就懂。对于多功能时钟,响应速度肯定是快速。第4章 多功能时钟的架构设计 4.1多功能时钟设计目标和原则 1、 实现时钟的基本功能,可以显示当前时间。2、 多功能性,实现闹钟、计时器、秒表功能。3、 易用性,界面良好,操作简单,容易上手。4、 可靠性,响应速度快,有一定的容错能力。4.2多功能时钟的架构设计 不论是ios还是android的应用开发,其实都遵循着一定的开发流程,只有如此才能使开发过程有章可循而不是一团乱。架构设计需要对应用的设计进行考虑,包括应用系统的基本处理流程、应用系统的组织结构、模块划分、功能分配、运行设计和出错处理设计等,为应用的详细设计提供基础。对于多功能时钟来说,首先要基于需求分析来制定开发流程,然后搭建应用的主框架,由于显示时间是最基础的功能,所以先实现显示时间功能,然后实现闹钟、计时器、秒表功能。由于应用是以时钟为最终应用的,所以应用初始界面设计为时钟的显示时间界面。主界面显示多功能时钟的所用功能,用户根据需求可以自主选择功能。图4-1 多功能时钟架构图。图4-2 多功能时钟开发流程,从上到下,从左到右依次进行。 图4-1 多功能时钟架构图 图4-2 多功能时钟开发流程 4.3多功能时钟的功能设计 因为多功能时钟的各个功能之间是单独运行的,所以多功能时钟的每个功能都需要单独进行设计。已经确定架构设计后,对各个功能进行详细的设计。1、 时钟 对于时钟没有什么太大的要求,只要能显示当前时间就行了。当点击多功能时钟APP的快捷方式进入应用后,当前显示的应是时钟界面,时钟界面显示的是当前的时间。图4-3 时钟功能结构模型。 图4-3 时钟功能结构模型 2、 闹钟 点击界面上方的“闹钟”按钮后,进入闹钟界面,当前闹钟界面是不存在闹钟的,在界面下方设置一个“添加闹钟”按钮,可以进行添加闹钟,点击后会出现一个稍微小一点的界面。界面下方设置为一个时钟,界面上方设计为闹钟显示的是当前的时间。设计为点击上方时间的“时”,下方时钟的指针设计为跳转到时的界面里(默认当前是在“时”的界面里);设计时钟有两圈,外圈为1-12,内圈为13-00;设计为通过旋转时钟上的指针来选择“时”。设计为点击上方时间的“分”,下方时钟的指针是跳转到分的界面里;设计时钟为一圈,一圈60分钟;设计为通过旋转时钟上的指针来选择“分”。在此界面还应有“确定”和“取消”两个按钮。此外还应有删除闹钟的功能,因此可以这样设计:添加闹钟之后,长按添加的闹钟,会弹出一个提示,操作提示“删除”或者“取消”。图4-4 闹钟功能结构模型。 图4-4 闹钟功能结构模型 3、计时器 界面上方设计显示为“00:00:00”,可以输入数字进行设定,应可以精确到秒。界面下方设计一个“开始”按钮,点击“开始”进行倒计时。之后应设计“暂停”“重置”按钮,设计为点击“暂停”后,“暂停”按钮变为“继续”按钮。计时器应可以进行倒计时,可以在后台计时,时间到了,会弹出一个提示。图4-5 计时器功能结构模型 图4-5 计时器功能结构模型 4、秒表 界面上方设计显示为“0:0:0:0”,应可以精确到毫秒。界面下方设计有一个“开始”按钮,点击“开始”进行计时,之后应有“暂停”和“记录”按钮。设计“记录”按钮可以记录时间,点击“暂停”后,两个按钮应分别变为“继续”和“重置”按钮。图4-6 秒表功能结构模型 图4-6 秒表功能结构模型 第5章 多功能时钟的详细设计与实现 5.1 界面设计 主界面是进入应用时的界面,界面比较简单。图5-1 主界面布局,图5-2 安装界面。 图5-1 主界面布局 图5-2 安装界面 搭建应用主框架,依次呈现时间、闹钟、计时器、秒表。代码如表5-1所示。表5-1 搭建应用主框架 android:id=“+id/tabTime“ android:layout_width=“match_parent“ android:layout_height=“match_parent“ android:orientation=“vertical“ android:id=“+id/tabAlarm“ android:layout_width=“match_parent“ android:layout_height=“match_parent“ android:orientation=“vertical“ android:id=“+id/tabTimer“ android:layout_width=“match_parent“ android:layout_height=“match_parent“ android:orientation=“vertical“ android:id=“+id/tabStopWatch“ android:layout_width=“match_parent“ android:layout_height=“match_parent“ android:orientation=“vertical“ 定义一个tabHost变量;初始化;给各个模块命名并且声明tab的内容。代码如表5-2所示。表5-2 给各个模块命名 tabHost = (TabHost) findViewById(android.R.id.tabhost); tabHost.setup; tabHost.addTab(tabHost.newTabSpec(“tabTime“).setIndicator(“时钟“).setContent(R.id.tabTime); tabHost.addTab(tabHost.newTabSpec(“tabAlarm“).setIndicator(“闹钟“).setContent(R.id.tabAlarm); tabHost.addTab(tabHost.newTabSpec(“tabTimer“).setIndicator(“计时器“).setContent(R.id.tabTimer); tabHost.addTab(tabHost.newTabSpec(“tabStopWatch“).setIndicator(“秒表“).setContent(R.id.tabStopWatch); 5.2 多功能时钟的功能设计 5.2.1显示时间功能 多功能时钟的显示时间功能如图5-3所示。 图5-3 显示时间功能 新建一个类TimeView,添加构造方法来被代码调用,被初始化器调用和在初始化的时候指定它的style。代码如表5-3所示。表5-3 添加构造方法 public TimeView(Context context, AttributeSet attrs, int defStyle) super(context, attrs, defStyle); public TimeView(Context context, AttributeSet attrs) super(context, attrs); public TimeView(Context context) super(context); 换成自己定义的类,在内部写一个TextView,指定它的id和textAppearance。代码如表5-4所示。表5-4 定义文本展现方式 TextView android:id=“+id/tvTime“ android:layout_width=“fill_parent“ android:layout_height=“fill_parent“ android:gravity=“center“ android:textAppearance=“?android:attr/textAppearanceLarge“ / /com.example.administrator.myapplication.TimeView 在类里添加一个事件,在初始化后执行TextView操作,呈现文字在中间。代码如表5-5所示。表5-5 呈现文字 protected void onFinishInflate super.onFinishInflate; tvTime = (TextView) findViewById(R.id.tvTime); tvTime.setText(“Hello“); protected void onVisibilityChanged(View changedView, int visibility) super.onVisibilityChanged(changedView, visibility); if (visibility=View.VISIBLE) timerHandler.sendEmptyMessage(0); else timerHandler.removeMessages(0); private TextView tvTime; 重新刷新时间,通过sendEmptyMessage每秒刷新一次。代码如表5-6所示。表5-6 设置刷新时间间隔 timerHandler.sendEmptyMessage(0); private void refreshTime Calendar c = Calendar.getInstance; tvTime.setText(String.format(“%d:%d:%d“, c.get(Calendar.HOUR_OF_DAY),c.get(Calendar.MINUTE),c.get(Calendar.SECOND); 如果可见就呈现出来,否则把所有的消息移除掉。代码如表5-7所示。表5-7 设置文本可见与不可见处理方式 protected void onFinishInflate super.onFinishInflate; tvTime = (TextView) findViewById(R.id.tvTime); tvTime.setText(“Hello“); timerHandler.sendEmptyMessage(0); protected void onVisibilityChanged(View changedView, int visibility) super.onVisibilityChanged(changedView, visibility); if (visibility=View.VISIBLE) timerHandler.sendEmptyMessage(0); else timerHandler.removeMessages(0); 呈现的为时间。代码如表5-8所示。表5-8 设置呈现的为时间 Calendar c = Calendar.getInstance; tvTime.setText(String.format(“%d:%d:%d“, c.get(Calendar.HOUR_OF_DAY),c.get(Calendar.MINUTE),c.get(Calendar.SECOND); 5.2.2闹钟功能 闹钟功能的添加闹钟界面如图5-4 和5-5所示。添加闹钟后如图5-6,闹钟的删除界面如图5-7所示,闹钟音乐播放如图5-8所示。 图5-4 闹钟设置界面(时)图5-5 闹钟设置界面(分) 图5-6 添加闹钟后 图5-7 闹钟的删除界面 图5-8 闹钟播放音乐 新建一个类,添加构造方法。代码如表5-9所示。表5-9 添加构造方法 public AlarmView(Context context, AttributeSet attrs, int defStyle) super(context, attrs, defStyle); public AlarmView(Context context, AttributeSet attrs) super(context, attrs); init; public AlarmView(Context context) super(context); init; 换成自己定义的类,在内部写一个ListView,可以呈现添加的按钮,添加文字为Add Alarm,提取到字符串中,指定id。代码如表5-10所示。表5-10 呈现文字 ListView android:id=“+id/lvAlarmList“ android:layout_width=“fill_parent“ android:layout_height=“0dp“ android:layout_weight=“1“ /ListView Button android:id=“+id/btnAddAlarm“ android:layout_width=“fill_parent“ android:layout_height=“wrap_content“ android:text=“string/add_alarm“ / /com.example.administrator.myapplication.AlarmView 把两个变量加到类中,通过findViewById找到。给按钮添加一个事件。代码如表5-11所示。表5-11 添加事件 protected void onFinishInflate super.onFinishInflate; btnAddAlarm = (Button) findViewById(R.id.btnAddAlarm); lvAlarmList = (ListView) findViewById(R.id.lvAlarmList); adapter = new ArrayAdapterAlarmView.AlarmData(getContext, android.R.layout.simple_list_item_1); lvAlarmList.setAdapter(adapter); readSavedAlarmList; btnAddAlarm.setOnClickListener(new View.OnClickListener public void onClick(View v) addAlarm; ); private Button btnAddAlarm; private ListView lvAlarmList; 定义闹钟响起的时间,在外界获取时间。指明一个data变量,来创建时间,实现闹钟列表。代码如表5-12所示。表5-12 实现闹钟列表 private static class AlarmData public AlarmData(long time) this.time = time; date = Calendar.getInstance; date.setTimeInMillis(time); timeLabel = String.format(“%d月%d日 %d:%d“, date.get(Calendar.MONTH)+1, date.get(Calendar.DAY_OF_MONTH), date.get(Calendar.HOUR_OF_DAY), date.get(Calendar.MINUTE); 设置闹钟的时间,设置闹钟时间判断,如果设置时间小于等于当前时间,直接加一天。闹钟可以显示月,日,时,分。代码如表5-13所示。表5-13 设置闹钟时间及判断 Calendar calendar = Calendar.getInstance; calendar.set(Calendar.HOUR_OF_DAY, hourOfDay); calendar.set(Calendar.MINUTE, minute); calendar.set(Calendar.SECOND, 0); calendar.set(Calendar.MILLISECOND, 0); Calendar currentTime = Calendar.getInstance; if (calendar.getTimeInMillis=currentTime.getTimeInMillis) calendar.setTimeInMillis(calendar.getTimeInMillis+24*60*60*1000); AlarmData ad = new AlarmData(calendar.getTimeInMillis); adapter.add(ad); alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, ad.getTime, 5*60*1000, PendingIntent.getBroadcast(getContext, ad.getId, new Intent(getContext, AlarmReceiver.class), 0); saveAlarmList; 实现闹钟列表的存储,能够存储数据。代码如表5-14所示。表5-14 存储闹钟列表 StringBuffer sb = new StringBuffer; for (int i = 0; i adapter.getCount; i+) sb.append(adapter.getItem(i).getTime).append(“,“); if (sb.length1) String content = sb.toString.substring(0, sb.length-1); editor.putString(KEY_ALARM_LIST, content); System.out.println(content); else editor.putString(KEY_ALARM_LIST, null); 实现闹钟列表的读取,能够读取存储的数据。代码如表5-15所示。表5-15 读取闹钟列表 private voi
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!