当前位置:文档之家› JAVA项目开发实训

JAVA项目开发实训

Java项目实训设计说明书姓名:王伟学号: 1160122215指导教师:张志斌设计要求第一章功能介绍 (4)1.1功能描述 (4)1.2 功能特点 (5)第二章系统的设计实现 (6)2.1 结构设计 (6)2.2 设计实现 (7)2.2.1 具体实现 (7)2.2.2 代码实现 (9)总结 (12)参考文献 (13)电蚊香软件设计说明书第一章功能介绍1.1功能描述当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,现在的市场上主要有三个手机操作系统,Windows mobile,symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统有最大的发展前景。

那么能否在手机上拥有自己编写的个性音乐播放器呢?能的,谷歌Android系统就能做到。

本文的电蚊香就是基于谷歌Android手机平台的应用软件。

人类可以听见的声音频率非常有限,约在20~20000HZ,而蚊子也有其可听见的声音频率,如果能播放一段声音让蚊子厌恶,导致蚊子远离,而人类又听不见,那么电蚊香的程序理论就可能实现了。

这个电蚊香程序,既是实验以手机喇叭以蚊子讨厌的频率播放,并让这个播放声音的工作放在后台Service当中,并在Activity里设计一个开关按钮可以启动与关闭防蚊声音的播放,由于播放声音的程序是在Service里执行,所以即便关闭了Acitivity,声音仍会持续,为了提醒自己请将防蚊装置的开关图标显示于Notification Bar当中。

关于声音文件,存放在资源文件里面的位置如下,你可以把驱蚊的声音换成自己喜欢的音乐,但是一般用MP3格式的音乐,用于实验。

本项目是一款基于Android手机平台的应用软件,使Android手机拥有个性的多媒体软件,使手机显得更生动灵活化,与人们更为接近,使人们的生活更加多样化。

也使设计者更加熟练Android的技术和其它在市场上的特点。

1.2 功能特点传统的电蚊香,是利用一个烤箱,然后把特制的驱蚊药片放在烤箱上,从而达到一个驱除蚊子等害虫的效果,这种电蚊香不仅费电而且对人类的身体会产生有害的影响,如果长期使用会导致自己的免疫能力下降,鼻子失灵等后遗症,后果严重的可能导致癌症等可怕的疾病,这种手机版的电蚊香,从根本解决了此问题。

随着手机功能的不断发展,各种应用程序应运而生,为了能提高自己的JAVA水平和结合时代的发展,所以选择了现今比较流行的安卓软件设计作为题目,因为安卓是以JAVA为基础的系统,所以两门科目具有关联。

而且安卓比JAVA更具有现在社会的流通性。

一般在学校夏天的时候学校不让使用喷雾器杀虫剂和各种蚊香,这样容易引起火灾,并且存在安全隐患,然而夏天的时候又需要开窗,所以宿舍蚊子都比较低,设计这个手机版的电蚊香不仅解决了蚊虫叮咬的麻烦,还不存在安全隐患,而且安卓手机比较常见,每个同学都可以用,用法简单,等等各种特点。

这个蚊虫驱蚊系统里面的音乐是可以随时更换的,有的时候可以去除,其他的动物比如蟑螂等,还有一些自己厌恶的蚊虫,可以上网找到其他动物讨厌的声音放到里面效果比较明显。

如果经常更换内置音乐还可以使使用效果更加明显,因为有一些蚊子可能会对声音产生抗体,经常更换音乐效果更佳,因为此程序设计简单,更换声音也很简单,所以可以做到随时修改,随时使用的灵活作用,这就是安卓程序的灵活之处。

第二章系统的设计实现2.1 结构设计Android程序=Activity+xml+res+string.xmlAndroid支持使用Java作为编程语言来开发应用程序,而Android的Java开发方面从接口到功能,都有层出不穷的变化。

考虑到Java虚拟机的效率和资源占用,谷歌重新设计了Android的Java,以便能提高效率和减少资源占用,因而与J2ME等不同。

Android结构其中Activity等同于J2ME的MIDlet,一个 Activity 类(Class)负责创建视窗,一个活动中的Activity就是在 foreground模式,背景运行的程序叫做Service。

两者之间通过由ServiceConnection和AIDL连结,达到复数程序同时运行的效果。

如果运行中的 Activity 全部画面被其他 Activity 取代时,该 Activity 便被停止,甚至被系统清除。

View等同于J2ME的Displayable,程序人员可以通过 View 类与“XML layout”档将UI放置在视窗上,Android 1.5的版本可以利用 View 打造出所谓的 Widgets,其实Widget只是View的一种,所以可以使用xml来设计layout,HTC 的Android Hero手机即含有大量的widget。

至于ViewGroup 是各种layout 的基础抽象类,ViewGroup之内还可以有ViewGroup。

