Android多媒体应用编程多媒体技术MultimediaTechnology多媒体技术是使用计算机和数字通信技术处理多种表示媒体,包括文本、图形、图像、视频和声音,使多种媒体建立逻辑连接,并集成为一个交互式系统的相关技术。多媒体技术音频技术:音频采样、压缩、合成及处理、语音识别、文字语音转换等。视频技术:视频数字化及处理。图像技术:图像处理、图像、图形的动态生成。图像压缩技术:图像压缩、动态视频压缩。多媒体数据检索:是近年来非常活跃的研究课题,基于内容的图像检索,视频检索是研究的重点。通信技术:语音、视频、图像的传输。多媒体标准:多媒体应用开发必须遵循相应的技术标准。流媒体技术流媒体是指以流的方式在网络中传输音频、视频和多媒体文件。流媒体文件格式是支持采用流式传输及播放的媒体格式。流式传输方式是将视频和音频等多媒体文件经过特殊的压缩方式分成一个个压缩包,由服务器向终端用户连续、实时传送。主流的流媒体文件格式:realnetwork公司的RM。apple公司quicktime的mov。microsoft公司的:asf\wmv\wma、avi、mpeg\mpg\datmicromedia公司的:•flash的swf格式•metastream的mts格式•authorware的aam多媒体教学课件格式。多媒体技术的历史-启蒙发展阶段20世纪80年代初,人们致力于研究将声音、图形和图像作为新的信息媒体输入、输出计算机,这使得计算机的应用更为直观、容易。1984年Apple公司的Macintosh个人计算机,首先引进了位映射的图形机理,图形用户界面出现,用户接口开始使用鼠标驱动的窗口和图标技术。1985年,Microsoft公司推出了Windows,它是一个多用户的图形操作环境1985年美国Commodore公司的Amiga计算机问世,成为多媒体技术先驱产品之一。同年,激光只读存储器CD-ROM问世,为大容量多媒体数据的存储和处理提供了条件。1986年3月Philips和Sony两家公司推出了交互式光盘系统CD-I,这是集文字、图像和声音于一体的多媒体系统。1987年3月,美国RCA公司的萨诺夫研究实验室展示了交互式数字影像系统(DVI),用标准光盘来存储和检索活动影像、静止图像、声音和其他数据。(1991年1G的硬盘才出现)多媒体技术的历史-标准化阶段多媒体技术的发展促进了对标准化问题的重视。1990年,美国Microsoft公司和其他公司一起成立了多媒体个人计算机市场协会,负责多媒体计算机的规范化管理和多媒体计算机标准的制订。1991年提出了MPC1标准,1993年发布了MPC2标准,1995年又推出了MPC3标准,1996年以后,新的个人机均支持基本多媒体功能。1988年,ISO和CCITT联合成立专家组,先后提出了静止图像的数字压缩标准JPEG(1991年)和动态图像压缩标准MPEG,推动了多媒体应用的迅速增长。多媒体技术的历史-普及应用阶段多媒体技术具有强烈的渗透性,它可以扩展到各个应用领域。多媒体走入家庭,用于家庭教育、信息查询、娱乐;多媒体进入学校,用于交互式学习、进行模拟实验和演示(虚拟实验室)、信息查询和检索(虚拟图书馆);多媒体用于商业和企事业单位,包括分布式多媒体会议系统、多媒体监控和监测系统等。多媒体在工业上、医学领域、出版业、传播和通信业中都有广泛的应用,例如:远程医疗和远程教学系统、多媒体视频点播系统等。目前,多媒体技术的发展逐渐把计算机技术、通信技术和大众传媒技术融合在一起,建立起了更广泛意义上的多媒体平台。多媒体应用编程今天的手机同时具有照相机、相册、摄像机、电影播放器、音乐播放器、听写且可能具备更多的多媒体功能。AndroidSDK中拥有丰富的多媒体功能,使我们能够方便的创建多媒体应用程序。开放的移动开发平台AndroidAndroid的本义是机器人,是由谷歌和开放手机联盟为移动设备设计的开放的综合平台,它由三个部分构成:一个针对移动设备的免费开源操作系统;一个用于创建移动应用程序的开源开发平台;运行Android操作系统及应用程序的移动设备;Android版本最早的一个版本是2007年11月5日发布的Androidbeta。Android1.0是Android操作系统中的第一个正式版本,它于2008年9月23日发布,代号为铁臂阿童木(Astro)。2009年2月2日,Android1.1,代号发条机器人(Bender)发布,该版本只被预装在T-MobileG1(HTCDream)上。2009年4月30日,Android1.5(Cupcake纸杯蛋糕)发布,该版本基于Linux2.6.27内核。2009年9月15日,Android1.6(Donut甜甜圈)软件开发套件发布,该版本基于Linux2.6.29内核。Android版本2009年10月26日,Android2.0(Éclair泡芙)软件开发套件发布,该版本基于Linux2.6.29内核。Android2.0.1更新包。Android2.1更新包。2010年5月20日,Android2.2(Froyo冻酸奶)软件开发套件发布,该版本基于Linux2.6.32内核。Android2.2.1更新包。Android2.2.2更新包。Android2.2.3更新包。Android版本2010年12月6日,Android2.3(Gingerbread姜饼)软件开发套件发布,该版本基于Linux2.6.35内核。Android2.3.3更新包。Android2.3.4更新包。Android2.3.5更新包。Android2.3.6更新包。Android2.3.7更新包。2011年2月22日,Android3.0(蜂巢Honeycomb)开发包正式发布,该版本基于基于Linux2.6.36内核,是第一个Android平板操作系统。Android3.1软件开发包于2011年5月10日正式发布。Android3.2软件开发包于2011年7月15日正式发布。Android3.2.1更新包。Android3.2.2更新包。Android4.0版Android4.0(IceCreamSandwich冰淇淋三文治)于2011年4月在GoogleI/O大会上首次被宣布。于2011年10月19日正式发布Android4.0冰激凌三明治操作系统和搭载Andorid4.0的GalaxyNexus智能手机。Android4.0.1的软件开发包于2011年10月19日正式发布。谷歌公司的发言人加布·科恩(GabeCohen)指出,Andorid4.0理论上与任何一个当前市面上搭载了Android2.3.x版本的设备兼容。Android4.0的源代码已于2011年11月14日正式公布。Android4.0.2更新包。Android4.0.3更新包。Android4.0.4更新包。Android4.0.9是一个由美国Spirit定制的非官方Android版本。Android版本Android4.1(JellyBean果冻豆)更新包于2012年6月28日在GoogleI/O大会上随搭载Android4.1的Nexus7平板电脑一起发布。谷歌原定于2012年10月30日召开Android发布会,但由于受到桑迪(Sandy)飓风的影响而临时取消。不过谷歌仍通过其官方博客发布了全新的Android4.2系统,同时还发布了基于这种操作系统的Nexus4智能手机和Nexus10平板电脑。Android4.2沿用了4.1版的果冻豆JellyBean这一名称,与Android4.1相似性很高,但仍在细节之后做了一些改进与升级。比较重要的包括:PhotoSphere全景拍照;键盘手势输入;Miracast无线显示共享;手势放大缩小屏幕,以及为盲人用户设计的语音输出和手势模式导航功能等;Android版本2013年10月31日发布Android4.4,代号KitKat。加入的ART模式(AndroidRunTime)ART模式与Dalvik模式最大的不同在于,在启用ART模式后,系统在安装应用的时候会进行一次预编译,在安装应用程序时会先将代码转换为机器语言存储在本地,这样在运行程序时就不会每次都进行一次编译了,执行效率也大大提升。Android5.0,代号为KeyLimePie(青柠派),将是下一代Android操作系统。Android版本Android版本4.1果冻豆Android的丰富多媒体功能Android集成了基于开源的WebKit引擎的浏览器,支持各种标准的Web技术,如HTML、CSS、JavaScript、PHP、RubyOnRails和Python等等。Android采用了一个定制的2D图形库来进行2D图形处理,同时使用了基于OpenGLES规范的3D图像处理。Android使用SQLite数据库来进行结构化的数据存储。Android原生支持了常见的音视频以及图像格式,包括MPEG4,H.264,MP3,AAC,AMR,JPG,PNG,GIF。Android支持GSM、蓝牙、EDGE、3G和WIFI(依赖于相应的硬件模块)支持多种外设Android支持相机、GPS以及指南针、加速计等各种传感设备(依赖于相应的硬件模块)。C(红色部分)C/C++(绿色部分)Java(蓝色部分)应用程序层(Applications)Android会同一系列核心应用程序包一起发布,主要包括拨号程序、email客户端、SMS短消息程序、日历、地图、浏览器、联系人管理程序等。所有的这些应用程序都是使用Java语言编写的。应用程序框架层(ApplicationFramework)ViewsSystem:丰富且可扩展的视图(Views),用于构建应用程序,包括列表(lists),网格(grids),文本框(textboxes),按钮(buttons),甚至是可嵌入的web浏览器。ContentProviders:使得应用程序可以访问由另一个应用程序所维护的数据(如联系人数据库),或者共享它们自己的数据。ResourceManager:提供非代码资源的访问,如本地字符串,图形,和布局文件(layoutfiles)NotificationManager:使应用程序可以在系统状态栏中显示提示信息。通知区域设定在手机的顶部,例如未读短信邮件、未接电话等通知消息都会在此区域显示。ActivityManager:用于管理应用程序各Activity的生命周期并提供常用的导航回退功能。函数库层(Libraries)MediaLibraries:基于PacketVideoOpenCORE;该库支持多种常用的音频、视频格式回放和录制,同时支持静态图像文件。编码格式包括MPEG4、H.264、MP3、AAC、AMR、JPG、PNG等等。SurfaceManager:提供对显示子系统的管理,并且为应用程序提供了2D和3D图层的无缝融合。LibWebCore:web浏览器引擎,支持Android浏览器及可嵌入应用程序的web视图。SGL:底层的2D图形引擎。3DLibraries:基于OpenGLES1.0APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。FreeType:位图(bitmap)和矢量(vector)字体显示。SQLite:SQLite是一套开放源码的关系数据库,是一种对于所有应用程序可用并且功能强劲的轻型关系型数据库引擎。SSL:SecureSocketLayer用于网络安全。SystemClibrary:一个从BSD继承来的标准C系统函数库(libc),它是专门为基于embeddedlinux的设备定制的。Android运行时环境(Runtime)CoreLibraries(核心库),实现了Java编程语言核心库的大多数功能。DalvikVirtualMachineDalvik虚拟机所执行的中间代码并非是JavaHotspot虚拟机所执行的Bytecode,也不直接执行Java