移动终端应用程序设计方法研究.docx
- 文档编号:11231486
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:19
- 大小:683.57KB
移动终端应用程序设计方法研究.docx
《移动终端应用程序设计方法研究.docx》由会员分享,可在线阅读,更多相关《移动终端应用程序设计方法研究.docx(19页珍藏版)》请在冰豆网上搜索。
移动终端应用程序设计方法研究
移动终端应用程序设计方法研究
作者:
王倩萍指导教师:
程树林
摘要:
目前,移动终端设备在我们的日常生活中越来越普及,这主要是基于它的方便和易操作性。
能基于不同的操作平台,开发出不同的应用,是本文的主要内容。
本文主要以Android作为出发点,以此为例,探究如何在此操作平台上对应用的开发研究,在搭建了Android开发环境后,用一些语言在上面进行程序的编写,运行,以达到移动应用的最终生成;本文将以一个播放器的生成展开讨论研究。
关键词:
Android,移动应用开发,系统架构,播放器
0引言
人类对于自由和交流的渴望是无止境的,技术的发展使得人类对自由的梦想逐渐变为现实,让移动终端从最初的BP机,到现在的PDA,智能手机。
就像一台戏总需要一个舞台,通过舞台的完美配合以及自身的演绎才能达到完成的效果。
我们想要开发一个应用程序总需要一个编辑它的工具,以及一个能让它完美运行的环境,只有外部条件达到,才能在这个环境下开发我们想要的应用程序,才能让我们应用程序有地运作。
那么目前我们的移动终端有很多种,最火的莫过于苹果和三星旗下的手机,平板电脑之类。
它们分别的运行系统是ios、android。
能在大众之间普遍流行起来最主要的原因就是它傻瓜似的操作能达到我们想要的结果。
Ios系统是由苹果公司为iPhone开发的操作系统。
它是给iPhone,iPodtouch和iPad使用。
但ios仅限于苹果产品的使用,其它开发移动产品的用户是不能使用它的,这时google开发的android系统就分得不少的市场。
而在这之前一直属于手机市场老大的Nokia却由于它的局限性似乎越来越退出大众视线。
Nokia大部分手机均是使用Symbian系统,但由于其发展受到局限性,没有android的可开发深度性高。
因此Android以其简单易操作和可扩展性深受大众青睐。
在这样的环境下,人们可以开发自己想要的其它应用程序,放在移动终端上应用。
当我们搭建了一个完美的运行环境时,我们仍需舞台上的主角,应用程序的开发。
移动应用程序的开发工具有许多种,其中比较常用的有AppMaker,MobileNation,Biznessapp等等,都有它们适用的操作系统平台和应用程序的开发方法,像Biznessapp就是一个纯傻瓜似的构建app的平台。
用户完全不需要具备任何编程知识,只要进行按钮勾选及拖拽,就能完成大部分设计工作。
本文就以在安装了eclipse的环境下,用java语言编写移动应用程序,最后编译,运行,以达到目的。
本文就以在Android环境下开发一个播放器为例来具体说明是如何在移动终端上应用程序的设计。
1Android简介
Android是Google在2007年发布的一款全新的智能手机终端操作系统和移动应用开发平台,它基于Linux内核,由操作系统、中间件、用户界面和应用软件组成,是一个开放而完整的移动“软件栈”。
因此,自发布以来Android立刻受到了业界的广泛关注,并很快成为主流。
为了提供更加完善的功能和方便开发人员,Google对Android平台的SDK更新很快,目前已发布3.0版本,开发人员可以利用SDK中所提供的工具,为基于Android操作系统的手机进行移动应用开发。
本文将详细阐述Android平台的组成、系统架构、API、应用程序框架以及该平台下应用程序的基本开发方法[1]。
本项目是一款基于Android手机平台网络播放器,使Android手机拥有个性的播放器,让手机主人随时随地处于音乐和视屏的中快乐之中。
使人们的生活更加多样化。
也使设计者更加熟练Android的技术和其它在市场上的特点。
2Android平台的组成和系统架构
2.1Android平台的组成
Android不仅是一种用于移动终端设备的操作系统,更是一个开源的体系架构。
它大量应用了开源社区的各项成果,并针对移动设备进行了充分优化。
Android主要包含以下功能组件[2]:
1)经Google针对移动设备裁剪和优化的Linux内核。
2)由Google重新实现的Java虚拟机Dalvikvm。
3)大量的函数库和服务,如浏览器引擎WebKit,数据库SQLite。
4)常用的应用程序,如拨号程序和通讯录等。
5)一套完整的SDK(SoftwareDevelopmentKit),提供了使用Java语言进行Android应用开发的API类库和工具集(包括Android模拟器和EclipseIDE下的开发工具插件以及一组用于在模拟器和终端设备上打包、安装、调试和测试应用程序的工具)。
6)经过优化的轻量级2D和3D图形引擎,用于支持各种游戏的开发。
7)提供常见音频、视频和图片格式支持的底层多媒体库。
8)用于支持GSM、蓝牙、3G、WiFi、摄像头、GPS和各种输入设备的驱动程序。
2.2Android的系统架构
Android操作系统自顶向下分为4层,分别为应用层、应用框架层、函数库和虚拟机层以及Linux内核层。
其架构如图1所示。
图1AndroidArchitecture(android软件结构图)
其软件层次结构自上而下分为以下几个层次:
第一层:
应用程序(Application)。
第二层:
应用程序框架(ApplicationFramework)。
第三层:
各种库(Libraries)和Android运行环境(RunTime)。
第四层:
操作系统层。
1)应用层(Application)
应用层提供了一系列核心应用程序,包括邮件客户端、SMS(短信)、H历、Google地图、Web浏览器(Brower)和通讯录(Contacts)等。
这一层所有(包括开发人员自己开发的)应用程序都是使用Java语言编写的。
值得一提的是,这些应用程序可以同时执行,比如用户可以一边听音乐一边阅读邮件。
2)应用框架层(ApplicationFramework)
开发者完全可以访问核心应用程序所使用的API框架。
该应用程序架构用来简化组件软件的重用;任何一个应用程序都可以发布它的功能块并且任何其他的应用程序都可以使用其所发布的功能块(不过的遵循框架的安全性限制)。
该应用程序重用机制使得组件可以被用户替换。
所有的应用程序都由一系列的服务和系统组成,包括:
▲可扩展的视图(Views)可以用来建应用程序,包括列表(lists),网格(Grids),文本框(Textboxes),按钮(button),甚至包括另一个可嵌入的web浏览器。
▲内容管理器(ContentProviders)使得应用程序可以访问另一个应用程序的数据(如联系人的数据库),或者共享它们自己的数据。
▲资源管理器(ResourceManager)提供非代码资源的访问,如本地字符串,图形,和分层文件(LayoutFiles)。
▲通知管理器(NotificationManager)使得应用程序生可以在状态栏中显示客户通知信息。
▲活动类管理器(ActivityManager)用来管理应用程序生命周期并提供常用的导航回退功能。
3)函数库层(Libraries)
Android包括一个被Android系统中各种不同组件所使用的C/C++库集。
该库通过Android应用程序框架为开发者提供服务。
4)运行时环境(Runtime)
Android包括了一个核心库,该核心库提供了JAVA编程语言核心库的大多数功能。
每一个Android应用程序都在它自己的进程中运行,都拥有一个独立的Dalvik虚拟机实例。
Dalvik是针对于同时高效地运行多个VMS来实现的。
Dalvik虚拟机执行.dex的Dalvik可执行文件,该格式文件针对最小内存使用做了优化。
该虚拟机是基于寄存器的,所有的类都经由JAVA汇编器编译,然后通过SDK中的dx工具转化成.dex格式由虚拟机执行。
Dalvik虚拟机依赖于linux的一些功能,比如线程机制和底层内存管理机制。
5)Linux内核层(LinuxKerne1)
Android基于Linux2.6内核来提供操作系统的核心服务,如进程管理、内存管理、安全性、网络协议和驱动模型。
内核也作为硬件和其余软件栈之间的一个抽象层。
3Android应用软件的开发核心技术
3.1Android应用开发语言
JAVA是Android上的主流开发语言,各种支持也最完善。
Android发布的API和SDK也都主要是面向JAVA开发人员的。
我的网络播放器实例也是用JAVA开发的。
3.2Android应用程序组件
Android应用程序最大的一个特点就是每个应用都由若干组件构成。
而且各个应用程序的组件还可以相互调用(需要在代码中设置相应权限)。
例如假设我们需要编写一个内嵌于网页的程序,那么我们无需亲自编写浏览器,而是可以直接调用系统自带的ChromeLite浏览器组件。
又如假设我们编写了两个应用程序,其中一个程序中有列表显示图标的组件,那么我们在另一个应用程序中就可以使用该组件,而不需要在编写该功能。
也就是说,不同于我们平常编写的程序,Android的应用程序不是单一入口,而是可以从代码的不同位置启动。
这就要依靠组件来实现[3]。
Android应用程序的组件有以下四种:
3.2.1Activities
一个Activity实际上表现出来的就是一个程序的界面。
这个界面可能有许多不同的形式,比如有列表形式,有文字形式,有图像格子等形式。
一个应用程序也可能有不止一个Activity。
比如一短消息的程序,需要有列表显示所有消息的Activity,还至少需要一个编辑短信的Activity,还可能需要设置、菜单等界面[4]。
每个Activity都有一个默认的窗口用于绘制界面,一般情况下,它是充满全屏的,但是我们可以通过程序控制它,使其小于屏幕大小,也可以控制其浮动于其他窗口之上(如Android中的Toast信息)。
Activity中显示出来的内容其实是由view堆叠形成的,view是由View基类派生出来的各种形式的界面元素,如ListView,GridView等等,通过组合这些view,就形成了一个可见的Activity。
我们可以用Activity.setContentView()方法来设置一个Activity中所要显示的view。
3.2.2Services
Service是一种没有界面的组件,同我们平常在Windows或Linux系统中所理解的“服务”一样,Android上的service也是运行在后台的,运行时间可以从系统启动到系统关闭为止。
对于许多应用程序来说,service组件式至关重要的。
以下载管理器为例,用户肯定希望能够在切换到其他程序时仍然在后台继续下载,这就需要用到service完成下载工作。
而显示下载进度、已下载文件等信息则由Activity完成,同时我们还希望控制下载过程,如停止、继续等,这就需要Activity与service之间进行通信。
Android允许activity连接到或者绑定到service上,这样就可以让用户在界面上控制后台service的行为。
3.2.3Broadcastreceivers
Broadcast意为广播消息,Android系统自身会发出许多广播消息,如电量不足,用户修改了全局设置等,各个应用程序也以向整个系统广播消息,如文件下载。
Broadcastreceiver则是程序中专门用来接收广播消息的组件,它没有界面显示,只负责监听、接收广播消息,然后根据程序逻辑,启动其他组件去处理广播消息。
它可以启动一个Activity来同用户交互,也可以使用NotificationManager向用户发出通知。
NitificationManager的通知形式有许多种,比如说振动、响铃、闪LED灯,还可以在Android界面的消息栏处显示信息。
3.2.4Contentproviders
Contentprovider是一种为其它应用程序提供数据的组件。
这些数据可以保存在文件中,也可以保存在SQLite数据库中,还可以以其他任何有效的方式保存。
ContentProvider类为我们提供了一系列保存数据的方法供我们调用,可以很方便地存储数据。
其它应用程序在需要使用这些数据时,可以用ContentResolver对象,使用其中的方法。
ContentResolver可以与任何contentprovider交互,获取其中的数据。
只需要某个组件,Android就会尽力保证它的可用;如果该组件还没有启动,就启动它,如果该组件所属的应用程序还没拥有一个进程,则为它启动一个进程,如果系统资源不足以容纳一个新的进程,则将后台的某个进程杀死为新进程腾出资源[5]。
4Android应用开发环境配置
任何事物要运行,都要有它的环境,Android也有它的环境才能够运行,下面介绍Android的开发环境配置。
4.1开发环境的搭建
操作系统:
WindowsXP或Windows7或linux
软件包:
AndroidSDK(SoftwareDevelopmentkit),ADT(AndroidDeveloopmentTool)
IDE:
EclipseIDE+ADT
JDK:
JavaDevelopmentkit
4.2安装步骤如下:
第一步:
安装Java虚拟机SunJava虚拟机(jre)V1.7.0.08版本。
第二步:
安装Eclispse3.5工具官网http:
//www.eclispse.org/downloads/选择版本(图2)下载完成后直接解压即可使用,无需安装。
图2网页截图
第三步:
安装AndroidSDK:
首先要下载SDK,可以在这个网址下载Http:
//,选择相应的系统进行安装。
图3android-sdk下载地址
第四步:
安装AndroidADT插件。
启动Eclipse,选择“Help”>“InstallNewSoftware...”,准备安装插件,Eclipse版本不同,打开的对话框也是不同的。
图4Eclipse在线安装插件
点击图4“Add”弹出图8所示对话框。
图5Eclipse在线安装插件
在“Location”中输入AndroidADT插件在线下载地址:
https:
//dl-
设置AndroidSDKHome,Window->refrence在SDKlocation中输入SDKTools路径:
D:
\androidsoftware\android-sdk-windows点击OK
这样Android环境就已经搭建成功了
图6安装sdk后的截图
4.3Android模拟器中sd卡的创建和文件的上传
在Android模拟器中,初始时没有sdcard的,为了存放音乐文件,需要自己创建sdcard,我们先来看看如何创建sdcard以及文件上传。
4.3.1SD卡的创建
通过Android的Tools来创建sd卡并导入进来。
(1)打开dos,windows+R键打开。
转换到你的sdk安装包的tools目录下,如我的目录如下:
F:
\adt-bundle-windows-x86-20130219\sdk\tools。
(2)创建sd卡。
在命令行中输入:
mksdcard1024MF:
\androidsdcard\sdcard.(这个1024M就是我们要创建的SD卡的大小,还是根据自己的需要来输入,最后面的那个F:
\androidsdcard\sdcard.img就是所设置的SD存放路径,这里也可以根据我们自己的需要改变路径的,但要注意路径中不能有空格出现)。
(3)在Eclipse里面创建模拟器,并以该SD开来创建。
(4)创建完成之后,启动该模拟器。
可以在Android SDKandAVDManager里面指定模拟器并启动。
(5)同样打开Eclipse的DDMS-File—Explorer查看sd卡是否安装成功[6]。
5Android应用开发实例
配置好开发环境后,使用Eclipse+ADT开发Android应用程序就很方便了。
开发流程如下:
①创建一个Android项目;②使用XMLlayout设计和编辑用户界面;③继承Activity类并覆盖相应的方法,加入功能代码;④在模拟器或移动设备上运行、调试和测试程序。
下面以一个简单的播放器为例来阐述下Android应用的开发过程与方法。
程序的基本功能是播放本地的音频文件,使用Java语言开发。
首先通过Eclipse的File一>New一>Project菜单创建“AndroidProject”项目,然后在新建Android项目对话框中输入项目的名称、目标平台等信息。
完成后向导自动生成应用程序框架,然后在此基础上通过修改自动生成的代码来实现自己的功能即可。
5.1功能需求
5.1.1播放器的基本控制需求
根据项目的目标,我们可获得项目系统的基本需求,一下从不同的角度来描述系统的需求,并且使用用例图来描述,系统的功能需求,我们分成四部分来概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器扩展卡需求。
图7播放器基本控制图
在播放器正在运行时,用户单击“播放”按钮,播放器将播放选中的播放列表中的音乐,并同时显示当前进度;当歌曲未暂停或停止时,用户单击“暂停”按钮,播放器将进入暂停状态;播放器正在播放或暂停时,用户单击“停止”按钮,播放器将停止播放或暂停时,用户点击“上一首”或者“下一首”按钮,播放器将播放上一首或下一首歌曲。
5.1.2功能需求(时序图)分析
从时序图中可以看出播放器中信息发送和调用过程:
图8音乐播放器的时序图
5.2系统结构图和流程图
图9音乐播放器系统流程图
5.3系统界面需求
播放器界面要求布局合理,简约,颜色舒适,控制按钮友好,能让用户一眼就能看出各个按钮的作用及操作方法。
能实现要求的功能,但又不重复。
要考虑到不同手机屏幕大小可能不一样,应尽量兼容大多数手机屏幕尺寸,使之显示无障碍。
5.4系统性能需求
根据Android手机系统要求无响应时间为5秒,所以就有如下性能要求:
(1)当要求歌曲/视屏播放时,程序响应时间最长不能超过5秒。
(2)当要求歌曲/视屏暂停时,程序响应时间最长不能超过5秒。
(3)当要求歌曲/视屏停止时,程序响应时间最长不能超过5秒。
(4)当要求歌曲/视屏上/下一首时,程序响应时间最长不能超过5秒。
(5)界面切换响应时间最长不能超过3秒。
5.5运行环境需求
(1)操作系统:
Windows7。
(2)支持环境:
Android2.2版本。
(3)开发环境:
Eclipse3.5ADT14.0.0。
6网络播放器的详细设计
6.1播放器的主界面的设计
Android的每一个可视化界面,都有其唯一的布局配置文件,该文件里面有各种布局方式,各种资源文件如图像,文字,颜色的引用,程序在运行时,可以通过代码对配置文件进行读取。
这样就可以形成不同的可视化界面和绚丽的效果。
图10播放器界面设计
为了实现网络播放器的基本功能:
音乐播放、暂停、停止、上一首、下一首网络搜索,用事件监听。
主界面中一共有7个按钮和一个seekbar(可拖动的进度条),都是采用的事件监听方式来控制的其相应的功能。
按下一个按钮就会执行一系列相应的动作如:
打开本地视屏文件、上一个文件、播放/暂停、下一个文件等等。
本地文件列表是用listview来现实的,我将listview布局放入一个对话框中,当我们点击本地文件按钮时我们就可以用对话框来显示listview中的文件名称,同时我们点击相应的文件名称是就可以播放该文件内容。
这一功能是调用listview的监听来实现的。
同时也设置了屏幕监听,当我们点击屏幕是这些按钮又会被调用出来,再次点击就会暂停播放,双击是全屏和退出全屏。
6.2播放器的代码编写
Android本身支持多种媒体文件的播放,其API类库中的MediaPlayer类就可以完成想要的功能。
首先在程序中定义一个MediaPlayer对象m_player,然后调用其setDataSource(path)方法来指定要播放的媒体文件,其中path为媒体文件的路径,然后再通过调用setAudioStream(AudioSystemSTREAM_MUSIC)方法设置流媒体的类型为音频来完成准备工作。
用户界面的设计是基XMLlayout的,可通过手工编写XML代码进行,也可以通过可视化设计工具轻松完成。
为了简单起见,音乐播放器界面中仅包含显示当前曲目的文本便签和用于播放控制的“打开”、“播放”、“暂停”和“停止”四个按钮。
用户界面代码如下:
(1)文件列表按钮布局:
android: id="@+id/button1" android: layout_width="wrap_content" android: layout_height="wrap_content" android: src="@drawable/eject" android: scaleType="fitCenter" android: background="#00000000"/> (2)暂停/播放按钮布局: android: id="@+id/button3" android: layout_width="wrap_content" android: layout_height="wrap_content" android: layout_gravity="center_vertical" android: layout_weight="1" android: scaleType="fitCenter" android: background="#00000000"/> 基本功能简介: 本地文件列表是用listview来现实的,我将listview布局放入一个对话框中,当我们点击本地文件按钮时我们就可以用对话框来显示listview中的文件名称,同时我们点击相应的文件名称是就可以播放该文件内容。 这一功能是调用listview的监听来实现的。 在软件帮助按钮功能实现上使用一个imagbutton同时给这个按钮设置监听,当按钮被按下就会触发buttonlistener事件,这样就会执行我们在监听器中的相应动作。 主界面的中间就是MediaPlyer,当我们在播放视屏时,我调用了android中关于设置图片透明度的相关函数把主界面的一些按钮隐藏掉这样跟方便观看视屏和听音乐。 同时也设置了屏幕监听,当我们点击屏幕是这些按钮又会被调用出来,再次点击就会暂停播放,双击是全屏和退出全屏。 6.3Android媒体播放原理 Android源程序已经为我们封装了一个接口类,叫MediaPlayer。 该接口在执行前需要一个数据源,通过如下四个步骤: 第一步: MediaPlayer.reset();复位操作,为以后的媒体准备播放做准备。 第二步: 传入歌曲/视屏数据源,这里也是一个数据源: MediaPlayer.setDataSource(Stringpath);参数需要一个路径,该接口类在收到路径后将其转化为数据源。 第三步:
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 移动 终端 应用 程序设计 方法 研究