View的构造函数不需要再Activity中调用,但是Displayable的是必须的,在Activity 中,要通过findViewById()来从XML 中取得View,Android的View类的显示很大程度上是从XML中读取的。

View 与事件息息相关,两者之间通过Listener 结合在一起,每一个View都可以注册一个event listener,例如:当View要处理用户触碰的事件时,就要向Android框架注册View.OnClickListener。

另外还有Image等同于J2ME的BitMapAndroid是以Linux为核心的手机操作平台,作为一款开放式操作系统,随着Android的快速发展,如今已允许开发者使用多种编程语言来开发Android应用程序。

利用安卓程序的灵活性可以使电蚊香比较好的发挥自己的功能,并且死机情况较少,可以延长自己手机的使用寿命。

Activity与Service之间失去焦点关联,所以为了随时取得访问开关的状态,这里将防蚊开关的FLAG设定为SharePreferences(press), 使之在Service里判断防蚊开关之后,开始播放声音、如果一旦发现防蚊开关为关闭,则停止播放声音。

2.2 设计实现2.2.1 具体实现电蚊香软件的界面就是如下图,为了给用户足够的空间把软件的菜单设置为menu 菜单,因为才但不常用,并且作为这个界面menu菜单是最适合的选择。

主界面的Menu 菜,如下图2所示。

图1. 电蚊香软件的主界面图2.主界面menu菜单当点击离开的时候自动退出电蚊香软件,并且关闭声音,这样可以使用户不需要电蚊香的时候关闭电蚊香可以达到省电的目的。

1、电蚊香关闭界面图3 图4在图3当想在打开电蚊香,关闭电蚊香时,可以选在此功能,这样可以在开启电蚊香的时候关闭声音。

进入图4这个页面的时候如果选择缺点则可以离开电蚊香程序,选择取消的时候可以返回到电蚊香用用界面继续使电蚊香工作。

2.2.2 代码实现图5 图6当开启到这个电蚊香开启的时候内置音乐必须开始播放而在OFF关闭的时候为了达到省电的效果必须让这个内置音乐叨叨关闭的效果如图6。

因为本程序要涉及到播放声音这个功能,所以必须要内置一个声音播放器,一达到驱蚊的效果,此图是本程序的主观界面,Android的每一个可视化界面,都有其的唯一的布局配置文件,该文件里面有各种布局方式,和各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对各配置文件进行读取。

这样就可以形成不同的可视化界面和炫丽的效果。

播放器主界面是一个Activity,Android工程在每个activity启动的时候会首先执行Oncreate()方法,如下代码:@OverridePublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(yout.play_rack);}该方法主要执行界面的初始化操作,Activity有个设置布局的方法:Context.setContentView(layoutResID),参数为资源ID,该Id在工程目录res/layout 下,主界面布局文件名为play_rack。

下面为play_rack.xml布局文件代码结构如下:<?xml version="1.0" encoding="utf-8"?><AbsoluteLayout><LinearLayout ></LinearLayout><SeekBar></SeekBar><LinearLayout></LinearLayout></AbsoluteLayout>图7当电蚊香想实现多种声音播放的功能时如图7这样(因为这样可以降低蚊子对此电蚊香的抵抗力比较推荐这种方法),就是用了这种办法本程序用了两个音乐:Android的线程的开始是通过Handler类来进行的,Handler类是线程与线程之间通信的桥梁,实现Runnable接口会实现里面的run方法,当线程开始的时候,Runnable中的run方法会向Handler发一个Message消息,这样,Handler类就可以接收到run方法发送过来的不同的消息进行不同的代码处理。

这样就达到了各线程之间的通信。

要启动一个线程调用Handler的方法postDelayed(Runnable,1000)表示线程睡眠时间是1000ms 。

myService继承自ServicePublic class myservice extends Service{Private Sering my_prefs="Mosepre";Priavte NotificationManager notManager;Private int notiid=99;Prvate mediaplayer myplayer;}此处的Myservice类继承自servic类,在servic的哦你create()时,通过Shardpreferenceer的手法驱除防蚊开关的F拉个(0为关闭;1为启动),接着让服务处理Notificatinon及播放防蚊声音事件。

建立点击Notification留言条时会运行activityIntent notifyIntent=new Inter(this,dianwenxiang.class);建立Notifyintent.seflage作为设置递延运行的(Intent.flagactivtty_new_task);建立Pending inter activity并且设置相关参数设置pendingIntent appIntent=pendingintent.getActivity并发出默认声音myNoti.setlatesteventionf(this,"防蚊服务启动",icontext,appintent)AlertDialog.Builder(EX10_08.this).setTitle("Message").setMessage("确定要离开吗?").setPositiveButton("确定",此处代码为界面控制代码当这个代码点击确定或者点击离开后,就会自动退出这个程序并且关闭声音,电蚊香也就自动关闭了。

相关主题