版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于3G网络软件开发目录中文摘要 31、研究3G的目的 42、3G基本原理及分类 43、基于3G的软件开发 44、软件的运行环境 84.1、单CPU和双CPU 94.2、软件的组成 94.3、操作系统 104.4、协议栈 104.5、数据业务 104.6、本地存储 104.7、驱动程序 114.8、用户界面 114.9、其它应用 114.10、的核心技术 115第三方软件 116、搭建开发平台 126.1安装JDK 126.2安装Eclipse及SDK 136.3设置环境变量 136.4创建android虚拟设备(AVD) 147、3G软件开发流程 157.1、需求分析 157.2、概要设计 157.3、详细设计 157.3.1实现基础功能 157.3.2实现Activity 187.3.3实现Service 207.4运行结果: 228、心得体会 238.1、1071000092吴岩妍 238.2、1071000093谢晶晶 238.3、1071000096于媛 249、3G网络的未来前景 2410、参考文献 2411分工 24
中文摘要AndroidEmulator是一款功能非常齐全的模拟器,本、通话等功能都可进行模拟。甚至其内置的浏览器和GoogleMaps都可以联网。用户可以使用键盘输入,单击模拟器按键输入,甚至还可以使用鼠标单击、拖动屏幕进行操作。AndroidEmulator是一款功能非常齐全的模拟器,本、通话等功能都可进行模拟。甚至其内置的浏览器和GoogleMaps都可以联网。用户可以使用键盘输入,单击模拟器按键输入,甚至还可以使用鼠标单击、拖动屏幕进行操作。随着移动设备的日益完善,我们大家都已经有了在上听自己喜欢歌曲的习惯。现在随着3G在中火以及世界的普及,Wifi的扩展,速度问题马上即可解决。随着YOBO的迅速崛起和不断完善,使其成为我们网上听歌、收藏歌曲和推荐歌曲的理想选择。关键词:Android,YOBO1、研究3G的目的随着移动通信的迅速发展,人们在满足了语言通信业务的基础上,对宽带化、智能化、个人化移动多媒体服务的需求日益迫切,第三代移动通信的发展为此创造了条件。第三代移动通信相对于第二代移动通信,有更高的接入速率、更好的业务支持能力、更好的漫游特性、更高的频谱效率以及更低的电磁辐射特性,开始获得越来越广泛的应用。第三代移动通信从开发、标准制定到现在,有了十多年的历史,形成了三大主流标准——WCDMA、TD-SCDMA和cdma2021,各种标准已趋稳定,进入了大规模商用应用阶段,在我国也将开始大规模的部署,向等待了多年的广大用户提供了第三代移动通信业务,给人们在生活、工作中带来新的体验,促进社会的发展和进步。自2001年5月ITU公布确定3G标准以来,世界各国先后启动了发展3G的脚步。截止至2021年7月,全球己颁发了130张3G许可证,除一些获得许可证的公司由于种种原因退还了许可证外,有效的3G许可证达到125张。在这125张3G许可证中,选择WCDMA的有117个运营商,CDMA2021的有3家运营商,另外还有加拿大的5张PCs(数据来源:信息产业部电信研究院信息所统计数据)。许可证的发放为3G发展提供了先决条件,然而三年以来3G的商用情况并不乐观,直至2021年初,欧洲大部分运营商都只是象征性地开通了商用服务的实验网,真正大规模开通商用服务的运营商很少。而3G发展最早、最快的的日本和韩国,也一度在3G的发展过程中遇到各种困难,这使得人们对3G的前景产生了疑虑,是否应该发展3G,如何发展3G,成为影响我国电信业发展的焦点问题之一。2、3G基本原理及分类到目前为止,国际电信联盟ITU批准了四个标准作为全球第三代移动通信系统标准,它们是:WCDMA、cdma2021、TD-SCDMA和WIMAX。其中,TD-SCDMA是由我国提出的标准,目前主要在我国和少部分第三世界国家使用。Cdma2021是北美提出的标准,目前主要在美国等少部分国家使用。WCDMA是由欧洲提出的标准,以欧洲为主的世界上大多数国家都使用这一标准,是目前全球使用最广泛、运营经验最丰富、产业链最完善的3G通信系统。WiMAX是目前使用国家最少的标准。因此,WCDMA、cdma2021、TD-SCDMA成为了全球主流的3G移动通信标准。3、基于3G的软件开发3G对终端用户带来最直接的体验,是上网速度的提升,尤其是对于终端而言,是一种全新的上网体验。3G网络的使用,为移动互联网的发展注入新的活力,在未来也将极大地推动中国移动互联网的发展。目前由于中国处于3G商业的初期,3G用户量还未形成规模,但通过调查数据分析,上网用户中已有大量的潜在3G需求。支持3G的智能终端主流有Symbian,windowsmobile,android和iPhoneOS等。各个主流操作系统比较及近几年发展如下:Symbian市场占有份额:★★★★☆技术跃升幅度:★★★☆看点和重要性:★★★☆多年来Symbian系统一直占据智能系统的市场霸主地位,系统能力和易用性等各方面已经得到了市场和用户们的广泛认可。GoogleAndroid市场占有份额:★★☆技术跃升幅度:★★★★☆看点和重要性:★★★★☆Android的出现并强势发展是近期行业当中引人注目的大事,Google介入领域的方式出乎所有人的意料,并非是之前人们所猜测的智能,而是联合30多家技术和无线应用领域当中的领军厂商所组成的开放式移动设备平台。WindowsMobile市场占有份额:★★★★技术跃升幅度:★★★☆看点和重要性:★★★★WindowsMobile(WM)系统源自Windows桌面系统,有着桌面应用的血脉,因此无论是界面设计还是功能应用都几乎和PC机如出一辙,在早期推广的时候,这也是大量用户投入到WM旗下的原因。PalmOS市场占有份额:★★技术跃升幅度:★★☆看点和重要性:★★☆PalmOS作为一款嵌入式操作系统,用于PDA等专业设备上确实是它的强项。但是,在Palm发展11年之后,已经日益进入寒冬期,或许捍卫中高端专业领域才是它的正道。Windowsmobile是Microsoft用于PocketPC和Smartphone的软件平台。WindowsMobile将熟悉的Windows桌面扩展到了个人设备中。WindowsMobile是微软为手持设备推出的“移动版Windows”,使用WindowsMobile操作系统的设备主要有PPC、PDA、随身音乐播放器等。WindowsMobile操作系统有三种,分别是WindowsMobileStandard、WindowsMobileProfessional,WindowsMobileClassic。目前常用版本WindowsMobile6.1,最新的版本是6.5。WindowsMobile掌上电脑和的主流硬件配置:基于ARM构架的CPU,主频:195-624Mhz,主要芯片厂商:Intel,TexasInstruments,Samsung,Qualcomm等,内存:64-288MBRam(用于程序运行),128-1GBRom(用于第三方程序及用户文件储存),显示屏:240x320、480x640和480×800,6.5万色,2.2-4.0英寸,扩充卡:MicroSD或SD,SDHC,高端机型内置WiFi无线网络接收模块,GPS卫星接收模块,FM收音机接收模块,3G或3.5G高速网络,另配有红外、蓝牙及用于和电脑同步用的迷你USB接口,host-usb能直接读取U盘里的文件,通过驱动可以实现外接鼠标、键盘。WindowsMobile的原形为WindowsCE,后开发出适用于及其他掌上设备操作系统,之后又将其整合于一起。在WindowsMobile2021版本之前操作系统名称为PocketPC、SmartPhone|SmartPhone等,后改为现名。目前最新版本为WindowsMobile6.5。有用於掌上电脑的WindowsMobileforPocketPC、用于的Smartphone|WindowsMobileforSmartphone、PocketPCPhone|WindowsMobileforPocketPCPhone和用于移动媒体的PortableMediaCenter三大版本。20世纪末该操作系统称为:WindowsCE2.11,Palmsize-PC,后开发出PocketPC2021(WindowsCE3.0),WindowsMobile2021(WindowsCE4.2)和WindowsMobile2021SE(WindowsCE4.21),SE版支持480x640的VGA显示屏,并可水平旋转显示画面。两种版本都加入对WiFi无线网络的支持。2021年9月5日微软推出WindowsMobile5.0,内部名称Magneto,基于WindowsCE5.0,主要更新:改进的存储系统,电池在完全耗尽后仍能保留第三方程序和用户文件,内置部分.netframework2.0特性,加入PowerPoint软件,Word和Excel支持图片式统计图形,虚拟GPS端口,可自动指定GPS程序的接入,简化了蓝牙和WiFi的设置,WindowsMediaPlayer版本提高到10.0。2021年2月12日微软在巴塞罗那推出WindowsMobile6.0,内部名称Crossbow,内核为WindowsCE5.2,其操作界面和WindowsVista相似,分三个版本:1,WindowsMobileClassic,传统掌上电脑,PDA2,WindowsMobileStandard,即智能,SmartPhone3,WindowsMobileProfessional,掌上电脑型智能目前最新的版本是windowsmobile6.5.WindowsMobile7预计2021年上半年。此次推出6.5版本的微软拥有新的用户界面和更为丰富的浏览体验,并推出了“MyPhone”和“Windows市场”(WindowsMarketplace)两项新服务。前者可以实现用户短信、图片、视频、联系人等的网络同步;后者是微软推出的新网店,旨在为用户通过和网络提供应用软件。在用户有新邮件、短信、未接来电和日程安排时,WindowsMobile6.5主屏将通过提供“仪表板”式体验实现用户的重要信息更新。此外,WindowsMobile6.5还拥有新的触摸屏界面,可便捷进行单指操作,以及最新的IE浏览器。windowsmobile相对应的智能操作系统还有S60系统以及苹果和谷歌的操作系统。目前诺基亚的S60系统占了半壁江山,其次就是WINDOWSMOBILE。SymbianOS由诺基亚、索尼爱立信、摩托罗拉、西门子等几家大型移动通讯设备商共同出资组建的一个合资公司,专门研发操作系统。现已被NOKIA全额收购。而Symbian操作系统的前身是EPOC,而EPOC是ElectronicPieceofCheese取第一个字母而来的,其原意为"使用电子产品时可以像吃乳酪一样简单",这就是它在设计时所坚持的理念。Symbian操作系统在智能移动终端上拥有强大的应用程序以及通信能力,这都要归功于它有一个非常健全的核心-强大的对象导向系统、企业用标准通信传输协议以及完美的sunjava语言。Symbian认为无线通讯装置除了要提供声音沟通的功能外,同时也应具有其它种沟通方式,如触笔、键盘等。在硬件设计上,它可以提供许多不同风格的外型,像使用真实或虚拟的键盘,在软件功能上可以容纳许多功能,包括和他人互相分享信息、浏览网页、传输、接收电子信件、以及个人生活行程管理等。此外,Symbian操作系统在扩展性方面为制造商预留了多种接口,而且EPOC操作系统还可以细分成三种类型:Pearl/Quartz/Crystal,分别对应普通、智能、HandHeldPC场合的应用。基于Symbian的UI,目前根据人机界面的不同,Symbian体系的UI(UserInterface用户界面)平台分为Series60、Series80、Series90、UIQ等。为了更强力地支持Symbian平台,Nokia在2021年成立NokiaMobileSoftware新部门,全力发展移动通信相关的软件。为了让厂商有更多的选择以投入Symbian的开发,Nokia发展出三种不同的用户界面:Series60/80/90。Series60主要是给数字键盘用,Series80是为完整键盘所设计,Series90则是为触控笔方式而设计。另外一个重要的平台是由Symbian百分之百转投资的UIQTechnology所开发出来的UIQ。以下为Nokia开发的UI平台介绍:Series20/30多为低端所采用,Series40多为中端商务所使用支持Java的扩展,Series60/80/90是为采用Symbian系统的中高端智能和高端商务而设计。Series20:84x48Pixels/wDisplay,NokiaOSSeries30:96x65Pixels/wDisplay,NokiaOSSeries40:128x128Pixel,NokiaOS型号如:6230,7210Series60:机型如:5320xm.6122c.6220c...基本定位于单手操纵设备,至今为止,分为第一版第二版和第三版还有最新的第五版,第五版为触屏版本。Series80:NOKIA把这个系列的机器叫做Communicator,在型号上只有一个系就是9系。使用的是SymbianOSCrystal平台。它代表了NOKIA最强的技术,每代都是当时NOKIA所有最高级技术的集合体。Series90:使用640X320的大屏幕,除了很少的几个功能/方向键以外完全是触摸屏控制。Symbian提供了灵活的用户界面(UseinterfaceUI),来适应不同的用户需求。目前基于Symbian的用户界面有很多,主要是Series60/80/90以及UIQ,这其中从功能上来说UIQ最为强大,同时这也是更加贴近智能范畴的系统。这种UI我们都可以理解为Symbian之上的Shell,它对Symbian的界面进行不同的“包装”,同时增加了一些常用的应用程序。Symbian作为一款已经相当成熟的操作系统,具有以下的特点:第一,提供无线通信服务,将计算技术与技术相结合。第二,操作系统固化。第三,相对固定的硬件组成。第四,较低的研发成本。第五,强大的开放性。第六,低功耗,高处理性能。第七,系统运行的安全、稳定性。第八,多线程运行模式。第九,多种UI,灵活,简单易操作。以上总结的九点,并不代表说为SymbianOS所独有,只是SymbianOS将其这些特点突出,并且充分的这些特点发挥了优势,让其更好的为用户服务。Android一词的本义指“机器人”,同时也是Google于2021年11月5日宣布的基于Linux平台的开源操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成,号称是首个为移动终端打造的真正开放和完整的移动软件。2021年9月22日,美国运营商T-MobileUSA在纽约正式发布第一款Google——T-MobileG1,支持WCDMA/HSPA网络,理论下载速率7.2Mbps,并支持Wi-Fi。HTCG1操作界面Android是Google开发的基于Linux平台的开源操作系统。它包括操作系统、用户界面和应用程序——移动工作所需的全部软件,而且不存在任何以往阻碍移动产业创新的专有权障碍。iPhoneOS或OSXiPhone是由苹果公司为iPhone开发的操作系统。它主要是给iPhone和iPodtouch使用。就像其基于的MacOSX操作系统一样,它也是以Darwin为基础的。iPhoneOS的系统架构分为四个层次:核心操作系统层(theCoreOSlayer),核心服务层(theCoreServiceslayer),媒体层(theMedialayer),可轻触层(theCocoaTouchlayer)。系统操作占用大概512MB的存储空间。iPhoneOS的用户界面的概念基础上是能够使用多点触控直接操作。控制方法包括滑动,轻触开关及按键。与系统互动包括滑动(swiping),轻按(tapping),挤压(pinching)及旋转(reversepinching)。此外,通过其内置的加速器,可以令其旋转装置改变其y轴以令屏幕改变方向,这样的设计另iPhone更便于使用。iPhone和iPodTouch使用基于ARM架构的中央处理器,而不是苹果的麦金塔计算机使用的x86处理器(就像以前的PowerPC或MC680x0),它使用由PowerVR视屏卡渲染的OpenGLES1.1.。因此,MacOSX上的应用程序不能直接复制到iPhoneOS上运行。他们需要针对iPhoneOS的ARM重新编写。但就像下面所提到的,Safari浏览器支持"Web应用程序"。从iPhoneOS2.0开始,通过审核的第三方应用程序已经能够通过苹果的AppStore进行发布和下载了。由于iPhone是基于一个能够在MacOSX中发现的XNU核心的一个变种,正在发展中的iPhone工具也是基于Xcode。和Xcode工具一样,SDK开发工具中包含的iPhone模拟器用来iPhone的外观和感觉在开发人员的电脑上。最初它被称为阿斯模拟器(AspenSimulator),它被重新命名于BETA2版中发布的SDK。该SDK需要拥有英特尔处理器且运行MacOSXLeopard系统的Mac才能使用。其他的操作系统,包括微软的Windows操作系统和旧版本的MacOSX都不被支持。CoreLocation是MacOSX中其中一个软件框架。它主要用来储存应用程序在iPhoneOS2.0检测设备的位置。4、软件的运行环境可以被看作袖珍的计算机。它有CPU、存储器(flash、RAM)、输入输出设备(键盘、显示屏、USB和串口)。它还有一个更重要的I/O设备,那就是空中接口。通过空中接口协议(例如GSM、CDMA、PHS等)和基站通信,既可以传输语音、也可以传输数据。
的CPU一般不是独立的芯片,而是基带处理芯片的一个单元,也称作CPU核。基带处理芯片是的核心,它不仅包含CPU核、DSP核这些比较通用的单元,还包含通信协议处理单元。通信协议处理单元和协议软件一起完成空中接口要求的通信功能。
随着芯片技术的不断发展,越来越多的外围电路可以被集成到基带处理芯片中,例如BAP,即基带模拟处理器。这样才可能越做越小、越做越便宜。4.1、单CPU和双CPU很多只有一个CPU,也就是基带处理芯片中的CPU核。在这个CPU上既要跑通信协议,又要实现用户界面(称作UI或MMI)。当然DSP会分担一些计算量繁重的工作,例如语音编解码、安全层的各种算法等。
在市场推动下,功能在不断发展。摄像头、MP3、蓝牙这些功能可以依靠硬件,对CPU的压力还不是很大,但java虚拟机、嵌入式浏览器等应用软件就会对CPU资源有较高的要求。
单CPU的首要任务是完成通信协议。通信协议软件有着很精确的定时要求,如果这个CPU还要兼顾很多应用软件的话,就难免吃力。于是双CPU应运而生。
顾名思义,双CPU就是有两个CPU的,一个CPU专心把通信协议做好,另一个CPU负责UI、java虚拟机、嵌入式浏览器等应用功能。两个CPU可以做在一个芯片里面,也可以分开。
市场上的实际情况是,很多设计公司(DesignHouse)没有基带处理芯片的开发能力,他们购买国外公司的模块,自己在外面再加一块CPU。模块跑通信协议,自己加的CPU跑UI和应用软件,两者通过串行口通信。很多DesignHouse也会购买国外方案商的开发板级方案,自己做PCB、软件上改改UI和外设驱动。
市场上的智能基本上全是双CPU方案,WindowsCE、SmartPhone、WindowsMobile、Symbian、嵌入式Linux全是运行在第二块CPU上的。这些商业操作系统无法和无线通信协议软件集成到一块CPU上。双CPU的功能比较多,但它们一般体积大,耗电多,成本高。现在市场上的大部分还是单CPU的。
目前的大部分应用,例如Java、BREW、WAP、邮件、摄像头、闪存、MP3、蓝牙,在单CPU方案里都能实现。不管3G、4G如何发展,小巧、实用、低成本的单CPU方案总会占据较大的市场份额。4.2、软件的组成软件和PC机软件一样从中断向量表开始,因为比较小,看上去更加清晰。中断向量表的第一个跳转指令当然是跳到复位的处理程序,后面是中断处理、错误处理的跳转指令。一上电,就跳转到复位的处理程序,开始检查内存、初始化C运行环境,然后创建第一个任务。这个任务会按顺序创建、启动其它任务。绝大多数程序都是多任务的,但也有一些小灵通的协议栈是单任务的,没有操作系统,它们的主程序轮流调用各个软件模块的处理程序,模拟多任务环境。
软件可以粗略地分成启动模块、操作系统、协议栈、数据业务、本地存储、驱动程序、用户界面和其它应用。启动模块前面已经说过了,下面简单介绍其它部分。4.3、操作系统操作系统在软件只占很小一部分。它的主要功能就是提供多任务调度、通信机制。有的操作系统会提供动态内存分配,定时函数,但这些都不是必须的。例如需要动态内存分配的模块,可以自己管理一个内存池,这样更易于隔离模块和预测内存需求。
大多数的操作系统都是一个很小的内核,例如REX、HIOS等。高通REX的源代码连C代码加汇编也不过一千多行,编译后不过是2、3K的代码量。而一般软件有几百到上千个源文件、超过一百万行的代码。4.4、协议栈协议栈是软件最复杂的部分,它的复杂性在于它和基带处理芯片的设计密切相关。只有具备芯片设计能力的企业才可能开发协议栈。协议栈会使用基带处理芯片的所有资源。4.5、数据业务数据业务主要有两种:在前一种,相当于一个调制解调器,PC机通过上网,网络协议全在PC机上,提供数据链路。另一种就是嵌入式数据业务,内部包含TCP/IP/PPP等协议,有时还要实现HTTP和嵌入式浏览器。4.6、本地存储都有本地存储功能,存储本、短消息、用户设定等。一般都有一个基于flash的文件系统。早期的存储是基于EEPROM的。4.7、驱动程序硬件驱动一般指外设驱动,不过有的外设已经被集成到基带处理芯片中了。驱动程序包括键盘、电源管理模块、LCD、flash、RTC、串口、USB、SIM卡或UIM卡、射频驱动等。4.8、用户界面用户界面(UI)又称作人机界面(MMI),它负责和用户的交互,在必要的时候调用其它模块的功能。除了的必备功能外,用户界面也可能包含一些相对独立的应用程序,例如日程表、游戏等。4.9、其它应用其它应用包括Java虚拟机、WAP浏览器、邮件软件等,是一些比较大,又相对独立的应用模块。基本上讲完了。大家肯定看得挺没意思吧。这些程序和微软的longhorn、metedata有什么关系呢?程序绝大部分是用C语言写的。但对于做应用软件的程序员要求具备面向对象、设计模式的思维能力,然后用C语言实现出来。
高通的BREW就是用C语言硬生生地模仿C++,弄出很多奇怪的宏。一般应用软件的开发不用这么死板,但对各种软件设计方法的了解还是必要的。4.10、的核心技术的核心技术是芯片和协议栈,两者是密不可分的。芯片设计需要协议栈来验证,协议栈必须充分发挥出芯片的功能。芯片的CPU核、DSP核都可以买到现成的单元,但通信协议部分就需要自己设计了。比较难做好的是耗电量、恶劣信号环境的性能等。5第三方软件“第三方软件”这个词的含义比较宽泛。本文用它来指代不是硬编码在里,而是可以通过数据线或网络下载到上,可以装载、运行,也可以删除的软件。
前面讲到的软件都是完整程序的各个部分。这些部分会被放到一起编译,产生一个二进制文件,通过JTAG口(升级时可以用串口)下载到的flash中。一上电,就会从指定地址开始运行。这个地址的内容就是跳转到复位处理程序的跳转指令。哈哈,又讲回头了。
第三方软件是指可以通过数据线或者网络下载一些可执行文件到文件系统中。然后有一个装载器可以执行这些文件。这样第三方就可以开发一些应用程序,下载到中来扩充功能。
这些可执行文件现在主要有两种格式:java程序和BREW程序。java程序需要java虚拟机装载运行。BREW程序是一个很奇怪的东西,它实际就是用与编译程序相同的编译器编译出来的目标代码。这些目标代码必须是可以重新定位的,即不能包含全局和静态变量。
装载器将程序将执行权传给给BREW程序,一种听上去更安全的说法是调用BREW程序的入口函数。这个入口函数的位置在文件中是固定的。装载器在调用BREW程序的入口函数时会传入一个地址。通过这个地址,BREW程序能够顺藤摸瓜,找到系统提供的各种API的地址,它通过这些API访问的显示、通信等功能。
java程序基本上是平台无关的,针对各种平台设计的java虚拟机隔离了平台的大部分特性,除了厂家特意提供的一些OEM功能。BREW程序显然是平台相关,换一个CPU,就不认识原来的目标码了。除了java、BREW外,WindowsCE、SmartPhone、WindowsMobile、Symbian、嵌入式Linux这些商业操作系统当然可以提供各种创建第三方程序的方法。在这些环境写程序和在PC平台写程序很相近,基本上体会不到嵌入式编程的特点,只是屏幕小一些,输入麻烦一些。
这些第三方软件不是必需的。在3G的市场中只占了一个较小的部分,网络是大头。而第三方软件相对于来说,所占的份额就更小了。6、搭建开发平台6.1安装JDK运行CMD,输入java–version,若结果如图6.1所示,说明JDK安装成功。图6.16.2安装Eclipse及SDKEclipse是一个压缩文件,不用安装,直接解压缩就可用。直接启动Eclipse,界面如图6.2所示,下面的对话框用于设置项目默认保存路径。图6.26.3设置环境变量上面安装全部成功后,还需要设置环境变量。环境变量的设置有两种方法,一种是在开始运行,输入sysedit,直接设置环境变量,写入响应的变量及路径。(由于这种方法容易出错,所以为采用)另一种方法则是如图6.3.1和图6.3.2所示,设置环境变量。变量的改变值如图6.3.2所示,在下方的系统变量中改变值。图6.3.1图创建android虚拟设备(AVD)创建成功图6.47、3G软件开发流程7.1、需求分析用户健全和授权;获取歌手列表/歌手详细信息;获取专辑列表/专辑信息获取歌曲列表/歌曲纤细信息;音乐盒列表/音乐盒详细信息;音乐电台列表/音乐电台详细信息;7.2、概要设计按照需求,在线播放器的主要功能和模块有用户注册、用户登录、音乐电台、音乐盒、歌手、专辑、歌曲七个主要功能和功能模块。7.3、详细设计7.3.1实现基础功能基础功能点设计签名算法的实现、数据的提交和接受、数据的解析及显示等。1签名算法按照YOBOAPI的说明,使用API前,需要对需要传递的参数和自己的APIKey和secret进行签名。APIKey就是签名注册应用时分配的Key。代码如下://对需要传递的参数进行签名 //返回签名加密串 publicstaticStringsig_params(Hashtable<String,?>params){ Vector<String>v=newVector<String>(params.keySet()); Collections.sort(v); //Display(sorted)hashtable. Stringresult=""; for(Enumeration<String>e=v.elements();e.hasMoreElements();){ Stringkey=(String)e.nextElement(); Stringval=(String)params.get(key); result+=key; result+=val; Log.i("sig_params","Key:"+key+",Val:"+val); } Log.i("sig_params","result:"+result); returnresult; }2数据的提交和接受publicstaticStringsendGetRequest(Stringendpoint, StringrequestParameters){ Log.i("sendGetRequest",endpoint); Stringresult=null; if(endpoint.startsWith("http://")){ //SendaGETrequesttotheservlet try{ //Constructdata StringBufferdata=newStringBuffer(); //Senddata StringurlStr=endpoint; if(requestParameters!=null&&requestParameters.length()>0){ urlStr+="?"+requestParameters; } Log.i("urlStr",urlStr); URLurl=newURL(urlStr); URLConnectionconn=url.openConnection(); //Gettheresponse BufferedReaderrd=newBufferedReader(newInputStreamReader( conn.getInputStream())); StringBuffersb=newStringBuffer(); Stringline; while((line=rd.readLine())!=null){ sb.append(line); } rd.close(); result=sb.toString(); }catch(Exceptione){ e.printStackTrace(); } } Log.i("sendGetRequest",result); returnresult; }3数据的解析//解析获取session的返回数据 publicstaticStringpaxSession(Stringxml){ StringregEx="<name>(.+?)</name>.*?<key>(.+?)</key>"; Patternp=Ppile(regEx); Matcherm=p.matcher(xml); booleanrs=m.find(); if(rs){ System.out.println("开始位置是:"+m.start()+"结束位置是:"+m.end() +"字串是:"+m.group()); } returnm.group(2); }4显示网络上的图片//显示网络上的图片 publicstaticBitmapreturnBitMap(Stringurl){ Log.i("returnBitMap","url="+url); URLmyFileUrl=null; Bitmapbitmap=null; try{ myFileUrl=newURL(url); }catch(MalformedURLExceptione){ e.printStackTrace(); } try{ HttpURLConnectionconn=(HttpURLConnection)myFileUrl .openConnection(); conn.setDoInput(true); conn.connect(); InputStreamis=conn.getInputStream(); bitmap=BitmapFactory.decodeStream(is); is.close(); }catch(IOExceptione){ e.printStackTrace(); } returnbitmap; }7.3.2实现Activity首先是按照前面的功能设计,以此实现需要的Activity及对应的界面。1是主界面。packageus.imnet.iceskysl;importandroid.app.Activity;importandroid.content.Intent;importandroid.os.Bundle;importandroid.view.Menu;importandroid.view.MenuItem;上面是需要引用的包//主界面(判断是否已经有访问权限,如果没有,则跳转的到Auth页面进行授权)//否则就到Yobo界面(展示个人的电台和音乐盒)publicclassMainextendsActivity{ publicfinalStringTAG="main"; //Identifiersforoptionmenuitems privatestaticfinalintMENU_START=Menu.FIRST+1; privatestaticfinalintMENU_HELP=MENU_START+1; /**Calledwhentheactivityisfirstcreated.*/ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); setTitle(R.string.app_title); }上述代码采用LinearLayout布局,显示一个背景图和一些文字介绍。接着是生成菜单的函数onCreateOptionsMenu。 //初始化菜单 @Override publicbooleanonCreateOptionsMenu(Menumenu){ super.onCreateOptionsMenu(menu); menu.add(0,MENU_START,0,R.string.menu_start) .setIcon(R.drawable.menu_start) .setAlphabeticShortcut('S'); menu.add(0,MENU_HELP,0,R.string.menu_helps).setIcon( R.drawable.helps).setAlphabeticShortcut( 'H'); returntrue; }上述代码显示,生成两个才看,MENU_START和MENU_HELP,它的响应方法如下: //当一个菜单被选中的时候调用 @Override publicbooleanonOptionsItemSelected(MenuItemitem){ Intentintent=newIntent(); switch(item.getItemId()){ caseMENU_START: intent.setClass(Main.this,Auth.class); startActivity(intent); returntrue; caseMENU_HELP: intent.setClass(Main.this,Helps.class); startActivity(intent); break; } returntrue; }}上述代码显示,当我们选中MENU_START的时候,则启动Auth.class对应的activity;如果选择了MENU_HELP,则显示Helps.class对应的Activity。生成的界面如图所示:图2是帮助界面packageus.imnet.iceskysl;importandroid.app.Activity;importandroid.os.Bundle;publicclassHelpsextendsActivity{ @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.helps); setTitle("Yobo:帮助信息"); }}界面如图下方界面,由于重叠为截图。3是用户授权界面由于代码过长,不再赘述,界面如图所示。图4是用户个人信息显示界面,5是音乐盒界面,6是音乐台界面,7是音乐盒/电台歌曲列表,所以一共有7个界面文件。后面文件都已省略。7.3.3实现ServiceService在后台播放歌舞,使得前面的播放动作不会影响歌曲的播放。这里选择使用AIDL来实现接口。编写AIDL文件。InterfaceYPRSInterface{voidcliarPlayList();voidaddSongPlayList(inStringsong);voidplayFile(inintposition);voidpause();voidstop();voidskipForward();voidskipBack();}定义需要的几个接口方法,分别是清楚播放列表,添加播放列表,添加歌曲到播放列表,播放,暂停和停止。2实现接口方法,下面省略了一些代码//播放文件 privatefinalYPRSInterface.StubmBinder=newYPRSInterface.Stub(){ publicvoidplayFile(intposition)throwsDeadObjectException{ Log.i("playFile:",Integer.toString(position)); try{ currentPosition=position; playSong(songs.get(position)); }catch(IndexOutOfBoundsExceptione){ Log.e(getString(R.string.app_name),e.getMessage()); } }//添加歌曲的播放列表 publicvoidaddSongPlaylist(Stringsong)throwsDeadObjectException{ songs.add(song); }//清除播放列表 publicvoidclearPlaylist()throwsDeadObjectException{ songs.clear(); }//下一首 publicvoidskipBack()throwsDeadObjectException{ prevSong(); }//上一首 publicvoidskipForward()throwsDeadObjectException{ nextSong(); }//暂停 publicvoidpause()throwsDeadObjectException{ Notificationnotification=newNotification(); nm.notify(NOTIFY_ID,notification); mpr.pause(); }//停止 publicvoidstop()throwsDeadObjectException{ nm.cancel(NOTIFY_ID); mpr.stop(); } };3是把功能串起来前面将主要的功能都实现了,然后需要将这个功能串起来形成一个完整的应用,主要是实现播放器的功能,其实现代码如下所示:this.bindService(newIntent(PlayListActivity.this,PRService.class),mConnection,Context.BIND_AUTO_CREATE);7.4运行结果:第一次驱动较慢8、心得体会8.1、1071000092吴岩妍通过这次作业,我基本上了解了3G的几种主流标准,以及基于3G开发的平台,小组做的是基于android平台的软件开发。通过看书和上网,基本了解了软件开发的基本流程,和必需的软件开发平台Eclipse等。其中,我也遇到了许多困难,有比如在软件环境变量的配置上,软件开发时要导入的包等等,并且在调试程序的时候也出现了许多问题不能解决,比如开始生成的AVD版本不合适,还有本机的网络问题,以及运行的流程不明白,跟着盘一点一点做。开始时我由于对3G网络的兴趣而选了这一题,但真正操作时才发现自己对其没有一点了解。虽然上网查阅了许多,但对其还是没有比较真实的体会。这次试验让我了解,做这种试验一定要动手。8.2、1071000093谢晶晶这学期,我们开始解除了网络工程实践,通过义学气的学习,对于网络工程的一些知识有了进一步的了解。期末的大作业的选题上,我们觉得3G比较贴近我们的生活,基于3G的软件开发比较实用,所以选择了这个题目。万事开头难,刚开始的时候,我们对于3G技术还不是很了解,通过查阅大量的资料和图书,对于3G有了一些初步的认识,然后根据参考图书的设计方法和步骤,开始搭建android开发平台,我感觉这个步骤还是比较困难的,因为还要设置安装途径,修改环境变量,开始的时候,我们在这些地方遇到了困难,程序运行不了,最后请教同学之后,平台搭建成功了~开发播放器的步骤还是比较顺利的,按照参考资料上的代码,成功运行出程序,通过使用android应用开发软件,使我对这个平台有了初步的了解,也对它产生了兴趣,大作业虽然完成了,可是对于这方面的学习还没有结束,还要继续下去。我们应该铭记:学习一定要有信心.恒心.决心!不求融会贯通,只求做足不求甚解.8.3、1071000096于媛在做这次项目之前我就对智能系统很感兴趣,目前我一共使用过2台智能,一台是Iphone系统一台是Symbian系统,而android系统的我还没有接触过,但是之前在网上看过很多有关android系统的新闻,中国移动也将推出基于android系统的Gphone用以抗衡联通的Iphone,android平台可以促使移动设备的创新,让用户体验到最优越的移动服务。通过这次做项目的体验,我们从一开始的一知半解,逐渐的在软件开发书籍的帮助下从JDK、Eclipse、androidSDK的安装,windows开发环境的搭建到学习如何使用模拟器,体验软件开发的流程。因为我是学习C++的,而这次我们小组进行的是基于Java语言的编写,这对于我造成了一些困难,但是通过自己的学习以及和组员们的交流最终完成了这次的项目,这对于我学习其他课程也有所帮助。9、3G网络的未来前景随着无线通信技术的发展,特别是移动通信业与因特网的融合,极大的推动该领域产业的发展。3G网络的商用,电子行业的技术发展又同步促进了移动终端设备3G的发展。3G时代带来的不仅是技术的演进和服务的丰富,更重用的是产业格局和游戏规则的变迁。3G的移动运营商对提出定制要求,终端厂商必须根据运营商的要求,将运营商特有的网络业务相关的应用内置到通用型上。因此3G项目的软件,不仅要求在短短的3个月产品生命周期内,实现丰富,复杂的软件功能,通过用户的验收测试,而且同款产品同时并行面向多个具有定制业务要求的客户,这对传统的基于渠道销售的2G(第二代移动通信)同款只推一个软件版本的软件开发过程,形成了强烈的冲击。10、参考文献1、《Android开发入门与实践》靳言姚尚郎编著2、《3G技术问答》高鹏编著3、《3G知识问答》廖青编著11分工
社会实践报告系别:班级:学号:姓名:作为祖国未来的事业的继承人,我们这些大学生应该及早树立自己的历史责任感,提高自己的社会适应能力。假期的社会实践就是很好的锻炼自己的机会。当下,挣钱早已不是打工的唯一目的,更多的人将其视为参加社会实践、提高自身能力的机会。许多学校也积极鼓励大学生多接触社会、了解社会,一方面可以把学到的理论知识应用到实践中去,提高各方面的能力;另一方面可以积累工作经验对日后的就业大有裨益。进行社会实践,最理想的就是找到与本专业对口单位进行实习,从而提高自己的实战水平,同时可以将课本知识在实践中得到运用,从而更好的指导自己今后的学习。但是作为一名尚未毕业的大学生,由于本身具备的专业知识还十分的有限,所以我选择了打散工作为第一次社会实践的方式。目的在于熟悉社会。就职业本身而言,并无高低贵贱之分,存在即为合理。通过短短几天的打工经历可以让长期处于校园的我们对社会有一种更直观的认识。实践过程:自从走进了大学,就业问题就似乎总是围绕在我们的身边,成了说不完的话题。在现今社会,招聘会上的大字报都总写着“有经验者优先”,可还在校园里面的我们这班学子社会经验又会拥有多少呢?为了拓展自身的知识面,扩大与社会的接触面,增加个人在社会竞争中的经验,锻炼和提高自己的能力,以便在以后毕业后能真正真正走入社会,能够适应国内外的经济形势的变化,并且能够在生活和工作中很好地处理各方面的问题,我开始了我这个假期的社会实践-走进天源休闲餐厅。实践,就是把我们在学校所学的理论知识,运用到客观实际中去,使自己所学的理论知识有用武之地。只学不实践,那么所学的就等于零。理论应该与实践相结合。另一方面,实践可为以后找工作打基础。通过这段时间的实习,学到一些在学校里学不到的东西。因为环境的不同,接触的人与事不同,从中所学的东西自然就不一样了。要学会从实践中学习,从学习中实践。而且在中国的经济飞速发展,又加入了世贸,国内外经济日趋变化,每天都不断有新的东西涌现,在拥有了越来越多的机会的同时,也有了更多的挑战,前天才刚学到的知识可能
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 十堰合同模板
- 广告物料设备购买合同模板
- 互联网公司项目合同模板
- 手工吊车租赁合同模板
- 酒店客房数字视频监控系统设计方案
- 下乡婚庆出租合同模板
- 商铺住宅租赁合同模板
- 2024年创新版:大数据分析与应用合同
- pvc管购销合同模板
- 临设安装合同模板
- 计算机及外部设备装配调试员国家职业技能标准(2019年版)
- 《临床决策分析》课件.ppt
- 泪道冲洗PPT学习教案
- 新课程背景下初中语文教学的转变与创新
- 浅谈校园影视在学校教育中的作用
- 咖啡种植标准化规程
- 上海大众汽车商务礼仪培训PPT课件
- 理论力学习题集含答案
- 驱动压在肺保护性通气策略中的研究进展(全文)
- 公路工程施工安全技术规范
- “碑学”、“帖学”献疑.doc
评论
0/150
提交评论