1、 本 科 毕 业 论 文 文 档 基于 Android系统的音频笑话分享平 台 音频 、 漫画 分享子系统及 Webservice 模块 Audio Jokes Share Platform Based on Android :Audio Cartoon Sharing System and Webservice Module 姓 名: 学 号: 学 院:软件学院 系:软件工程 专 业:软件工程 年 级: 校内 指导教师: 年 月 摘 要 随 3G技术的普及 ,人们的娱乐方式也随之不断的发生变化,将传统娱乐方式融入移动平台的机制正变得越来越受到关注。近年来,手机流媒体业务已成为各大无线运营商的
2、新的增长点,用户数量逐年递增。基于移动流媒体服务的应用也越来越畅销。在以上背景下,课题组决定研究基于移动设备的的音频笑话分享平台。本课题 主要 实现了音频分享子系统和 平台 的 Web服务。 子系统可分为服务端和客户端两个部分。客户端主要完成音频的录制,试听和上传功能,服务端由上传模块和解码模块构成。客户端采用 MVC架构将界面Activity,控制 Service及实例层相分离。在音频录制模块中使用 Android系统MediaRecorder组件实现录制并利用 Android AIDL技术将 Activity和 Service分进程运行。进程间通过远程接口调用,使得界面和录音服务互不影响,
3、从而获得更好的用户体验。试听功能主要利用 Android系统的 MediaPlayer组件实现播放。漫画模块,主要采用三缓冲设计从服务端获取漫画图片的同时实现流畅播放,通过Apache提供的 HTTPClient组件实现音频文件的上传下载。服务器端主要基于Spring和 Hibernate框架, 管理服务对象和进行 O/R Mapping。在接收到笑话音频文件后会自动进入同步机制等用户的笑话信息上传后一起记录到数据库中,在此过程中为了计算音频文件的播放时间对音频文件进行解码,由于系统录制主要支持的是 AMR12.2 和 WAV格式所以解码主要针对 AMR格式和 WAV格式。解码模块根据各种格式
4、不同的特点和计算公式计算得出该音频文件相应的播放时间。 在服务端,通过 Axis发布 Web服务向客户端暴露服务,实现客户端与服务端的低耦合 ,从而减少服务端的冗余代码减少工作量并且提高系统的可扩展性。 关键词 : Android; SOA; HTTP Abstract With widely use of 3G technology. Profound changes take place in peoples way of entertainment. There is growing need in combining traditional amusement with mobile
5、platform. Streaming media has become a new business growth point of wireless operators with increasing users year-on-year. Against this backdrop, our group decided to realize a Internet joke share platform. This dissertation accomplishes the joke sharing system and web service. The system contains t
6、wo parts, namely the client and server. Client takes the responsibility of audio recording, listening and uploading, while the server end is constitute of uploading module and decoding module. The client end separate interface activity, control service and instances with MVC architecture. In the aud
7、io recording module, MediaRecorder of Android system is used to record audios , while Android AIDL technology is utilized to run Activity and Services in different processes . They then call each other with remote interfaces witho ut interference , rendering better experience to users. Audio listeni
8、ng function plays with Media Player in Android system. The uploading process makes use of HTTP Client component provided by Apache. The server end is based on Spring and Hibernate, managing service object and conducting O/R Mapping. After receiving joke audios a synchronous mechanism will be touched
9、 off, recording users information together into the database. During the process, audio files are decoded to calculate their play time. Decoding will be adaptable only to AMR and WAV formats which are supported by the recording module. The decoding module calculates play time in accordance with diff
10、erent features and formulations of different formats. Key words: Android; SOA; HTTP 1 目录 第一章 绪论 .1 1.1 引言 . 1 1.2 论文组织结构 . 2 第二章 系统相关技术概述 .3 2.1 AXIS . 3 2.2 Spring + Hibernate . 3 2.2.1 Spring . 4 2.2.2 Hibernate . 4 2.3 Android . 4 2.3.1 Android 应用程序框架 . 4 2.3.2 Android 应用程序组件 . 5 2.4 本章小结 . 7 第三章
11、 系统原理 .8 3.1 后台管理框架 . 8 3.2 Webservice 部分 . 8 3.3 本章小结 . 10 第四章总体设计 .12 4.1 系统概述 . 12 4.1.1 开发背景 . 12 4.1.2 系统模块图 . 13 4.1.3 基于 SOA 的系统架构 . 14 4.1.4 系统开发环境 . 15 4.1.5 系统运行环境 . 15 4.2 本章小结 . 16 第五章 系统详细设计 .17 5.1 服务端详细设计 . 17 5.5.1 Webservice 模块设计 . 17 5.5.2 上传模块 . 20 5.5.3 解码模块 . 24 5.2 客户端详细设计 . 27
12、 5.2.1 音频录制功能的实现 . 30 5.2.2 试听功能的实现 . 32 5.2.3 上传功能的实现 . 36 5.2.4 漫画模块 . 37 5.3 本章小结 . 39 第六章 系统配置与接口测试 .41 6.1 系统配置 . 41 Axis 的搭建 . 41 Spring 与 Hibernate 框架的整合 . 42 6.2 系 统运行结果 . 44 第七章 总结与展望 .47 7.1 论文总结 . 47 7.2 工作展望 . 47 参考文献 .49 致 谢 .51 3 Content Chapter 1 Preface . 1 1.1 Introduction .1 1.2 Pa
13、per Organization.2 Chapter 2 System-related Technical Overview . 3 2.1 AXIS.3 2.2 Spring + Hibernate .3 2.3.1 Spring .4 2.3.2 Hibernate .4 2.3 Android.4 2.3.1 Android Application Framework .5 2.4 Summary .7 Chapter 3 The Theory of The System . 8 3.1Server Management Framework .8 3.2 Webservice Modul
14、e.8 3.3 Summary .10 Chapter 4 Concept Design . 12 4.1 System Description .12 4.1.1 Background .12 4.1.2 Modules.13 4.1.3 Architecture of System Based on SOA .14 4.1.4 Development Environment .15 4.1.5 Runtime Environment .15 4.2 Summary .16 Chapter 5 Detailed Design . 17 5.1 Server .17 5.5.1 Webserv
15、ice Module Design .17 5.5.2 Upload Module Design .20 5.5.3 Decode Module Design.24 5.2 Client .27 5.2.1 Recorder Module.30 5.2.2 Player Module .32 5.2.3 Uploader Module .36 5.2.4 Cartoon Module .37 5.3 Summory .39 Chapter 6 Configuration And Testing. 41 6.1 Configuraiton .41 Axis .41 Spring And Hibe
16、rnate.41 6.2 System Running State .42 Chapter 7 Summory And Outlook . 47 7.1 Summory .47 7.2 Work Prospects.47 References. 49 Acknowledgements . 51 第一章 绪论 1 第一章 绪论 1.1 引言 随着移动通信与 Internet 之间越来越紧密的联系,整个世界正在快速地向移动信息社会演变 1。此外全球 3G 用户数量的增加,无线网络的覆盖面不断加大,加之智能手机处理能力的迅猛发展。手机流媒体服务在手机中有着越来越广泛的应用。据统计全球移动用户已经超过
17、 15 亿,其中互联网用户超过 7 亿,我国移动通信用户总数超过 3.6 亿,其中互联网用户超过 1 亿。同时网络分享的概念已经深入人心,很多大型网站也纷纷推出分享服务,例如针对大学生的校内网,针对视频的优酷、土豆等。并且这些网站都已经推出自己的手机客户端来抢占手机用户市场。可以想到以智能手机为客户端,以网络流媒体为形式,以专项领域的资料分享为服务模式的流媒体服务将成为未来的主流。 面向服务的 体系架构 SOA,作为新一代的软件开发架构对软件设计模式产生了深远的影响。 SOA 通过建立可组合的、可重复的服务体系来减少 IT业务冗余,通过松耦合的项目组织方式提高 软件产品质量并加快项目开发的进程
18、;且不受调用平台的约束。它的高可复用性、灵活性以及可扩展性和可用性,使其非常适合用于跨平台的开发 2。 Android 是 Google 于 2007 年 11 月 5 日 发布 的基于 Linux 平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,是首个为移动终端打造的真正开放和完整的移动软件。 其通过丰富的网络功能、并行多任务环境以及“无界限的应用程序”等特色收到业界厂商和广大消费者的广泛关注 3。 Android 在中国的前景十分广阔 。 在国内, Android 社区十分 红火,这些社区为 Android 在中国的普及做了很好的推广作用。国内厂商和运营商也
19、纷纷加入了 Android 阵营,包括中国移动,中国联通,华为通讯,联想等 巨头。中国移动 Ophone 平台使用的操作系统 OMS 就是在 Android 系统基础上定制的。 同时不仅仅局限于手机,国内厂家也陆续推出了采用 Android 系统的基于 Android 音频笑话分享平台 音频、漫画分享子系统及 Webservice 模块 2 MID 产品 。 可以 预见的是, Android 也将会被广泛应 用到国 产智能 手机上 ,进一步扩大 Andorid 系统的应用范围。 1.2 论文组织结构 本论文共分为 七 章,论文首先 介绍了系统所使用的技术和原理,让读者能在技术层面上全面的了解整
20、个系统,接着 在系统实现方面,论文 介绍了系统的概要设计、详细设计、系统配置等内容最后论文给出了针对整个系统的总结与展望。 论文具体安排如下: 第一章 简要介绍了当前在移动流媒体领域的发展趋势,流媒体服务系统架构及最新的手机应用开发平台。 第二章 概述系统中所使用的各项技术 及各项技术的国内外发展现状 。 第三章 介绍了本文使用的后台框架的工作原理和 SOA 基础 Webservice 的工作流程和机制 。 第四章 介绍了系统的总体设计分为服务端和客户端两个部分包括系统模块图、系统架构选择,系统平台和开发环境选择等 。 第五章 介绍了系统的详细设计包括各个模块的类图、顺序图,具体技术点的详细阐
21、述等 。 第六章 介绍了系统的配置、运行结果和接口测试的相关信息 。 第七章 最后对论文全部内容进行了总结并给出了对项目未来的展望。第二章 系统相关技术概述 3 第二章 系统相关技术概述 2.1 AXIS Axis本质上 是一个 SOAP 引擎,提供创建服务器端、客户端和网关 SOAP操作的基本框架。 Axis 并不完全是一个 SOAP 引擎,它还包括:一个独立的SOAP 服务器 和 一个嵌入 Servlet 引擎(例如 Tomcat)的服务器。 此外它还包括如下特性 : 1、 Axis 支持 WSDL。 2、 Axis 提供转化 WSDL 为 Java 类的工具。 3、 Axis 提供 TC
22、P/IP 数据包监视工具。 整个 Axis 就是关于处理 Message 的。当核心 Axis 处理逻辑在运行的时候,按顺序激活一系列的 Handlers。它们的顺序由两个因素来决定 -部署配置以及 engine 的类型 (客户端 /服务器端 )。传递到每个 Handler 调用的对象叫做 MessageContext。 MessageContext 是一个结构体,包含很多重要的部分:请求消息、响应消息和很多属性 4。 通过这种机制 Axis 实现了异步的服务模式。 2.2 Spring + Hibernate 系统 采用主流的 J2EE 框架 Spring、 Hibernate 轻量级框架作为后台管理系统的框架 。同时采用 log4j 来控制日志的生成和管理。系统 通过 Web Service 向客户端提供数据服务 。 图 2.1 Spring Hibernate 框架示意图