实现
摘 要
我们每天第一件要做的事就是起床,而对于“懒人”们来讲,都会备一个小闹钟,即便你很讨厌被它吵醒,但又不得不依赖它把你叫醒,其实是很纠结的。而随着智能手机的发展,懒人闹钟也会被应用于手机中,替代传统的实体闹钟。
本文阐述了一个基于安卓平台的懒人闹钟的手机应用型软件的设计及其实现过程。该软件以Android系统为运行平台,平台所包含的功能和框架,为移动终端用户设计并实现了一套流畅、稳定的客户端应用软件。
本设计采用软件工程中结构化思想,采用标准的软件设计流程,从可行性研究、需求分析、系统设计以及系统实现等步骤开发了懒人闹钟应用软件。软件中运用了SQLite存储数据等技术。将整个应用程序划分为服务器端的搭建、用户主界面的UI设计、各个功能模块界面的UI设计、数据库四个模块。其中数据库模块具有存储,查询,增加,删除功能。此款懒人闹钟最大的特色是程序简洁,占用内存小,软件大小仅5M多;功能强,实现了市面上现有手机闹钟的大多数功能,具有很强的实用性。
关键词: 懒人闹钟 移动终端 Android
I
Abstract
Every day the first thing we should do is to wake up. And for \"lazy people\" ,they will prepare a small alarm clock. even if you hate it, but have to rely on it to wake you up. It is very tangled. With the development of smart phones, a lazy person also can be used in the mobile phone alarm clock, replace the traditional entity alarm clock. This article expounds a lazy alarm based on android platform of mobile phone application software design and its implementation process. The software for Android platform, platform contains function and framework. For mobile terminal users was designed and implemented a smooth, stable client software system.
This design USES the structured thinking in software engineering, use standard software design process,From the feasibility study, demand analysis, system design and system implementation steps to develop the lazy alarm system. To use SQLite store data and other technical software. The whole application into the server, user home interface UI design, UI design of each functional module interface, and database four modules.Which database module has the storage, query, increase, delete functions.The biggest feature of this lazy alarm clock program is concise, small footprint, software size just over 5 M; Function is strong,,Is achieved on the market most of the existing mobile phone alarm clock function, have very strong practicability.
Key Words: Lazy Alarm Clock Mobile Terminals Android
II
目 录
摘要 .................................................................................................................................................. I Abstract......................................................................................................................................... II 目录 ............................................................................................................................................... III 绪论 ................................................................................................................................................. 1 1.1 Android概述 ..................................................................................................................... 4 1.2 Android架构 ................................................... 4 1.3 Android权限的获取 ............................................. 5 1.4 Android用户界面构建 ........................................... 6 1.5 资源的获取和使用............................................... 7 1.6 SQLite数据库技术 .............................................. 8 1.7 多媒体的支持能力............................................... 8 1.8 本章小结....................................................... 9 2 基于Android平台的懒人闹钟软件需求分析......................... 10 2.1 用户功能流程图................................................ 10 2.2 用户功能需求分析.............................................. 10 2.3 软件性能分析.................................................. 11 2.4 开发可行性分析................................................ 11 2.5 整体架构分析.................................................. 12 2.6 本章小结...................................................... 12 3 基于Android平台的懒人闹钟软件设计............................. 13 4 基于Android平台的懒人闹钟软件实现............................. 16 4.1 软件功能模块设计图............................................ 16 4.2 首次安装模块................................................... 16 4.3 用户主界面..................................................... 17 4.4 设置闹钟时间模块设计........................................... 18 4.5 闹钟铃声和振动模块............................................. 19
II I
4.6 开始闹钟模块.................................................. 20 4.7 工程源代码结构图.............................................. 21 结论 ............................................................................................................................................... 22
IV
绪 论
在软件产业高速发展的今天,软件的设计思想和理念也在不断变化。而随着移动
终端----智能手机的出现,更是为智能手机软件提供了高速发展的平台。本章将根据Android闹钟软件的发展状况以及未来方向进行分析,并着重论述本文的内容和结构安排。
现今Android系统应用软件的开发如火如荼,在Android如此盛行的情况下,开发一款基于安卓平台的懒人闹钟,不仅能很好的利用Android系统的巨大优势,而且同时可以在不同的小型手持设备上安装该软件。便捷式设备,不仅仅自身具有的价值,同时因为它可以在任何时间,任何地点解决人们的生活问题,这些都大大提高了软件的用法。还能解决人们生活上的问题。就如本文的主体--闹钟,他可以显示当前时间,当你需要的时候,可以准时的让你醒来。但是本文主要阐述的是一个基于Android系统手机的懒人闹钟应用,其设计清新,使用简单,使用环境广泛,在当前高速发展的社会经济条件下,为帮助一群依赖闹钟的“懒人”们,设计的这样一款个人闹钟应用是非常有意义和利用价值的。如果每个“懒人”的手机上都有一个这样的应用,在日常生活中可以为他们带来一大便捷,而正是这些原因,推动了对基于Android的懒人闹钟的设计和实现工作。
你的闹钟是否能让你准点把你叫醒?怎样才能迅速有效的把懒人从睡梦中唤醒?针对懒人,当然有针对懒人的闹钟。而市面上出现的一些闹钟,有的针对喜欢赖床的懒人,如果你不起床,就会耍得你团团转;而有的非要逼着让你“晨运”,而这些只适合于疏于运动的懒人[1]。正因为有五光十色样式和功能的闹钟,才能适用于懒得动的懒人,同时也因为这些各种各样款式的闹钟,让你真心赖不起床。但上述闹钟有一个共同点,那就是这些大多都是实体闹钟。而在安卓市场上,一个方便又实用的懒人闹钟并未被广泛运用于用户的手机中,于是我选择了基于Android平台的懒人闹钟的设计和实现的课题。
综上所述,开发一款软件以提醒用户为重点的闹钟模式应用软件已经变得势在必行,帮助用户更换的起床,提醒当天的注意事项,给用户带来更加舒适方便的生活感觉。
1
大家熟知的闹钟包括实体闹钟,手机闹钟,但是真正存在的闹钟往往比我们了解的多得太多,而下面我将介绍几款比较流行和适用的闹钟。
电脑闹钟:该软件是在计算机上安装于电脑桌面说那个的一款具有闹钟提醒功能的软件。该软件具有一些提醒功能,如生日提醒,倒计时,定时开关时间,语音学习,日常工作和事务提醒等。计算机软件的功能,包括嵌套的日历,很实用,也很美观,和桌面软件的界面完美结合,使您的桌面看起来很漂亮。但是同时电脑闹钟也有它的缺陷,它携带不方便,只适用于电脑用户。
实体闹钟:一般的实体闹钟是带有闹时装置的钟。不仅能指时间,而且能根据设置特定的时间发出声音或者信号或标志。但由于智能手机行业的兴起,实体闹钟面临着前所未有的影响。而人们更多依赖于手机中的虚拟时钟,并在生活中发挥了更加重要的作用,因此实体闹钟也慢慢淡出了人们的视线。但同时一些人已经遗忘了闹钟原本的功能,替代的是将其当作一种装饰。
创意闹钟:由于实体闹钟的淡出,却其却演变出来了另一种的存在--个性闹钟。而这些个性闹钟都具备着一些特殊的功能。如会飞的闹钟:闹钟响时,不及时起床关掉闹钟,那么闹钟就会飞出去;拼图闹钟:通过拼图阻止闹钟持续的音响信号;芳香闹钟,会逃跑的闹钟,还有可以锻炼身体的哑铃闹钟等等。
其实从上述不难看出,这些闹钟都有自己的特点,而且在某种特定的环境下他们能达到人们的需求,但是离开了那个环境,他们的功能就变成了一无是处。
本课题方向是以现今最流行的开源手机操作系统Android为平台,进行基于Android平台的手机软件的设计及实现,完成懒人闹钟软件的开发。其主要的研究目标是:
(1) 理解Android 系统的层次框架并研究懒人闹钟软件系统的软件和硬件支撑平台, 制定系统整体的软件和硬件平台框架,设计子功能模块。
(2) 在上述的基础上,基于 Android SDK4.1 进行该系统的应用软件研制,编写软件程序。
论文共分六章,内容及章节如下:
第一章 绪论:从选题背景出发,描述了开发一套基于Android平台的懒人闹钟软件的现实意义及目的。基于上述内容以及文献资料,了解国内外研究现状,分析
2
同类系统的理论基础,进行软件设计和实现。
第二章 系统关键技术:首先介绍Android系统的组成结构,然后从Android系统应用和平台的开发来概述,最后,从本文涉及闹钟应用的技术来论述,如数据存储,事件绑定以及意图转发。
第三章 基于Android平台的懒人闹钟软件的需求分析:分析了该懒人闹钟的功能上需求以及非功能需求。从整个系统的功能出发,描述了本人的设计工作部分——懒人闹钟的主界面和功能模块界面设计,并从用户的需求分析、可行性分析,以及软件生命周期的功能需求分析,进行了详细的论述,进一步明确了系统的需求,为下一步的系统设计做好铺垫。
第四章 基于Android平台的懒人闹钟软件设计:首先明确了系统的运行环境,然后按照需求内容分析,将整个应用程序划分为初始化界面UI设计、用户主界面的UI设计、各个功能模块界面的UI设计、数据库的使用四个模块。最后,对软件中所用到的数据库进行了设计。
第五章 基于Android平台懒人闹钟软件功能的实现:首先分析了系统总体框架的实现原理。然后分析每个模块的实现过程,得到核心的实现方法,尤其是对主要类的介绍进行了较为深入的阐述说明。最后,通过功能截图展示了软件的实际运行效果。
第六章 结论:对本课题的研究成果进行总结,提出系统后期的改进方向。
3
1 系统关键技术
1.1 Android概述
Android是一款内置于移动终端的平台,由Linux系统内核和Java语言共同研制出的一个开放源代码的软件平台,它提供包括软件开发工具包、关键API、中间键、以及Linux内核在内的四个全套手机软件服务。由于它包括Linux内核在内的都是开放性的工具,因此确保了其内容的可塑性和多元化。同时Android平台为应用软件编程提供了一套非常完善的开发架构,我们通过这个基础平台进行各种不同的应用程序的开发,同时也可以开发新的JAVA Bean用于给应用程序提供调用。
1.2 Android架构
Android的架构是由Linux内核、C/C++函数库、dalvik虚拟机、应用框架以
及关键应用程序构成的[2]。通过编译基于框架的应用程序可以降低开发负荷。应用软件原则上是在DalvikVM上运行的[3]。
图1-1 Android架构模型图
随着Android平台的到来,安卓的核心应用,包括发布的一系列的应用包,如邮件客户端,SMS程序,闹钟,日历,地图浏览器、通信管理程序等。并且所有的应用程序编程语言都是使用JAVA语言编写的。
4
1.3 Android权限的获取
一个Android应用程序,一般都由Activity、IntentReceiver、Service、Content Provider四个部分组成,然而不是每一个Android应用软件都规定包含这四部分。当软件程序中使用到这些工具类或业务类时,需要通过一个文件(AndroidManifest.xml)进行这注册才能使用。每一个Android应用软件都需要完成这个文件的配置。而这个文件就像是一个具有注册的功能的工具,只有将这些要是有的组件进行注册了,才能使用,否则不能使用。配置文件用于声明应用软件中的组件、及其功能和一些必备的条件等。Android应用组件的构成和工作流程如图1-2所示。
图1-2 Android的构成和工作流程
Android应用程序中安全是较为重要的设计点,默认情况下应用软件一般是无权限进行对其它应用软件、操作系统或使用者的一些有害操作。这些操作包括读写用户的隐秘数据,执行网络访问,保持设备Activity等等。应用程序的进程必须保证安全,且不能干扰其他应用程序。因此需要满足权限的注册步骤:
(1)权限命名:一个Android应用程序默认情况下是不具备权限的,这就表示它不能进行任何干扰使用者的体验感或终端数据的有害操作。在当要在应用程序中使用相关组件时,必须在AndroidManifest.xml文件中加入一个或更多的 (2)在AndroidManifest.xml文件中支持权限 通过AndroidManifest.xml文件可 5 以设置高级权限,用来访问组件或应用程序。所以当要使用某个组件时,必须在这个文件里进行一个权限的注册,现在对与本系统相关的组件权限进行简单的概述:任何一个Android应用软件都必须拥有配置文件----AndroidManifest.xml。在该配置文件中进行应用程序组件的注册以及他们的特殊性进行规范。同时定义Android应用软件中所拥有的组件,以及组件致的一些约束信息,同时当对应用程序对网络、存储卡等进行访问时,具有权限控制,只有配置中注册了某种权限,应用程序才能进行相应的操作。否则,即使程序在应用中,也无法达到效果。 ①Activity权限(使用 ②BroadcastReceiver权限(使用 1.4 Android用户界面构建 基于Android平台下开发应用软件,布局格式扮演着非常重要的角色。一个既美 观又简单界面,是极其美好的,既能提升用户的体验感,又能确保程序的执行的效率。用户界面布局有三种途径:xml进行配置生成、或者是使用者自己编写的界面接口进行生成或直接用代码生成。对于一个Activity应用来说,android.app.Activity类是一个最基本的功能单元。一个Activity实例可同时具备多种功能,然而它自身可能没法显示在屏幕上,但是可通过Viewgroup和View这两个表达单元进行显示,而其是Android平台上最常见的两种户界面表达单元。下面介绍下主要的布局对象: 线性布局(Linear Layout):以单一方向对其中的显示对象进行排列显示。 如以垂直排列显示,则布局管理器中将只有一列;如以水平排列显示,则布局管理器中将只有一行[3]。同时,还可以对个别的显示对象设置显示比例。 表格布局(Table Layout):以拥有任意行列的表格对显示对象进行布局,每个显示对象被分配到各自的单元格之中,但单元格的边框线不可见。 绝对布局(Absolute Layout):允许以坐标的方式,指定显示对象的具体位置,左 6 上角的坐标为(0,0),向下及向右,坐标值变大,这种布局管理器由于对象的位置固定了,所以在不同的设备上,有可能会出现不一样的显示效果[4]。 相对布局(Relative Layout):允许通过指定显示对象相对于其它显示对象或父级对象的相对位置来布局;一个按钮可以放于另一个按钮的右边,或者可以放在布局管理器的[5]。 Android软件上的一个屏显,其屏幕元素是根据布局结构来叙述的。需要让一个屏幕元素按其树型结构对应于当前屏幕显示,Activity根据setContentView()方法进行调用并传递这个结构树的根节点的引用。 1.5 资源的获取和使用 资源是外部文件(不含代码的文件),一般会在程序编译时读取并进行编译成字节码文件。 Android可以使用格式不同的资源文件,其中有XML、PNG及JPEG文件。当代码在编译时被解析出来,XML文件可以通过需要进行不同的格式选择。源程序和XML文件会被编译成字节码文件并以.class为后缀的文件进行保存,通过该途径可以加快资源的加载。字符串也可被压缩成高效率的模式。 正由于这一系列的因素,Android平台上可具有不同格式的资源文件。Android资源系统可以跟随全部非相关的代码的应用程序。程序开发者可以使用资源类来访问应用程序的资源,资源的实例通常和应用程序联系在一起,可以通过Context.getResources来访问。应用程序的资源在编译时就被编译到应用程序的字节码文件中。 如果需要相关资源,程序开发者需将其放置于对应的代码目录结构里,并且进行编译。成为编译的重要成分,生成的资源代码可以在源代码中使用,这就可以用编译器来验证软件代码和定义的资源能否相符。 Android闹钟自带的API可以提供警报和时间服务,其在硬件基础上一般是时钟装置。在Linux内核程序中,必须具有实时时钟装置驱动代码和Android的Alarm驱动代码。警报器-实时时钟软件囊括了JNI和JAVA层的接口,在JAVA应用层通过使用接口进行警报器的使用,如图1-3所示。 7 图1-3 Android闹钟应用结构图 1.6 SQLite数据库技术 SQLite提供层次化的数据存取。SQLite是一款轻量级数据库,其研究的目标是嵌入式类型,现今在许多嵌入式的设备中都涉及到了。占用的资源非常低。数据库的来源:在懒人闹钟的闹钟设置模块中,必须将闹钟的ID,时间,重复情况等都保存至数据库中,闹钟需要对数据库中存储的数据进行读取,复制,更新,存储。而Abdroid中内置的数据库实现轻量级数据存储,用于暂存软件的设置信息。 数据库的处理:每次添加闹钟,或者更新闹钟设置时,都需要对数据库进行更新,所以可以通过SQlite Expert工具进行对应的增、删、改、查的SQL语句实现对闹钟的添加、删除、修改、查找操作。 1.7 多媒体的支持能力 用于播放媒体的文件。可以提供音频(如MP3格式或其它音乐文件等)和视频 的功能,并提供“播放URI地址”方式,即在互联网上播放的流媒体技术。另外还支持各种通用的静态图像格式。如:JPG、PNG、GIF等格式。 安卓闹钟中铃声的设置模块中,可以自己选择音乐当作铃声。实现过程是将MP3或者其它格式的音乐文件保存于一个文件夹中,通过找到音乐存储相对应的URI,实现连接播放。同时,后期可以自己录制一些声音或者视频,通过相同的原理,达 8 到自己制作铃声的效果。 1.8 本章小结 本章详细地介绍了Android懒人闹钟应用程序的开发的一些关键技术,包括Android架构的构成,核心API,核心组件,闹钟警报器的调用,及数据库存储及多媒体支持技术等。 9 2 基于Android平台的懒人闹钟软件需求分析 2.1 用户功能流程图 用户 主界面 添加闹钟 闹钟设置 删除 图2-1 功能操作流程图 显示系统 时间 修改 2.2 用户功能需求分析 该款软件是针对普通用户开发的,因此本软件需实现以下基本的功能: 系统时间:懒人闹钟应用界面显示一个系统的当前时间,并且它显示的时间应该和移动终端的时间一致。 闹钟模块:闹钟的时间设置,同时包括闹钟的增加,修改,删除等功能。 重复模块:设置闹钟一个星期中重复的具体天数。 铃声模块:设置选择铃声。 振动模块:设置闹钟触发时,是否开启振动。 文本提示模块:通过在文本框中添加要显示的内容,在闹钟触发时显示保存的信息,提醒用户自己的计划。 10 2.3 软件性能分析 同时该款软件是一款应用型软件,使用层次上,应该具有以下几点: 操作简便:使用者不是研发人员,他们对程序内部的具体实现不会太了解。所以研发出来的软件需要为用户使用的带来便捷的操作接口;使用是否灵活便捷直接影响了一款软件的好坏。所以一切开发时应该站在用户的角度来看问题。 运行稳定:如果一款软件在设计和开发的逻辑上存在问题,那么在用户使用过程中极有可能会出现一些不可预料的错误,从而造成软件的崩溃,导致用户无法正常使用。那么用户可能会拒绝再次尝试使用该软件,而这对开发人员来说无疑是一个灾难,同时也会失去很多用户。 界面美观:一个应用的设计开发,最终目的是满足使用者的需求,而在系 统设计实现时,必须将用户体验感受考虑在内,一个好的界面设计,会给用户带来舒适感。因此需要在界面设计上满足用户的审美观。 功能完善:一款软件的最终使用者是用户,尽管软件的界面很美观,运行流畅,操作简单,但功能如果不尽如意的话,用户也不会选择使用的。因此,应该为用户提供完善的使用功能,提高用户的使用感。 2.4 开发可行性分析 经过查阅国内外相关网站资料,以及调研分析,提出了以下几点可行之处: 经济可行性:本软件采用的开发平台是免费且是开放的,不需要支付任何费用,同时市场空间也很大,成本低廉,便于后期推广。 技术可行性:如下表2-1所示 表2-1 软件开发环境 开发环境 开发软件 开发语言 开发测试平台 Windows7 Eclipse Java语言 Android虚拟机 11 从上述可以看出,该软件在技术上完全支持开发。 操作可行性:软件采用最主流的Java语言Android开发模式,并使用Android 的自带的组件进行开发,界面使用感好,简洁方便,布局显示具有层次分明性,用户体验感方便快捷。 2.5 整体架构分析 需求分析是应用开发中的一个非常重要的步骤,可以根据需求分析,分析出开发的软件的基本功能,架构,模式和预期的效果。当有哪一环出现问题,可以更快的改善或者是增进功能。 其中软件的整体开发框架是MVC模式。按照功能需求分析得出,总体上可将系统分为三层:视图层(View)、业务逻辑层(Model)、控制层(Controller)。而这正是一般项目开发的流程--MVC。 View视图层用于界面的显示模块。 Model业务逻辑层包括业务处理和业务持久化过程。 Controller控制层作用于视图和业务层之间,起到链接的作用。 该部分的目标主要有:获得目标系统的物理模型框架,了解目标系统软件是如何执行行的;抽象的得到目标系统的逻辑模型,并对物理模型进行筛选,得到与软件系统有关的部分;以及补充系统的逻辑模型,对目标系统的用户界面大概的构思出布局模型[6]。 2.6 本章小结 本章详细探究了懒人闹钟的需求分析及可行性分析,完成了软件的内容设计、用户需求和功能需求等方面的内容。 12 3 基于Android平台的懒人闹钟软件设计 本章主要阐述了手机闹钟软件的功能模块的UI设计。 UI界面设计 从需求分析得出的结论,应用软件包含五个基本的用户界面,该章进行每一个用户界面的基本UI设计内容。 在首次安装软件时,会有个类似于软件更新的界面组,而这界面组一共有四个界面,界面之间可以相互切换,而界面内容显示一些和软件相关的介绍或者是宣传。 用户首页:包括添加闹钟模块,和显示已有的闹钟及状态,以及显示当前的时间如图3-1和图3-2所示。 图3-1 添加闹钟设计图 图3-2 添加闹钟 设置界面:包括启用闹钟,系统时间,重复,铃声选择,振动,标签,以及完成还原和删除闹钟(图3-3和图3-4)。 13 图3-3 设置闹钟设计图 图3-4 设置闹钟 重复界面:可以设置从周一到周五的是否重复(图3-5)。 图3-5 重复设置 时间设置界面:设置闹钟的时间(图3-6和图3-7) 图3-6 时间设置设计图 图3-7 时间设置 14 铃声设置界面:可以选择铃声(图3-8和图3-9) 图3-8 铃声设置设计图 图3-9 铃声设置 标签设置界面:可以在闹钟触发时显示输入的内容进行提示(图3-10和图3-11) 图3-10 标签设置设计图 图3-11 标签设置 闹钟触发界面:当闹钟触发时显示的界面(图3-12,图3-13) 图3-12 闹铃设计 图3-13 闹铃触发 15 4 基于Android平台的懒人闹钟软件实现 本章主要阐述了手机闹钟软件的功能模块的实现。 4.1 软件功能模块设计图 系统旨在建立Android系统的闹钟,主要有如下几个核心功能模块。如图4-1所 示。 主程序 首次安装 主界面,显 功能导航 闹铃和振 示当前时间 界面模块 模块 动设置 图4-1 功能模块 闹钟再响时长选择模块 关闭闹铃执行操作模块 4.2 首次安装模块 整个应用程序的入口,当用户第一次使用懒人闹钟软件时,会有一系列安装界面的导航,但当用户再次使用懒人闹钟软件时,就不会显示导航界面,而是直接进入用户首页面如下图4-2、图4-3、图4-4、图4-5所示。 图4-2 界面1 图4-3 界面2 图4-4 界面3 图4-5 界面4 16 1)具体实现 将初始化界面对应的ID用一个int类型的数组保存起来,同时将界面中图片 也用一个数组保存起来,再在布局中绑定事件,每当切换界面或者点击左右切换控件时,将数组中相对应的图片取出并显示出来。 2)公共类 Appstart:判断是否是首次安装软件代码。 GuideActivity:用户首次安装引导。 3)界面类 guide_item1:引导界面1; guide_item2:引导界面2; guide_item3:引导界面3; guide_item4:引导界面4; guide_item:第一次进入“懒人闹钟”的界面类。 4.3 用户主界面 程序的主界面,设置闹钟的入口;显示系统的当前的时间以及相关的系统信息,点击闹钟的图标,即可进入设置闹钟信息的界面。在这个界面显示所有的设置过的闹钟的信息,点击闹钟图标可以开启或者关闭闹钟,点击时间可以设置闹钟和选择闹钟要开启的天数。如图4-6和4-7所示 图4-6 主界面 图4-7 设置闹钟界面 17 1)具体实现 时间显示部分通过创建一个Date对象,通过Date的API进行操作,并最后显示于布局界面中。同时在添加闹钟控件绑定事件,同时调用方法中一个数组,用于存储闹钟设置好的一些相关信息。并最后通过Android自带的SQLite将这些数据进行存储。 2)公共类 DeskClockMainActivity:桌面闹钟业务代码。 SettingActivity:设置闹钟业务代码。 Alarm:添加闹钟,绑定单击事件。 AlarmAlert:调用显示工具类,用于显示。 AlarmAlertFullSreen:界面背景隐藏和显示,工具类。 AlarmInitReceiver:开机启动广播服务,根据时区改变时间。 AlarmReceiver:修改当前闹钟,绑定单击事件。 3) 界面类 alarm_clock:添加闹钟。 alarm_alert:显示当前的闹钟。 context_menu_header:主界面布局。 strings:存储布局中需显示的字段名。 styles:定义了一些用于显示的风格。 4.4 设置闹钟时间模块设计 此模块设为一个设置面板,点击数字进行设置闹铃时间,程序中是定义一个数组的形式进行表示,当按下其中某一个数字时,表示选择数组中的一个值,将此值保存。同时还可以选择一个星期中的闹铃开启的天数。如图4-8所示: 18 图4-8 时间设置 1)具体实现 将时间设置的数字用数字存储起来,通过‘+’、‘-’进行操作,同时通过添加闹钟时对应的ID进行数据库中的数据更新。 2)公共类 HandleSetAlarm:设置闹钟时间,并将设置的闹钟数据存储至数据库中。 RepeatPreference:添加重复周次业务代码,绑定单击事件。 4.5 闹钟铃声和振动模块 此模块主要的功能是选择闹钟的铃声,铃声的来源是系统中的,MP3格式的文件,凡是此格式的文件都可以作为闹钟的铃声。如图4-9所示。 图4-9 铃声设置 19 1)具体实现 通过Android中闹钟的一个API的方法,获得一个铃声的路径,得到路径下的格式匹配的音乐文件。 2)公共类 AlarmAlertWakeLock:闹钟振动和响铃业务代码。 SetAlarm:添加振动,绑定单击事件。 Alarms:闹钟响铃振动调用的工具类。 4.6 开始闹钟模块 针对当前人们起床难的问题,在关闭闹钟模块,需要答对一道算术题才可以关闭闹铃,这样就可以达到闹钟的目的,让闹钟的发挥更好的作用。点击暂停再响,10分钟后再次开启闹钟,点击取消,则关闭闹钟。如图4-10所示。 图4-10 开始闹钟 1)具体实现 编写一个延时方法,设置延时时间,在延时方法中调用铃声和振动等方法,同时在布局中显示出来。同时在暂停和取消中绑定事件,调用相应的处理方法。 2)公共类 SetAlarm:延时当前闹钟工具类。 AlarmProvider:设置一个新闹钟,调用工具类。 20 DontPresswithParentLayout:当用户没有对闹钟触发做出任何动作时,自动进入下一次提醒,工具类。 DigitaClock:,绑定单击事件,根据事件结果判断闹钟振动响铃后是否继续下一次触发。 AlarmLaxon:绑定点击事件,根据点击事件结果,觉定当前闹钟是否进入下一次。 AlarmPreference:铃声设置,绑定单击事件。 2) 界面类 set_alarm:闹钟设置属性参数。 alarm_time:闹钟所有的设置布局。 4.7 工程源代码结构图 在程序开发阶段,首先确定“Android平台懒人闹钟”的工程名为com.cn.yzh.deskclock.DeskClockMainActivity,工程源代码的结构下图4-11所示。 图4-11 工程源代码结构图 21 结 论 本软件在功能方面能实现对闹钟的基本增加、删除、修改的操作,以及一些警 报的设置。为用户的日常使用带来快捷方便。虽然功能上相当比较简单,由于技术方面的问题,部分原先预想的功能未实现,还有某些功能的实现可能也不尽如意。但经过两个多月的努力,Android平台懒人闹钟软件终于完成了。由于自己对JAVA的一定的掌握,使我对Android有了很大的信心。通过对Android系统的层次上分析以及借助Android提供的Intent机制的应用开发,增进了我对整个系统的了解。 本次毕业设计总体完成了一下任务: 1.查阅文献资料,了解Android开发的相关知识以及Android编程的技巧。学会如何使用Eclipse开发和调试程序。 2.软件平台的搭建,整个软件界面的设计。分析软件系统的组成,列出整个应用的几大功能模块。根据系统的需求,设计合适的数据存储方案,选择合适的数据库。 3.编写代码,实现闹钟设置中的数据存储、更新、删除等操作,以及闹钟的时间显示、闹钟设置等功能。然后进行代码的调试,并对代码和界面进行对比性的优化。 虽然,这个软件目前运行正常,但代码的耦合性太高,不便后期的维护。在整个开发的过程中构思方面也有很大的欠缺,用户操作界面还不够快捷方便,这些问题还需要继续改善。与此同时,该软件还可以进一步扩展,例如,添加类似于微信摇一摇的功能等,使软件功能更加强大,给用户带来更加舒适和方便的使用感。 22
因篇幅问题不能全部显示,请点此查看更多更全内容