基于2bandroid2b系统2bmp5播放器设计与实现_第1页
基于2bandroid2b系统2bmp5播放器设计与实现_第2页
基于2bandroid2b系统2bmp5播放器设计与实现_第3页
基于2bandroid2b系统2bmp5播放器设计与实现_第4页
基于2bandroid2b系统2bmp5播放器设计与实现_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

独创性(或创新性)秉承学校严谨的学风和优良的科学道德,本人所呈交的是我个人在注和致谢中所罗列的内容以外,中不包含其他人已经或撰写过的研究成果;也不包含为获得西安电子科技大学或其它教育机构的或而使用过的材料。与我一同工作的对本做的任何贡献均已在中做了明确的说申请与资料若有不实之处,本人承担一切的。 日期:关于使用的说明本人完全了解西安电子科技大学有关保留和使用的规定,即:研究生在校攻读期间工作的知识单位属西安电子科技大学。学校保留送交的复印件,允许查阅和借阅;学校可以的全部或部分内容,可以允许采用影印、缩印或其它保存。同时本人保证,毕业后结合研究课题再撰写的文章一律署位为西安电子科技大学。(的在后遵守此规定本属于,在年后适用本书本人签名 期导师签名 期ThedesignedpurposeofMP5playerbasedonAndroidsystemistobringusersmoreconvenienttoenjoyingmusic,watchingmovies,readingbooks,surfingintheInternet.Withpowerfulfeaturesandeaseofoperation,moreandmoreusersareusing.Androidafterreleasedit.Thesmartphonesystemisinthegradualoccupationofthemarket.Withsinglefeatures,traditionalMP5playerhasbeenincreasinglyunabletomeettheneedsofcustomers.ThisMP5playerbasedonAndroidsystemimplementedfunctionsofMP5playeronthebasisoftheAndroidwiththecharacteristicsofMP5playerandthesatisfactionofusers’needtoAndroidsystem.Thispaperdescribestheimplementationofthesystemsuchas,audio,e-books,andnetworkfunctions,theUIdesign,andhowtointeractwithuserfriendly.ThissystemismainlydesignedonthebaseofAndroidLauncher.ItwasdevelopmentedinApplicationlayerwithEclipse,JDKandSDKasadevelopmenttool,theAndroidapplicationdevelopmentmodel,usingdatabase,theWebKitbrowserengine,andtheDalvikvirtualmachine.ThedevelopmentresultistheApkpre-installedinparticularAndroiddevice.Thesystemmadeanintergrationof,audio,e-books,andnetworkintegration,whichbringusersmoreconvinient.ThefunctionsoftheMP5playerbasedontheAndroidhasbeentested,andgraduallyimproved.NowthisMP5playerisintroducedtothemarketasanewkindofMP5player.Keywords: Application MP5第一章引 课题提出背 国内外同类课题研究现 项目研究目 章节安 第二章相关技 开发平台介 Android平台简 Android平台特 Android系统组 主要技 NDK简 系统安全机制简 系统上层开发简 系统中间层开发简 系统内核简 开发工 本章小 第三章系统需求分 系统总体需求分 子模块需求分 桌面模块的需求分 模块需求分 音乐模块需求分 模块需求分 网络模块需求分 本章小 第四章总体设 系统架构设 系统主要功能设 子模块总体设 4.3.1模块总体设 音乐模块总体设 网络模块总体设 模块总体设 数据库设 4.6本章小 第五章系统详细设计与实 5.1Launcher详细设计与实 5.2模块详细设计与实 5.3音乐模块详细设计与实 5.4模块详细设计与实 5.5网络模块详细设计与实 5.6本章小 第六章系统测 测试环 测试方 功能测 性能测 本章小 第七章结束 致 参考文 预计该MP5器将会实现的主要功能有:音频,,,阅读,网络电视。该MP5器可以通过WIFI连接网络,还可用。该MP5器将会给用户的带来的方便和乐趣。1.4章节安何实现的。对其中的算法和函数加以介绍。开发平台介oid是公司个性的移动设备综合平台7]工作所需要的全部,并且不存在任何如以往阻碍移动产业创新的专8droidinuxJvadoid是目前最具可移植性机操作系统之一9。Android是开源系统,能够有效得降低的成本,以降低整体的价格,最终让每个用户都能够的获取信息[10]。Android提供了一个从操作系统(OperatingSystem)到应用程序(Application)的完整栈,同时又允许人们定制开源所带来的另一个好处就是允许厂商自主解决问题。和开放联盟合作开发了Android,该由包括T-Mobile、中国移动、高通、摩托罗拉和HTC在内的30多家无线应用技术的领军企业所组成[11]。通过与开发商、设备制造商、运营商和其他有关各方结成相对次的合作伙伴关系,用建立标准化、开放式移动平台的方式,在移动产业之内形成一个开放式的生态系统12oid括、、、高通、摩托罗拉、三星、ile以及中国移动在内的三十多家企业都将基于此平台开发和平板电脑的新型业务,各种应用之间的互联性和通用性将在最大程度上得到保持13。该开放表示,oid平台可以促进移动设备创新,带给用户最优越的移动服务的体验,于此同时,开发商们也将得到一个新的开放级别,并且更方便的进行协同合作,从而保障了新型移动设备的研发速度14。允许厂商自主解决问题是开源软的另一个好处。Dalvik针对移动进行了大幅的优化,占用资源更少,运行效率更高[15]:是一种结构化的数据工具。是一款经典的轻型数据库,它是为而设计的,而且目前已经被用在很多产品中,它占用的资源相当低,在设备中,大概只需要几百K的内存就足够了。它能够支的处理速度比它们都快。虽然很小巧,但是它支持的SQL语句不会逊色于提供功能:支持各种通用音和静态图像格式(如:GIFMPEG4PNGMP3、AAC、AMR、JPG)[17]GSM技术:GlobalSystemforMobileCommunications,即全球移动通讯系统,俗称“”,是第二代移动通信技术,该移动通信技术标准于欧洲,其开发的目的是让全球各地的用户能够共同使用同一个移动网络标准,使用户使用一部就可以行遍全球。蓝牙(Bluetooth)、WiFi(WirelessFidelity)、3G,andEDGE(EnhancedDataRatefor取代短距离电缆,实现语音和数据的无线传输[18]。EDGEGSM演进技术[19]GSM3GGSM系统里采用4倍[21]。WiFi,无线保真技术,和蓝牙技术相同,都属于可以在家庭和中使用的短距离的无线技术。该技术所使用的是2.4GHz左右的频段,该频段目前尚属于没用的无线频段[22]。该频段目前可使用的标准有两个,分别为IEEE802.11a,IEEE802.1lb[23]。该技术有着其自身的优点。t(llgd,球的24颗所组成的。这个系统可以保证在地球上任一点,任时刻都可同时观测到4颗,从而保证能到该观测点的高度和,以便实现授时、导航、定位等功能。这项技术能用来引导飞机、车辆、船舶以及个人,使其安全、准确的沿着选定路线,准时到达目的地。GS,即全球。该系统由三部分组成:用户数据备份部分EclipseIDE(IntegratedDevelopmentEnvironment集成开发环境)本小节从应用程序、应用程序框架、AndroidAndroid系统的应用程序:Android系统会附带一些应用程序,包括,程序,应用程序框架:开发可以同那些应用程序一样,拥有框架APIS的所限。应用系统结构的设计简化了各组件之间的重用,同时任何应用都可ContentProviders(内容提供器),ContentProviders可以在某个应用之中其他应用的数据(例如簿),也可以共享自己的数据。如文本和布局文件。Android的库:Android的库被Android系统中的各种组件里,这些功能通过Android应用开发框架呈现给开发。Android运行时包括一组库,该库提供了Java语言库中的几乎全部功能。每一个Android应用程序运行在自己的进程里,使用自己Dalvik虚拟机实例[24]。该虚拟机可以让一个设备VM。DalvikDalvikExecutable即后缀为“.dex”的文件,这种格式的文件经过优化后占用非常少的内存。Dalvik虚拟机是基于器的,运行的是经过Java语言编译器后的类文件,这些文件通过“dx”工具被转换成DalvikExecutableLinux内核来实现一些潜在的功能,比如线底层内存管理。下面列举一些库。SystemClibraryBSDderivedC的设备MediaLibraries,基于Packet的OpenCore。该库提供了对许多流行的MP3、PNG、AMR、JPG和AAC等等。图形层的[25]webview是基于该引擎实现的或者提供高度优化的3D光栅器。7.FreeType主要技可以说是真正的开放式操作系统。本节对该MP5器系统开发过程中所使用的AndroidJava编程语言来开发应用程序,还可以通过NDK使用C/C++编程语言来开发应用程序,同时也可通过SL4A来使用其他(monoforAndroid)、Qt(qtforAndroid)等一些著名的编程框架也开始支持对AndroidMonoDroidC#编程语言来开发应用程序。同时,公司还于2009年特别发布了面向初学者的AndroidSimpleSencha、JavaScript、Mobl,PhoneGap、Dojo等等都已支持了Android开发。而在Android系统底层方面,Android使用C/C++作为开发语言。早期对Android应用程序的开发,通常通过AndroidSDK(即Android开发包),使用Java编程语言来开发应用程序,通过不同的开发包,使用的编用C或C++编程语言来开发应用程序同时还于2009年推出了AppAndroidJava开发在接口和功能方面,都体现出层出不穷的变化。考虑到了Java虚拟机的资源占用和效率问题,重新设计了Android的Java开发包,以便可以提高效率和减少对资源的占用,在这一点与J2ME等不同。C/C++开发方面Android的开发仅支持Java作为编程语言来开发20104AndroidNDK(AndroidNativeDevelopmentKit),NDKCC++Android应用程序,第一版的NDKAndroid开发中给广大使用C/C++的开发者带来了希望。NDK在功能方面还存在很多的局限性,例如:NDK并没有提供对应用程序的生命周期的;NDK也没有提供对Android系统中大各种UIAPI(应用程序交互接口)方面,当前NDK里也没NDKNDK已经在功能方面做了许多重大的改进。从此可以看出,NDK仍然需要不断的完善和发展,从目前的发展趋势来看,NDK一定可以做得更好。与系统,应用与应用开来。URI权限对特定数据段进行的私数据(如联系人或电子邮件),设备待机或设备网络等等。安装应用时,首先会检查程序签名涉及的权限,在经过用户确认以后,要求以下的权限:或彩信、拨打、修改/删除SD卡上的内容、日程信息、联系人信息、写入日程数据、精确的(基于GPS)地理位置、读取状态或识别、模糊的(基于网络获取)地理位置、对互联网的完全、置、开机自动启动、同步设定、终止运行中的应用、重启其他应用、设定偏好应用、拍摄、控制等等[26]。一款应用程序应该根据自身所提供的功能,申请合理的权限。使用者也可以分析一款应用所需的权限,从而简单的判定这款应用安全性27]。如果一款应用是具备功能的单机版,也不存在任何附加内容需要,这样它要求网络的权限就比较可疑了。AndroidActivity类创建窗口(Windows),处于活动中Activity就是Service(服务)。这两者之间通过ServiceConnection和AID(AndroidInterfaceDefinitionLanguage,即AndroidActivity的全部画面被其他Activity的画面完全遮盖时,该Activity便转换为停View类与“XMLlayout”UI(UserInterface)放置在窗口上,Android1.5ViewWidgetsWidgets也是机就的Widgets。至于ViewGroup是各种Layout(布局)的基础抽象类 class),ViewGroupViewGroup。View的构造函数不需要在Activity之中调用,而Displayable构造函数的却是必须的。在Activity中,要通过findViewById()方法来从XML文件之中取得View,AndroidView类的显示大部分是从XML文件中的。View与Event(事件)是关的,二者之tenrView.OnClickListener。此外还有ImageJ2MEBitMap。在中介方面,操作系统与应用程序之间是通过中介来沟通的,应用分为两层:虚拟机(VirtualMachine)和函数层(Library)。Bionic是经过Android改良的libc的版本。同时,Android还包含了Webkit,说的,WebkitAppleSafari2D3D的内容显示到屏幕上是通过SurfaceflingerAndroid使用的工具链(Toolchain)是自行开发的BionicLibc。Android使用以OpenCore为基础的多框架,OpenCore由7大块组成PVAuthor、PVPlayer、PacketMultimediaFramework(PVMF)、Codec mon、OperatingSystemCompatibilityLibrary(OSCL)共用数据库和私用数据库。用户可通过ContentResolver类取得对共用数据库的访Android采用Skia作为图形引擎,还搭配以OpenGL/ES。Skia的功能相LinuxCairoLinuxCairo相比Skia的功能还仅仅是雏形。2005SkiaChrome的图形引擎。虚拟机是一种“暂存器型态”的Java虚拟量全部存放于暂存器中,虚拟机的指令相对较少。Dalvik虚拟机可以有一个或多个实例(instance)AndroidDalvik虚拟机供其运行,使得系统在运行程序时可得到优化。DalvikJava字节码(ByteCode),其运行的以.dexAndroid具备其硬件抽象层HAL。HAL是能以封闭源码的形式为系统提供硬件驱动模块。HALAndroidframeworkLinuxkernel层隔开,Androidframework的开发可以在不考量驱动程序如何实现的前HALstub是一种(proxy)的概念,Stub是以*.so档文件的形式存在的。StubHAL层提供操作(operations)AndroidRuntimeHAL层Stubcallback(回调)这些操作函数。HAL之中包含了许Stub。Runtime只要说明其ModuleID,就可以取得其操作函数。在内核方面,Android是运行于Linux内核之上的,但并不是GNU/Linux。因GNU/Linux里所支持的功能,Android大部分都没有支持,其中包括FFmpeg、X11、Alsa、Cairo、Glibc、PangoGTK等都已经被移除。Android又以Skia取代Cairo、以Opencore取代FFmpeg、再以bionic取代Glibc等等。Android将驱动程序移到了userspace,从而使Linux驱动与Linux内核被彻底的分开。kernel/libc/bionic/kernelheaderfiles(内核头文件)。AndroidkernelheaderLinuxkernelheader产生的,这样做的目的是保留宏、数据DriverModel(驱动程序模型)等等。在Android源代码之前,首先要安装构建工具Repo来初始化源代码。AndroidRepo的目的是用来辅助Git。开发工开发该MP5器系统需要具备以下条件:Linux/Windows系统,Eclipse集成开发环境,JDK(eclipse运行环境),Android-SDK(Android开发环境)。EclipseJava的可扩展开发平台。就其本身而言,虽然大多数用户很乐于将Eclipse当作Java集成开发环境(IDE)来使用,Eclipse的目标却不仅限于此。Eclipse还包括插件开发环境(Plug-inDevelopmentEnvironment,PDE),这个组件主要针对希望扩展Eclipse的开发,因为它允许他们构建与Eclipse环境无缝集成的工具。由于Eclipse中的每样东西都是插件,对于给Eclipse提供插件,以及给用户提供一致和的集成开发环境而言,所有工具开发都具有同等的发挥场所。这种和一致性并不仅限于Java开发工具。尽管Eclipse是使用Java语编程语言的插件已经可用,或预计将会推出。Eclipse框架还可用来作为与开Eclipse的应用程序的一个突出例子是IBM®IBMJava开(eclipse运行环境JDK(JavaDevelopmentKit)是SunMicrosystems针对Java开发的产品。自Java推出以来,JDKJavaSDK[27]。JDKJavaJava运行环境,JavaJava基础的类库[28]。JDKJavax86平台的Jrocket在服务端运行SunJDK好SUNJDK5.0开始,提供了泛型等非常实用的功能,其版本也不断更开发环境SDK(softwaredevelopmentkit),即开发工具包。被开发工程师用于为特定的包、框架、硬件平台、操作系统等建立应用的开发工具的集合。因此,AndroidSDK指的即是Android专属的开发工具包。与相似,Android采用WebKit浏览器引擎,具备触摸屏、高级图形显示和上网功能,用户能够在上查看电子邮件、搜索和等,比等其他更强调搜索功能,界面更强大,可以说是一种融入全部Web应用的单一平台[29]。其最震撼人心之处在于Android系统的开放性和服务免费。Android是一个对第完全开放的平台,开发者在为其开发程序时拥有更大的度,突破了等只能添加为数不多的固定的枷锁;同时与WindowsMobile、Symbian等厂商不同,Android操作系统免费向开发提供,本章小计的方向。1.1需求分 该系统分为桌面模块,模块,音频模块,模块和网络模块五个子模块。该系统的五个子模块都具备托盘功能,同时音乐,和网络这三个d的P5图3. 3.1当用户初次打开该按钮所对应的应用盒子时,该应用盒子中会列出几个默认的应用程序。在这几个应用程序后面是一个添加按钮。当用户点击该按钮时,该3.2后,该应用程序列表会,并且复选框为选中状态的应用程序会被添加到应用从而使得用户在重启系统之后,这些新添加的应用程序不会。托盘为五个模块共有的视图。其中保存的是应用程序的快捷方式即应用一个添加按钮,当用户点击该按钮之后,在当前模块之中显示所有应用程序随着系统的重启而。当托盘上的图标数量达到四个时,若用户像其中添加快由于该系统是基于ndoid系统设计的,因此它支持横竖屏切换的功能。当用户转动屏幕方向,使得系统在横竖屏之间切换时,系统的主界面以及五个界面的视图都会做出相应的变化,方便用户的使用。上文对横屏时系统各个界,,模块和网络模块的顺序由上到下排列。其中可以拖动的环形按钮放在了屏幕左侧的正中间,用户可以将其拖动到五个模块的缩略图中达到进入所对应的主题模块的目的。托盘的位置在屏幕的最底部,其中最多可容纳的快捷方式的数量不变。(五个模块中的托盘样式与主界面中的托盘样式相同。)同时,在系统切换的该界面时,五个模块缩略图进入的动画也有相应的改变。音乐模块和模块的进入顺序为从左到右;模块的进入顺序为从右到左;网络模块的进入顺序为从左到右。五个模块按照从上到下的先后次序,一个模块动画结束之后,后一个模块的动画才开始。并且每一个模块的动画结束之后,其中包含的控件才显示出来。应用盒子界面:该系统屏幕的分辨率为800*480,在竖屏模式下屏幕的高为800480。因此,在竖屏模式下应用盒子视图和其中所有应用程序列表的视五个模块:在竖屏模式下,音乐模块中的模块拨盘的位置在屏幕的最上放,其下方依次是控制区,列表/应用盒子,以及托盘。在控制区中,左侧为音乐专辑的封面,右侧的上方为模式按钮和音量调节控件,其下方一次为歌曲名(10个汉字),歌手名(5个汉字),进度条,上一曲按钮,/暂停按钮,下一曲按钮。控制区,列表也会做出相应的调整以截图用指定或默认的器打开该影片,点为截图对应的位置。屏幕正中间3D视图的样式也有所改变,该视图中每一屏可以显示六个条目,即六个本地的视频文件,每个条目的内容包括截图,名称,总时间,剩余时间容的,当用户滑动时,当前内容会以翻转的形式逐渐,而新的内容会以居然1.2求分该MP5是基于Android系统设计和开发的。因此,设备启动后会用户首做的产品名为MP5,因此其主界面还带有鲜明的色彩,这点与Android标准主该主界面包括四个子模块的缩略图,分别为,音乐,网络,与电子Android5主界面可以拖动屏幕正中间的按钮进入的四个子模块的界面。下面将对四个子块。总体来说该系统桌面模块要具备的功能有:四个模块缩略的显示及与用户的的D的序。3.3MP5系统桌面模块用3.3系统的主界面被,音乐,网络,四子模块的缩略图以及下方的托统5的的。在横屏模式下,,音乐,网络,四个模块按照左上、右上、左下、右下5块的界面要由一个动画效果来显示,当系统当前的屏幕方向为横屏时(),四个模块的缩略图要按照先后顺序,从右上、左上、左下、右下四个位置滑动出来,一以。首先介绍一下四个模块中代表其的控件。模块的控件显示的是设打开封面所对应的。网络部分的控件显示的内容为浏览器的书签,即通过浏览器过网页模块的控件显示的是设备中的截图,截图为每个文件最近一的位置,若该没有过,系统会自动创建一张第一帧的截图。它频文件进行,的位置为截图记录的位置,若该从未过,则从视频起始位置。封面移到中间,同时,滑动过程中封面的角度会线性的改变。点击正中间的封面,可以以列表的形式列举出该专辑所包含的全部音乐的标题,点击列表中的某个标题就可以通过指定的应用程序(如系统自带的音乐器)打开其对应的音乐文但是,在改MP5主界面,把屏幕的个数定为五屏。正中间一屏显示的MP5Android标准主界面相同。当用户通过触摸并左右滑动AndroidMP5主界面左右滑同时,由于一共有五个屏幕,屏幕上面要有五页数的小圆点。当滑动屏幕的时候,这五个小圆点要显示出来。并且根据当前屏幕的所在的次序,将其对应的数字显示在其对应的小圆点上,即若该屏幕为从左边数第二个屏幕,则在第二个小圆点上显示一个数字2”(P5主屏幕为第三个屏幕当由当前屏幕滑动到下一个屏幕的时候,五小圆点上显示的数字以及数字显示的位置也需要做出相应的变化。当滑动结束,当前屏幕顺利切换到下一屏幕,这些代表页数的小圆留0.5,0.5该界面所显示的四个子模块只是其的缩略图。四个子模块的缩略图所交汇的地方,也就是屏幕正是一个圆形的按钮。用户可以通过触摸之后题界面的功能。具体进入哪一个子模块的界面由用户手指离开按钮时,按钮的坐标所确定。若该坐标被包含在某个子模块之内,则进入其对应的界面。进入各界面之后,按返回键或者主页键(Home键)可以返回MP5主界面。MP5主界面下面需要有一个显示所有应用程序的按钮,点击该按钮可以切换到MP5主界面的功能。的操作带来了方便由于该系统用的是定制过的MP5界面,在MP5主屏幕上中。如上文所说,该托盘的正是一个显示主菜单界面的按钮,托盘上幕中只有中间的MP5屏幕引入托盘,其他四个屏幕与Android标准主屏幕相Android标准主界面,长按应用程序的快捷方式图标,屏幕侧面会出现一个删除的区域,将该图标拖入该区域后松开手指,即可删除该快捷方式图标。而在MP5屏幕之中,长按托盘上的快捷方式图标,其中的主菜单界面按钮的样式模块还具备应用盒子和托盘等控件。图3.4为模块用例图。的分为和本地。主要是以应用盒子频器。本系统的本地功能即将本机的文件与器关联起来,用户可以通过点击文件明启动本地器。本系统支持的格式有AVI、RM、RMVB、3GP、FLV、MKV、MP4等。 图3.4模块用例该视图中。显示内容为截图,名称,总时间,剩余时间(断具体的效果为每个按找手指的方向以自己中心为原点随着手指的移动旋转,整个视图也根据手指的方向随之向左或向右旋转,并且逐步缩小并,同时,新的按照同样的方式从另一侧逐步变大,并最终取代刚刚的。一共有三个模块。第一个为本地,即上文所描述的本地列表视图。第二个和第三个模块分别为和电视,当切换到这两个模块时,屏幕会显图,同时也提供添加和删除的功能。(应用盒子和托盘功能为某些模块共有的功能,3.1像右滑动并且,同时,该按钮也要随之滑动,并停留在屏幕上右侧。再次点击该按钮,转盘从左侧滑出。显示三个影片的截图,点击左右两副截图,立即将其居中,点间的截图时,开始从截图记录的位置影片。只有当影片被过,才会在上面创建截图,等。同时,该模块也具备应用盒子和托盘等控件。图3.5为音乐模块用例图。添 列编 列该界面的左侧是控制区域。该区域是显示音乐器基本操作的区域。从上到下依次为专辑封面,歌曲名(10个汉字),歌手名(5个汉字),播放进度条,上一曲按钮,/暂停按钮,下一曲按钮,循环按钮,随机的形式动态的显示。按上一曲和下一曲按钮,会立即当前列表中添 列编 列3.5控制区域旁边是列表界面,该界面上方需要有四个按钮,分别为音乐,专辑,歌手和列表。点击前三个按钮可以分别按照音乐,专辑和歌手的方式对列表中的音乐进行排序。排序方式为字母表的升序,若音乐,专辑或当以歌曲和歌手排序是,当前列表要以列表的形式呈现给用户。列表的当前列表要以九宫格的形成陈列专辑。每一个条目要包含专辑封面,专辑名即当前列表中的音乐变成该专辑中的音乐。编辑列当用户点击列表时,会弹出新建列表和编辑列表的选项。当用户点击新建列表时,要弹出一个输入框,要求用户输入列表的名字,之后将系统的的所有音乐文件全部列出,当用户点击某个或某些歌曲对应的CheckBox(复选框)时,在按完成按钮即可将选中的歌曲加入该列表中。单击编辑列表按钮,编辑状态。列表最右侧显示删除按钮,点击即可删除该列表。同时,该列表中的全部歌曲将被列出,每首歌曲变歌曲的顺序。长按列表名称可以修改该列表的名称。该模块也具备托盘控件。图3.6为模块用例图。该界面左上角有本地书库和书库两个按钮。点击本地书库,即可显示设备中的文本文件。这些文件是用户手动添加的,系统并不会自动扫面,这样做是为了避免陈列出冗余的非的的文本文件。这些文件将被显示在屏幕中系统会为用户默认添加几本,此外,当用户点击其中的添加按钮时,可以 的,可以按照其对应的排序模式进行排序。四种模式分别为按作者名排序,按书籍名排序,按阅读日期排序和按书签排序。当用户长按书架中的某一本时,会弹出收藏的选项,用户选中后可以将该加入收藏列表中。此时点击书架上方的收藏按钮在书架中列出收藏过的.随着用户的使用,用户所添加的可能会越来越多,当超过一定数量的时候,用户找起某本书的时候可能变得不方便。因此,搜索的功能被用户所需要。在书架上方的右侧有一个搜索框,用户键入要搜索的的名字,按下旁边的搜索按钮,即可在当前书库中搜索该,若该存在,则将去做可以是屏幕上显示的书籍,满足各种用户的需求。书籍列表中的每一个条该页时,立即打开其对应的,并且跳转到上次阅读的位置。该模块右侧有六个按钮,分别为杂志,,聊天,,,形式显示出来,即每一条记录都为所历史网页的截图的缩略图,缩略图下方会以文字形式显示所历史网页的名字。当用户点击这些历史记录时,则会通键入后便可以浏览相应的网页。,即系统总体的需求分析,接着分别对五个子模块的需求分析进行详细介绍,明确下文的设计 的方向。第四体设该MP5器系统的设计是基于Android系统的Launcher部分。该系统与标准Launcher不同的是其具备、音频、阅览和网上冲浪等功能,即在Launcher中加入了前文所说的四个子模块。其布局结构主要由Launcher.xml文件控制。下面对本系统的结构加以说明。图4.1为系统总体结构图。模模模网络模音网络模音频模Workspace和DeleteZone。下面对其加以介绍。每一个CellLayout控制的区域为一个屏幕的大小,用户通过左右滑动切换不同的音频、网络、四个子模块。每一个子模块都是独立的一层,他们在一开模块初始方法中系统根据切换后屏幕的方向判断需要加载的布局,横屏布局文件存放在Layout_land开模块初始屏屏幕方向改是否为横是否为横加载竖屏布是结结模块重新初4.2托网络模块托网络模块托音乐模块托模块托桌面数据库操作的封装与共4.3影响到其他托盘,这样做的目的是确保每个模块的应用都有鲜明的。应用模块应用模块应用音乐模块应用网络模块应用模块应数据库操作的封装与共4.4托转背景环该模块控制着设备上的,其布局结构主要由MoviePage.xml文件控明托转背景环电电本方式浏览的历史。同时,该背景还具备点击功能,即把该截图与文托盘:在模块之中,用户可以将任意应用程序添加到托盘之中,托盘会个模块中都有所体现,每个模块中的托盘是共享数据的,他们使用同一张表转盘:用户通过转动转盘的方式浏览本地、和电视。首先,本地是系统通过扫描设备中的文件,以列表的形式将其显示出来。其次,和电视是以应用盒子的形式体现出来的,他们的内容是系统预设的Android应用程序,并且以GridView的形式列举出来音乐模块控制着设备上音乐的,其布局结构主要由MusicPage.xml控制。该模块具备托盘,转盘和迷你音乐器等控件。下面对该模块的结构进行说明。图4.6为音乐模块结构图。托托转电电音4.6音音乐的采用迷你音乐器控制。由于音乐采用的形式,因此在退出该模块时可以继续。网络模块为用户提供网上冲浪的功能,其布局结构主要由该模块的模块选择区分为五个子模块,其中聊天、、杂志、这几个模块中则以截图形式保存着网页浏览的历史,用户可以通过输入或者点击截托托杂聊网杂聊网书籍阅书籍管明书籍阅书籍管阅阅读历本地书图4.8模块结构书书籍管理层:该层分为本地书库、书库和阅读历史三个部分。本地书库中会列举出设备中的文件,当用户打开文件时,系统会对书籍进行,并跳转到书籍阅读层。书库中包含的是网络书籍的地址,将其以图标是曾经阅读过的封面,用户可以通过点击快速的跳转看近期阅读的位置。书过的文字显示到屏幕上,同时提供翻页和跳转到某一页的功能。库,在操作系统上有很广泛的应用,WM采用的也是3。Launcher下表4.1。所在位置的X所在位置的Y都会该表的内容。其中,_id为主键,是每一个快捷方式唯一的标识。title为每个快捷方式所显示的名字,intent用来控制点击该快捷方式后打开的应用程序,以及快捷方式的图标等信息,screen记录了该快捷方式在主界面的第几屏创建,cellXcellY分别代表该快捷方式在当前屏幕的XY坐标。该数据库由各个模块的应用盒子创建,用于记录每个模块的应用盒子中由用户所添加的应用程序。其中模块,网络模块和音乐模块有应用盒子。其时,其中的数据也会在不同的表中。因此,该应用盒子的数据库部分一共维4.2intent,并不涉及到位置和坐标dataintentintent来获取应用程序4.6以及前文中所介绍的主要技术对其中的算法和函数加以介绍。结合图表对部5.1LauncherAndroid系统启动时首先启Launcher部分,本系Launcher做了大量的改进。本节从Launcher类设计、算法设计、界面设计几个方面对本系统的Launcher部分加以介绍。LauncherLauncherActivityActivity启动时将调用其中onCreateonCreateActivity结束时,系统会一次调用onPauseonStop5.1Activity生命周期图。在屏幕的前台(Activity栈顶Activity处于该状态,则其一定执行了onCreate方法,该MP5器系统中桌面和其他子模(onPaused,AcitvityonResume方法恢复其所保存的桌面和其他子模块的状态。但是在系统内存低下的时候将被杀掉。(onStopped内存需要被用在其他地方的时候,StoppedActivity将被杀掉。ActivityPausedStoppedActivity从ActivityActivity用户返回该用户返回该Activity另一个ActivityActivityActivityActivityActivity被关5.1Activity生命周期subNetworkScreen=newImageView(context);layout.addView(subNetworkscreen,subNetworkScreenParams);subBookScreen=newsubNetworkScreen=newImageView(context);layout.addView(subNetworkscreen,subNetworkScreenParams);subBookScreen=newlayout.addView(subBookScreen,subBookScreenParams);上述代码以网络个两个子模块为例进行说明。首先初始化subNetworkScreenaddViewLayout之中。当系统切换到桌面时会调用fourpartanim函数,首先初始化networkanim动画对象,该对象用于网络模块缩略图,设置好参数后通过startAnimation方法启动,接着在networkanim动画结束后,通过调用onAnimationEnd方法启动模块动画。ViewStubstubMovie=(ViewStub)dragLayer.findViewById(R.id.stub_movie_page);XMLvisibilitygone。在5.2模块详细设计与实1.模块主要类的设MoviePage控制着该模块中界面元素的布局,对用户的操作做出响应,ListViewAdapter两个类,其中ListView表示用来显示列表的视图;Adapter是用来把数据到ListView上的中介;Datasource包括Cursor和ArrayList,是被的字符串、图片等。模块采用的是ArrayList,其中主要包括获取到是文件的路径以DataData

1)privateStringmRegex=publicstaticfinalString[]ROOT_PATH={"/flash/","/sdcard/"};mFileManager=newFileManager(5,mRegex,ROOT_PATH);filePathList=privateStringmRegex=publicstaticfinalString[]ROOT_PATH={"/flash/","/sdcard/"};mFileManager=newFileManager(5,mRegex,ROOT_PATH);filePathList=的第一个参数指定了文件的深度,最后将文件路径的列表保存在filePathList中。2)用户可以通过点击本地列表或者点击模块背景环幕的截图等方式打开本地,启动指定的器对进行。这种方法都是通过Intent的方式打开文件的Intent分为直接Intent和间接Intent两种直接Intent为指定了component属性的Intent,其调用了ponent或者setClass方法。通Intentintent=newintent.setDataAndType(Uri.fromFile(newList.get(groupIndex*6 属性的Intent。这些Intent需要包含足够的信息,这样系统才能根据这些信息,在Intentintent=newintent.setDataAndType(Uri.fromFile(newList.get(groupIndex*6 首先初始化Intent对象,接着通过setDataAndType方法将代表文件的路MIME类型,本例中为。最后通过startActivity方法启动该Intent,此时系统会根据MIME类型启动相应的器,达到打开该文件的目的。publicE);Launcher.Currentapplictations=MoviePage.applications;Launcher.Currenttable="table_Launcher.Defaultapp_count=}doSomething_180其会启动一个线程,该线程会不停托盘转动的角度(初始为0publicE);Launcher.Currentapplictations=MoviePage.applications;Launcher.Currenttable="table_Launcher.Defaultapp_count=}doSomething_180对象的值设置为模块对应的applications,然后通过setDate方法将数据传入适音乐设该模块的迷你音乐器可以对本地的音乐进行,音乐主要是通过Service的方式进行的。服务不能自己运行,需要通过调用startService()或startService方法启用服务,调用者与服务之间没startService方法,在退出音乐模块时,其中的音乐依然可以照常。图5.5为Service流程示意图。在服务未被创建时,系统会先调用服务的onCreate方法,接着调用 mand方法。如果调用startService()方法前服次调用 mand方法。采用startService方法启动的服务,只能调用Context.stopService方法结束服务,服务结束时会调用onDestroy方法5.3Servie初始化ifAutoPlay==true 来达到音乐的目的。该方法的调用位于Service的onCreate初始化ifAutoPlay==true mMediaPlayerMediaPlayer的实例,首先通setDataSource方法将音频文件的路径传递进去,按流程调用prepare和start方法来对音乐进行。其中5.4模块详细设计与实本节从主要类的设计、算法设计和界面设计几个方面对块的详细设计模块的主要的类包括BookPage、BookThumbnail、MyGripter、MyListAdapter:该类与MyGripter共同控制着在封面模式和列表模式下BookDecoderPdfEpub:控制着对Pdf文件及Epub文件的 1)publicclass {static}}JavaJavaDexBytecodeDalvikVM(虚拟机)JavaJavaC组件此时,VMJavaCJNI介面而相互沟JavaCpublicclass {static}}与*.so文件就汇合起来,一起执行了。在Java类中,对应方法为2)ContentValuesinputValue=newContentValues();inputValue.put(Browser.BookmarkColumns.BOOKMARK,1);inputValue.put(Browser.BookmarkColumns.PAGE,page);ContentResolvercontentResolver=context.getContentResolver();}ContentValuesinputValue=newContentValues();inputValue.put(Browser.BookmarkColumns.BOOKMARK,1);inputValue.put(Browser.BookmarkColumns.PAGE,page);ContentResolvercontentResolver=context.getContentResolver();}的值分别为书签的名称和其中保存的,最后通过ContentResolver的instert方法将其到数据库中,具体为数据库的哪一张表是通过BOOKMARKS_URI来PackageManagertemp=context.getPackageManager();List<PackageInfo>templist=temp.getInstalledPackages(0);LvAdapterPackageManagertemp=context.getPackageManager();List<PackageInfo>templist=temp.getInstalledPackages(0);LvAdaptertempadapter=newLvAdapter(context,templist);PackageManagergetInstalledPackagesPackageInfo列表,再将其做为参数传递给adapter,最后将其显示在界面上开信息到数据库中。下面详细介绍一下删除操作。图5.4删除操作流程。开创建删除获取对象位取得对象从数据库中删除该对刷新界面显结结5.4当用户长按应用盒子中的某个应用程序时,系统会弹出一个框。当点击按钮“是”getItenAtPositonApplicationinfo(应用程序信息),然后在数据库中通过execSQL方法执行SQL语句,将对应的应用程序从数据库中删除,同时,调用remove方法将该程序从传入应用盒子的applications列表中移除,最后更新应用盒子中的数据。若用户点击按钮“否”,则if(getResources().getConfiguration().orientation==if(getResources().getConfiguration().orientation==else系统通过m_CURRENT_SCREEN_ORIENTATION变量来表示屏幕当前方向if屏幕方向if屏幕方向变publicclassAlwaysMarqueeTextViewextends{publicpublicclassAlwaysMarqueeTextViewextends{publicbooleanisfocused;{return}}5.6本章小及前文中所介绍的主要技术对其中的算法和函数加以介绍。结合图表对部分测试环B线将C机中的、音乐、等文件拷贝到设备的内存和D卡中,进而对视频模块、音乐模块、模块等进试。并且通过连接充电器持续操作

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论