《AndroidLiunx平台网络流媒体播放器的设计 毕业设计.doc》由会员分享,可在线阅读,更多相关《AndroidLiunx平台网络流媒体播放器的设计 毕业设计.doc(50页珍藏版)》请在三一办公上搜索。
1、JIU JIANG UNIVERSITY毕 业 论 文 题 目 Android_Liunx平台网络流媒体 播放器的设计 英文题目 Android_Liunx Platform Network Streaming Mediaplayer Design 院 系 信息科学与技术学院 专 业 计算机科学与技术 姓 名 卓小义 班级学号 A081147 指导教师 于林峰 二一二年五月摘 要主要对Android系统上音乐流媒体播放器的设计与实现和Linux系统音乐流媒体服务器GNUMP3d的搭建。前者为客户端,后者为服务端。Android是一个开源的系统,它底层是基于Linux的操作系统,音乐流媒体播放器
2、采用了Android开源系统技术,利用Java语言和Eclipse编辑工具对播放器进行编写。同时给出了详细的系统设计过程、界面图及主要功能运行流程图,还对过程中遇到的问题和解决方法进行了详细的讨论,音乐播放器集播放/暂停、上一首、下一首、音量调节、歌名显示、音乐列表、播放进度调节等功能于一体,性能良好,在Android系统中能独立运行。GNUMP3d服务器是一款小巧易用的流体服务器,搭建于Linux平台,支持Mp3、Wav、Wma、Ogg、Movies 和Other Media Formats;小巧、容易安装、跨平台等。关键词:安卓,开源系统,Linux,播放器,GNUMP3d服务器Abstr
3、actThe paper mainly is to take on a music player from system design and realization and Linux system music streaming media server GNUMP3d construction. The formerclient, the latterfortheserviceside.Take the system is an open source, it is based on the operating system, use the Linux music player of
4、the Android open-source system technology, using the Java language and editing tools for players to Eclipse. Presents the detailed design process, the part of the system and the main functions of operation interface diagram of height, this paper also flow process problems and solving methods are dis
5、cussed in detail, and the music player episode, pause, and next, volume adjustment, lyrics display functions, such as performance is good, can operate independently in the Android system. Linux system Ubuntu10.10 is a very stable system, building in the server is very stable. GNUMP3d server is a com
6、pact and easy fluid server, support Mp3,Ogg,Movies and Other Media Formats. Small, easy installation, cross-platform, etc.KeyWords:Android, Open Source System, Linux, Mediaplayer, GNUMP3d Server目 录摘 要IAbstractII1 绪论1.1 项目背景(1)1.2 开发目的(2)1.3 小结(2)2 系统需求分析2.1 功能需求(3)2.2 系统结构图和流程图(9)2.3 系统界面需求(11)2.4 系
7、统性能需求(12)2.5 运行环境需求(12)2.6 小结(12)3 搭建音乐流媒体服务器GNUMP3d3.1 GNUMP3d简介(13)3.2 网络存储与本地存储的区别(13)3.3 流媒体传输的优势(13)3.4 GNUMP3d服务器搭建(14)3.5 小结(17)4 Android开发4.1 Android介绍(18)4.2 搭建Android开发环境(22)4.3 Android常用工具的使用(24)4.4 Android 项目(25)4.5 小结(29)5 Android播放器功能实现5.1 播放器功能实现(30)5.2 菜单功能(32)5.3 播放列表实现(33)5.4 其他功能实
8、现(34)5.5 小结(37)6 系统测试6.1功能测试(38)6.2 小结(41)总 结(43)致 谢(43)参考文献(44)1 绪论1.1 项目背景 当今社会的生活节奏越来越快,人们对手机的要求也越来越高,由于手机市场发展迅速,使得手机操作系统也出现了不同各类,目前市场上主要有三个手机操作系统,Windows Mobile,Symbian,以及谷歌的Android操作系统,其中占有开放源代码优势的Android系统本文的音乐播放器就是基于谷歌Android手机平台的播放器。 Android:是谷歌于2007年公布的开放式源代码手机系统,它的开放性优于其它封闭式的手机系统,因此,任何人都可能
9、根据自己的喜好将手机系统中的所有功能重新编写。这使得越来越多的人关注这个操作系统。网络音乐播放器就是基于Android平台开发的。随着计算机的广泛运用,手机市场的迅速发展,各种音频视频资源也在网上广为流传,这些资源看似平常,但已经渐渐成为人们生活中必不可少的一部分了。于是各种手机播放器也紧跟着发展起来,但是很多播放器一味追求外观花哨,功能庞大,对用户的手机造成了很多资源浪费,比如CPU,内存等的占用率过高,在用户需要多任务操作时,受到了不小的影响,带来了许多不便,而对于大多数普通用户,许多功能用不上,形同虚设。针对以上各种弊端,选择了开发多语种的音频视频播放器,将各种性能优化,继承播放器的常用
10、功能,满足一般用户(如听歌,看电影)的需求,除了能播放常见格式的语音视频文件,高级功能:还能播放RMVB格式的视频文件。此外,还能支持中文、英文等语言界面。目前已经实现的功能有能播放常见音频文件的功能,如MP3,WAV等,拥有播放菜单,能选择播放清单,具备一般播放器的功能,如快进,快退,音量调节等。播放模式也比较完善,有单曲,顺序,循环,随机播放等模式。1.2 开发目的欣赏音乐是最好的舒缓压力的方式之一,而播放音乐需要一款播放器,故用DLNA技术一种流媒体解决方案,目的是开发一个可以通过WIFI流传输来播放主流音乐文件格式的播放器,本设计的实现的这主要功能是播放MP3,WAV多种格式的音乐文件
11、,并且能够控制上一曲,播放/暂停,下一曲,音量调节,视觉外观,播放列表和歌曲文件的管理操作等多种播放控制功能,界面简明,操作简单。 包括两个子项目:基于Android手机平台的音乐流媒体播放器和Linux平台流媒体服务器,使Android手机拥有个性的流媒体播放器,在家居中可以随时播放电脑等设备上的海量歌曲,使手机显得更生动灵活化,与人们更为接近,让手机主人在家随时随地处于海量的音乐视频的旋律之中。使人们的生活更加多样化。也使设计者更加熟练Android的技术和其它在市场上的特点1.3 小结本章节主要说明该项目开发背景和开发目的。对目前网络播放器的需求和该项目所包含的子项目作了讲解。2 系统需
12、求分析2.1 功能需求 根据项目的目标,我们可获得项目系统的基本需求,以下从不同角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即服务器搭建需求,播放器的基本控制需要,播放列表管理需求和播放器友好性需求。以下分别描述。2.1.1 播放器的基本控制需求系统基本控制图如图2-1所示。图2-1 系统基本控制图播放/暂停用例需求如表2-1所示。表2-1 播放/暂停用例用例名称:播放/暂停参与者:用户目标:使得用户可以播放或者暂停在播放列表中选中的歌曲前置条件:播放器正在运行基本事件流:1.用户单击“播放/暂停”按钮 2.播放器将播或者暂停放列表中的当前的歌曲上一曲/下
13、一曲用例需求如表2-2所示。表2-2上一首/下一曲用例用例名称:上一首/下一曲参与者:用户目标:使得用户可以听上一首/下一曲歌曲前置条件:歌曲正在播放或暂停基本事件流:1.用户单击“上一首/下一曲”按钮 2.播放器将播放上一首/下一曲歌曲音量加/减用例需求如表2-3所示。表2-3音量加/减用例用例名称:音量加/减参与者:用户目标:使得用户可以加减音量当前音量前置条件:歌曲正在播放基本事件流:1.用户单击“音量加/减”按钮 2.播放器当前音量加减进度条用例需求如表2-4所示。表2-4 进度条用例用例名称:进度条调整进度参与者:用户目标:使得用户可以听一首歌曲的任意部分前置条件:歌曲正在播放或暂停
14、基本事件流:1.用户拖动“进度条” 2.播放器将播放这一首歌曲的任意部分列表用例需求如表2-5所示。表2-5 列表用例用例名称:播放清单参与者:用户目标:使得用户可以进入播放清单前置条件:程序在运行基本事件流:1.用户单击menu菜单“显示曲目”按钮 2.播放器进入曲目列表2.1.2 播放曲目列表管理需求当用户选中列表中某一项歌曲,就有需求如图2-2所示。图2-2 播放器曲目选中的音乐播放用例需求如表2-6所示。表2-6 播放用例用例名称:播放参与者:用户目标:使得程序能播放选中的歌曲前置条件:程序运行在播放列表中基本事件流:1.用户单击曲目名 2.跳转到播放界面,进入播放状态音乐列表删除用例
15、需求如表2-7所示。表2-7 删除用例用例名称:删除参与者:用户目标:删除播放曲目中被选中的歌曲前置条件:程序运行在播放列表中基本事件流:1.用户长按曲目名 2.弹出对话框,确定是否删除修改音乐列表用例需求如表2-8所示。表2-8 修改歌曲名用例用例名称:修改歌曲名参与者:用户目标:修改播放曲目中被选中的歌曲的歌曲名前置条件:程序运行在播放列表中基本事件流:1.用户长按曲目名 2.弹出对话框,确定是否修改歌曲名2.1.3 GNUMP3d服务器需求播放器向GNUMP3d服务器要播放列表时,服务器就有了需求如图2-3所示。图2-3 GNUMP3d服务器2.1.4功能需求(时序图)分析播放界面就是一
16、个控制台,相当于DLNA中的DMC(Digital MediaController),控制MediaPlayer到服务器上去索取音乐源,并播放。Android流媒体播放器由2个主要界面构成,主要实现的功能:播放界面基本功能、歌曲列表界面;开机制动启动;解除键盘锁;获取服务器资源。Android播放器时序图如图2-4所示。图2-4 Android播放器时序图2.2 系统结构图和流程图该网络流媒体播放器是参照DLNA体系的逻辑划分整个系统应该具有以下部件:数字媒体服务器DMS,数字媒体重放DMR和数字媒体控制器DMC。其中DMS负责提供音源(GNUMP3d服务器),DMR负责将接收到的媒体流重放,
17、而DMC则负责接收用户的指令,并转化成控制信息到DMR。DMR与DMC集成在一起组成Android播放器。逻辑图示如图2-5所示。图2-5 系统逻辑图系统功能表如表2-9所示。表2-9 系统功能表功能类别子功能子功能歌曲列表单击播放-进入播放界面长按删除-数据库同步更新重命名-数据库同步更新播放界面播放/暂停播放歌曲-线程启动-时间更新暂停歌曲-线程暂停-时间暂停音量加/减当前音量加/减上一首播放列表索引变化-寻找上一ID歌曲下一首播放列表索引变化-寻找下一ID歌曲播放界面菜单显示曲目-播放列表链接服务器-输入服务器地址-链接成功退出播放器-确认退出系统功能结构图如图2-6所示。链接服务器An
18、droid播放器播放界面播放列表播放/暂停上/下一曲音量加/减退出显示曲目修改歌曲名删除播放菜单图2-6 系统功能结构图2.3 系统界面需求音量、播放控制、菜单栏、列表等素材图标如图2-7所示。 图2-7 素材图标播放器界面、歌曲列表界、菜单栏界面要求布局合理,颜色舒适,控制按钮友好,为了减少开发工程量,图片素材多数为公司项目素材。2.4 系统性能需求一个好的系统响应时间不应该太长,所以就有如下性能要求:(1)连接服务器时,程序响应时间最长不能超过10秒;(2)当要求歌曲暂停时,程序响应时间最长不能超过5秒;(3)当要求加减音量时,程序响应时间最长不能超过5秒;(4)当要求歌曲上/下一首时,程
19、序响应时间最长不能超过5秒;(5)当要求查看歌曲列表时,程序响应时间最长不能超过5秒。2.5 运行环境需求(1)操作系统: 播放器:Android系统,服务器:Linux操作系统;(2)支持环境:Android 2.14.0版本;(3)开发环境:Eclipse 3.5 ADT 0.95、Linux 。2.6 小结本章主要对该项目的需求做了详细说明,主要包括播放器的基本控制需求、播放曲目列表管理需求、GNUMP3d服务器需求、功能需求(时序图)分析、系统界面需求、系统性能需求等。3 搭建音乐流媒体服务器GNUMP3d3.1 GNUMP3d简介GNUMP3d服务器是一款小巧易用的流体服务器,支持m
20、p3、ogg、movies 和other media formats。GNUMP3d服务器主页地址:http:/www.gnu.org/software/gnump3d。特点如下:(1)小巧、容易安装和使用;安全稳定;(2)跨平台,支持Liunx、Unix 和Windows服务器安装和使用;(3)支持随机播放、支持按作者、日期索引、支持搜索等。3.2 网络存储与本地存储的区别网络存储:将音乐源存储在一台服务器上(GNUMP3d服务器),大家共享一个音乐源。只要在播放器端链接到服务器,就可以索要服务器上的音乐源进行播放。这样不但减少了存储资源,大家还可以共享。本地存储:将音乐源存储在本地储存卡上
21、,每一台播放器就要有一个存储音乐源的设备。不仅浪费存储资源,还不能共享资源。3.3 流媒体传输的优势 流媒体技术也称流式媒体技术.所谓流媒体技术就是把连续的影像和声音信息经过压缩处理后放上网站服务器,让用户一边下载一边观看、收听,而不要等整个压缩文件下载到自己的计算机上才可以观看的网络传输技术。该技术先在使用者端的计算机上创建一个缓冲区,在播放前预先下一段数据作为缓冲,在网路实际连线速度小于播放所耗的速度时,播放程序就会取用一小段缓冲区内的数据,这样可以避免播放的中断,也使得播放品质得以保证。 流媒体的传输需要合适的传输协议,目前在Internet上的文件传输大部分都是建立在TCP协议的基础上
22、,也有一些是以FTP传输协议的方式进行传输,但采用这些传输协议都不能实现实时方式的传输。随着流媒体技术的深入研究,目前比较成熟的流媒体传输一般都是采用建立在UDP协议上的RTP/RTSP实时传输协议。为何要在UDP协议而不在TCP协议上进行实时数据的传输呢?这是因为UDP和TCP协议在实现数据传输时的可靠性有很大的区别。TCP协议中包含了专门的数据传送校验机制,当数据接受方收到数据后,将自动向发送方发出确认信息,发送方在接收到确认信息后才继续传送数据,否则将一直处于等待状态。而UDP协议则不同,UDP协议本身并不能做任何校验。由此可以看出,TCP协议注重传输质量,而UDP协议则注重传输速度因此
23、,对于对传输质量要求不是很高,而对传输速度则有很高的要求的视音频流媒体文件来说,采用UDP协议则更合适。 流媒体技术为传统媒体在互联网上开辟更广阔的空间提供了可能。广播电视媒体节目的上网更为方便,听众、观众在网上点播节目更为简单,网上音视频直播也将得到广泛运用。流媒体技术将过去传统媒体的“推”式传播,变为受众的“拉” 式传播,受众不再是被动地接受来自广播电视的节目,而是在自己方便的时间来接收自己需要的信息。这将在一定程度上提高受众的地位,使他们在新闻传播中占有主动权,也使他们的需求对新闻媒体的活动产生更为直接的影响。流媒体技术的广泛运用也将模糊广播、电视与网络之间的界限,网络既是广播电视的辅助
24、者与延伸者,也将成为它们的有力的竞争者。利用流媒体技术,网络将提供新的音视频节目样式,也将形成新的经营方式,例如收费的点播服务。发挥传统媒体的优势,利用网络媒体的特长,保持媒体间良好的竞争与合作,是未来网络的发展之路,也是未来传统媒体的发展之路。3.4 GNUMP3d服务器搭建搭建步骤为:(1)下载GNUMP3d 当前最新的版本是 gnump3d-2.9.5,有Unix版本和Windows版本下载。用Linux操作系统,可以下载: gnump3d-2.9.5.tar.gz或gnump3d-2.9.5.tar.bz2。AudioPlayer网络流媒体服务器是在Ubuntu系统下运行的。(2)解压
25、安装jocerlyandroid:/work/stream_media$ tar zxvf gnump3d-2.9.8.tar.gz;jocerlyandroid:/work/stream_media$ cd gnump3d-2.9.8/;jocerlyandroid:/work/stream_media/gnump3d-2.9.8$ sudo make install。程序安装位置包括执行命令被安装到/usr/bin 目录:gnump3d gnump3d2 gnump3d-index gnump3d-top;theme被安装到 /usr/share/gnump3d目录;配置文件被安装到:/e
26、tc/gnump3d,/etc/gnump3d/mime.types,/etc/gnump3d/ gnump3d.conf;库文件被安装到:/usr/lib/perl5/5.8.6/gnump3d 目录;man被安装到:/usr/man/man1/gnump3d.1,/usr/man/man1/gnump3d-index.1,/usr/ man/man1/gnump3d-top.1,/usr/man/man1/gnump3d.conf.1。(3)配置gnump3d的配置文件被存放在 /etc/gnump3d/gnump3d.conf,可以对配置文件进行修改。图3-1 浏览器访问图gnump3d
27、 的themes被存放在 /usr/share/gnump3d/ 目录中,所以要想换theme,可以在gnump3d.conf中指定,该服务器用的theme为Musicus。可以汉化自己喜欢的theme,把界面变成中文,汉化非常简单,因为是theme是html网页,theme存放在/usr/share/gnump3d/目录中;比如我汉化了Musicus。效果图如图3-1所示。媒体文件在 gnump3d.conf 中的默认存放目录是 /home/mp3,可以自定义服务器的媒体文件存放在:/home/jocerly/musics。(4)运行并访问服务器运行gnump3d流体服务器: # sudo
28、gnump3d&或# sudo gnump3d2&。示意图如图3-2所示。图3-2 命令行启动服务器图访问gnump3d流体服务器:以网页的形式访问地址是:http:/localhost:8888/,也可以让局域网的其它电脑来访问,当然要把localhost改为机器的IP地址,比如流体服务器所在的电脑的IP是192.168.1.6,所以局域网访问地址应该是:http:/192.168.1.6:8888。Android播放器的访问地址为:http:/192.168.1.6:8888/list.txt,这样就可以得到播放列表了。3.5 小结本章主要音乐流媒体服务器GNUMP3d的搭建过程、网络存储
29、与本地存储的区别、流媒体传输的优势等。4 Android开发4.1 Android介绍4.1.1 Android简介Android是基于Linux内核的软件平台和操作系统,早期由Google开发(在华注册商标名为“安致”),后由开放手机联盟(Open Handset Alliance)开发。它采用了软件堆层(software stack,又名以软件叠层)的架构,主要分为三部分。低层以Linux内核工作为基础,只提供基本功能;其他的应用软件则由各公司自行开发,以Java作为编写程序的一部分。另外,为了推广此技术,Google和其它几十个手机公司建立了开放手机联盟。Android在未公开之前常被传
30、闻为Google电话或gPhone。大多传闻认为Google开发的是自己的手机电话产品,而不是一套软件平台。到了2010年1月,Google开始发表自家品牌手机电话的Nexus One。目前SDK版本更新到Android 4.0以上。4.1.2特性Android系统有如下的几大特性:(1)应用程序框架 支持组件的重用与替换;(2)Dalvik虚拟机 专门为移动设备做了优化;(3)内部集成浏览器该浏览器基于开源的WebKit引擎;(4)优化的图形库包括2D和3D图形库,3D图形库基于OpenGLESS QLite 用作结构化的数据存储;(5)多媒体支持包括常见的音频、视频和静态印象文件格式(如
31、MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)GSM电话(依赖于硬件)蓝牙Bluetooth, EDGE, 3G, and WiFi (依赖于硬件)照相机,GPS,指南针,和加速度计(依赖于硬件);(6)丰富的开发环境包括设备模拟器,调试工具,内存及性能分析图表,和Eclipse集成开发环境插件。4.1.3 Android基本框架(Android Architecture)Android框架图如图4-1所示。图4-1 Android Architecture(1)ApplicationsApplication Android会同一个核心应用程序包一起发布
32、,该应用程序包包括email客户端,SMS短消息程序,日历,地图,浏览器,联系人管理程序等。所有的应用程序都是用JAVA编写的。(2)Application FrameWork 所有的应用程序都由一系列的服务和系统组成,包括:可扩展的视图(Views)可以用来建应用程序,包括列表(lists),网格(grids),文本框(text boxes),按钮(buttons),甚至包括一个可嵌入的web浏览器;内容管理器(Content Providers)使得应用程序可以访问另一个应用程序的数据(如联系人数据库),或者共享它们自己的数据;资源管理器(Resource Manager)提供非代码资源的
33、访问,如本地字符串,图形,和分层文件(layout files);通知管理器(Notification Manager)使得应用程序可以在状态栏中显示客户通知信息;活动类管理器(Activity Manager)用来管理应用程序生命周期并提供常用的导航回退功能。(3)Libraries库 Android 包括一个被 Android 系统中各种不同组件所使用的 C/C+ 库集。该库通过 Android 应用程序框架为开发者提供服务。以下是一些主要的核心库:系统C库 一个从BSD继承来的标准C系统函数库(libc),专门为基于 embedded linux 的设备定制。媒体库基于 PacketVi
34、deo OpenCORE;该库支持录放,并且可以录制许多流行的音频视频格式,还有静态印像文件包括MPEG4, H.264, MP3, AAC, AMR, JPG, PNG。Surface Manager对显示子系统的管理,并且为多个应用程序提供2D和3D图层的无缝融合。 LibWebCore一个最新的web浏览器引擎用来支持Android浏览器和一个可嵌入的web视图。 SGL 一个内置的2D图形引擎 3D libraries基于OpenGL ES 1.0 APIs实现;该库可以使用硬件3D加速(如果可用)或者使用高度优化的3D软加速。 FreeType位图(bitmap)和向量(vector
35、)字体显示。SQLite一个对于所有应用程序可用,功能强劲的轻型关系型数据库引擎。(4)Android RuntimeAndroid 包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。Dalvik是针对于同时高效地运行多个VMs来实现的。Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。Dalvik虚拟机依赖于Linux的一些功能
36、,比如线程机制和底层内存管理机制。(5)Linux内核Android 的核心系统服务依赖于 Linux 2.6 内核,如安全性,内存管理,进程管理,网络协议栈和驱动模型。Linux 内核也同时作为硬件和软件堆栈之间的硬件抽象层。4.1.4 Android系统的四大组件在Android系统中,为我们提供了四大基本组件,每个组件是一个视图,但是有些是可见的,有些是不可见的视图,像Activity,ContentProvider是可见的视图,Service和BroadcastReceiver是不可见的,它们只在系统的后台运行。下面分别介绍四大组件:(1)Activity 简介在Android系统中A
37、ctivity提供可视化的用户界面,一个Android应用通常由多个Activity组成。多个Activity组成了Activity栈(Stack),当前活动的Activity处于栈顶。Activity有自己的生命周期,由Android系统来控制。(2)Service 简介顾名思义Service就是运行在后台的一种服务程序,一般很少和用户交互,因此没有可视化界面定义一个Service类比较简单,只要继承Service类,实现其生命周期中的方法就可以了。一个定义好的Service必须在AndroidManifest.xml配置文件注册,通过元素声明才能使用.Service有自己的生命周期,我们可
38、以调用startService()启动一个Service或者bindService()方法来绑定一个存在的Service (3)Broadcast Receiver 简介 Broadcast Receiver 顾名思义广播接收器,它和事件处理机制类似,只不过事件处理机制是程序组件级别的(例如,某个按钮的单击事件),而广播事件处理机制是系统级别的。到目前为止我们可以使用Intent来启动一个程序组件,我们还可以通过使用sendBroadcast()方法来发起一个系统级别的事件广播来传递消息。我们可以在你的应用程序中实现Broadcast Receiver来监听和响应这些广播的Intent (4)
39、ContentProvider简介 Content Provider 用来保存和检索数据,并且使应用程序之间相互访问数据成为可能。它是跨应用程序共享数据的唯一方法。Android为常用的数据类型(如:音视频、图片和联系方式等)提供了大量的Content Provider。它们被定义在android.provider包下面。通过这样定义好的ContentProvider 我们可以方便的进行数据操作。当然我们必须拥有适当的权限。我们也可以自己来定ContentProvider共享我们的数据,方便用户的访问。 4.2 搭建Android开发环境任何事物要运行,都要有它的环境,Android也有它的环
40、境才能够运行,下面介绍Android的开发环境配置。搭建开发环境需要的软件:(1)操作系统:Windows XP;(2)软件包:Android SDK(Software Development kit Java Development kit) ADT(Android Develoopment Tool);(3)IDE环境:Eclipse IDE+ADT Eclipse3.5;JDK:Java Runtime Environment虚拟机 、(JDK)Java Development kit。安装步骤如下:(1)第一步:安装Java虚拟机sun-java6-jdk版本;(2)第二步:安装Ecl
41、ipse3.5,官网http:/www.eclipse.org/downloads/。选择版本进行安装;(3)第三步:安装Android SDK:首先要下载SDK如图4-2所示,可以在这个网址下载 ,选择相应的系统进行安装;图 4-2 下载SDK图 4-3 Eclipse选择对话框(4)第四步:安装Android ADT插件运行Eclipse,选择help-install new software 选择add,将会弹出一个框(如图4-3所示)点击OK,选择要安装的软件,按next,然后选择接受协议(如图4-4所示),直到安装成功,重启Eclipse软件,设置Android SDK Home,W
42、indow-refrence在SDK location中输入SDK Tools路径:D:android softwareandroid-sdk-windows 点击OK。这样Android环境就已经搭建成功了。图 4-4 SDK4.3 Android常用工具的使用(1)创建Android Virtual Devices(AVD),android create avd -n -t - ;(2)使用android list target命令列出当前可用的SDK版本;(3)模拟器(Emulator)的使用,启动和停止模拟器:emulator -avd ,Android Debug Bridge(AD
43、B);(4)查询当前模拟器实例数量:adb devices;本地机器和模拟器之间相互拷贝文件,D:adb push d:test.txt /sdcard/,D:adb pull /sdcard/test.txt d:/;(5)安装apk应用程序,adb push d:test.apk /sdcard/,adb install test.apk;使用shell命令;在DOS命令行输入adb shell 便进入shell命令行了可以使用exit退出shell。4.4 Android 项目4.4.1 Android项目Android的四大基本组件:Activity(活动),Service(服务),B
44、roadcastReceiver(广播),ContentProvider(内容提供者),各组件之间要进行切换需要一个意图或企图Intent类,通过启动StartIntent()方法来使各组件进行跳转Android的五大布局方式:LinearLayout(线性布局) FrameLayout(帧布局) TableLayout(表格布局) AbsoluteLayout(绝对布局) RelativeLayout(相对布局)五种布局方式可以相互嵌套,Android各种漂亮的界面都是通过嵌套布局而实现的。Android的线程,以及线程之间通信的中介:Handler类Android数据库:在第三章已经介绍过
45、了。这里不再介绍Android配置文件:AndroidManifest.Xml及res资源文件中各种属性布局方式引用的资源等图4-5 EmulatorAndroid系统将插件ADT集成到了Eclipse工具上,因此,一个Android程序启动后,系统会启动一个模拟器(Emulator)如图4-5所示,该模拟器是一款手机板的样式,拥有手机硬件的基本操作。我们也可以将右边的键盘通过代码属性设置将其隐藏,界面的大小可自由设定,目前最大支持800X600的分辨率。4.4.2 Android工程程序结构图4-6-图4-8为音乐播放器代码结构和各界面的配置文件,图像资源等,图4-6为一个Android工程所必须的结构,图4-7为该播放器的.Java文件,图4-8为播放器所用到的字符串,字体大小,字的颜色和布局等配置文件,图4-9为该播放器的图片资源。 图4-6 工程目录 图4-7 源代码 图4-8 配