基于2bandroid2b系統(tǒng)2bmp5播放器設計與實現(xiàn)_第1頁
基于2bandroid2b系統(tǒng)2bmp5播放器設計與實現(xiàn)_第2頁
基于2bandroid2b系統(tǒng)2bmp5播放器設計與實現(xiàn)_第3頁
基于2bandroid2b系統(tǒng)2bmp5播放器設計與實現(xiàn)_第4頁
基于2bandroid2b系統(tǒng)2bmp5播放器設計與實現(xiàn)_第5頁
免費預覽已結束,剩余58頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領

文檔簡介

獨創(chuàng)性(或創(chuàng)新性)秉承學校嚴謹?shù)膶W風和優(yōu)良的科學道德,本人所呈交的是我個人在注和致謝中所羅列的內(nèi)容以外,中不包含其他人已經(jīng)或撰寫過的研究成果;也不包含為獲得西安電子科技大學或其它教育機構的或而使用過的材料。與我一同工作的對本做的任何貢獻均已在中做了明確的說申請與資料若有不實之處,本人承擔一切的。 日期:關于使用的說明本人完全了解西安電子科技大學有關保留和使用的規(guī)定,即:研究生在校攻讀期間工作的知識單位屬西安電子科技大學。學校保留送交的復印件,允許查閱和借閱;學校可以的全部或部分內(nèi)容,可以允許采用影印、縮印或其它保存。同時本人保證,畢業(yè)后結合研究課題再撰寫的文章一律署位為西安電子科技大學。(的在后遵守此規(guī)定本屬于,在年后適用本書本人簽名 期導師簽名 期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第一章引 課題提出背 國內(nèi)外同類課題研究現(xiàn) 項目研究目 章節(jié)安 第二章相關技 開發(fā)平臺介 Android平臺簡 Android平臺特 Android系統(tǒng)組 主要技 NDK簡 系統(tǒng)安全機制簡 系統(tǒng)上層開發(fā)簡 系統(tǒng)中間層開發(fā)簡 系統(tǒng)內(nèi)核簡 開發(fā)工 本章小 第三章系統(tǒng)需求分 系統(tǒng)總體需求分 子模塊需求分 桌面模塊的需求分 模塊需求分 音樂模塊需求分 模塊需求分 網(wǎng)絡模塊需求分 本章小 第四章總體設 系統(tǒng)架構設 系統(tǒng)主要功能設 子模塊總體設 4.3.1模塊總體設 音樂模塊總體設 網(wǎng)絡模塊總體設 模塊總體設 數(shù)據(jù)庫設 4.6本章小 第五章系統(tǒng)詳細設計與實 5.1Launcher詳細設計與實 5.2模塊詳細設計與實 5.3音樂模塊詳細設計與實 5.4模塊詳細設計與實 5.5網(wǎng)絡模塊詳細設計與實 5.6本章小 第六章系統(tǒng)測 測試環(huán) 測試方 功能測 性能測 本章小 第七章結束 致 參考文 預計該MP5器將會實現(xiàn)的主要功能有:音頻,,,閱讀,網(wǎng)絡電視。該MP5器可以通過WIFI連接網(wǎng)絡,還可用。該MP5器將會給用戶的帶來的方便和樂趣。1.4章節(jié)安何實現(xiàn)的。對其中的算法和函數(shù)加以介紹。開發(fā)平臺介oid是公司個性的移動設備綜合平臺7]工作所需要的全部,并且不存在任何如以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專8droidinuxJvadoid是目前最具可移植性機操作系統(tǒng)之一9。Android是開源系統(tǒng),能夠有效得降低的成本,以降低整體的價格,最終讓每個用戶都能夠的獲取信息[10]。Android提供了一個從操作系統(tǒng)(OperatingSystem)到應用程序(Application)的完整棧,同時又允許人們定制開源所帶來的另一個好處就是允許廠商自主解決問題。和開放聯(lián)盟合作開發(fā)了Android,該由包括T-Mobile、中國移動、高通、摩托羅拉和HTC在內(nèi)的30多家無線應用技術的領軍企業(yè)所組成[11]。通過與開發(fā)商、設備制造商、運營商和其他有關各方結成相對次的合作伙伴關系,用建立標準化、開放式移動平臺的方式,在移動產(chǎn)業(yè)之內(nèi)形成一個開放式的生態(tài)系統(tǒng)12oid括、、、高通、摩托羅拉、三星、ile以及中國移動在內(nèi)的三十多家企業(yè)都將基于此平臺開發(fā)和平板電腦的新型業(yè)務,各種應用之間的互聯(lián)性和通用性將在最大程度上得到保持13。該開放表示,oid平臺可以促進移動設備創(chuàng)新,帶給用戶最優(yōu)越的移動服務的體驗,于此同時,開發(fā)商們也將得到一個新的開放級別,并且更方便的進行協(xié)同合作,從而保障了新型移動設備的研發(fā)速度14。允許廠商自主解決問題是開源軟的另一個好處。Dalvik針對移動進行了大幅的優(yōu)化,占用資源更少,運行效率更高[15]:是一種結構化的數(shù)據(jù)工具。是一款經(jīng)典的輕型數(shù)據(jù)庫,它是為而設計的,而且目前已經(jīng)被用在很多產(chǎn)品中,它占用的資源相當?shù)?,在設備中,大概只需要幾百K的內(nèi)存就足夠了。它能夠支的處理速度比它們都快。雖然很小巧,但是它支持的SQL語句不會遜色于提供功能:支持各種通用音和靜態(tài)圖像格式(如:GIFMPEG4PNGMP3、AAC、AMR、JPG)[17]GSM技術:GlobalSystemforMobileCommunications,即全球移動通訊系統(tǒng),俗稱“”,是第二代移動通信技術,該移動通信技術標準于歐洲,其開發(fā)的目的是讓全球各地的用戶能夠共同使用同一個移動網(wǎng)絡標準,使用戶使用一部就可以行遍全球。藍牙(Bluetooth)、WiFi(WirelessFidelity)、3G,andEDGE(EnhancedDataRatefor取代短距離電纜,實現(xiàn)語音和數(shù)據(jù)的無線傳輸[18]。EDGEGSM演進技術[19]GSM3GGSM系統(tǒng)里采用4倍[21]。WiFi,無線保真技術,和藍牙技術相同,都屬于可以在家庭和中使用的短距離的無線技術。該技術所使用的是2.4GHz左右的頻段,該頻段目前尚屬于沒用的無線頻段[22]。該頻段目前可使用的標準有兩個,分別為IEEE802.11a,IEEE802.1lb[23]。該技術有著其自身的優(yōu)點。t(llgd,球的24顆所組成的。這個系統(tǒng)可以保證在地球上任一點,任時刻都可同時觀測到4顆,從而保證能到該觀測點的高度和,以便實現(xiàn)授時、導航、定位等功能。這項技術能用來引導飛機、車輛、船舶以及個人,使其安全、準確的沿著選定路線,準時到達目的地。GS,即全球。該系統(tǒng)由三部分組成:用戶數(shù)據(jù)備份部分EclipseIDE(IntegratedDevelopmentEnvironment集成開發(fā)環(huán)境)本小節(jié)從應用程序、應用程序框架、AndroidAndroid系統(tǒng)的應用程序:Android系統(tǒng)會附帶一些應用程序,包括,程序,應用程序框架:開發(fā)可以同那些應用程序一樣,擁有框架APIS的所限。應用系統(tǒng)結構的設計簡化了各組件之間的重用,同時任何應用都可ContentProviders(內(nèi)容提供器),ContentProviders可以在某個應用之中其他應用的數(shù)據(jù)(例如簿),也可以共享自己的數(shù)據(jù)。如文本和布局文件。Android的庫:Android的庫被Android系統(tǒng)中的各種組件里,這些功能通過Android應用開發(fā)框架呈現(xiàn)給開發(fā)。Android運行時包括一組庫,該庫提供了Java語言庫中的幾乎全部功能。每一個Android應用程序運行在自己的進程里,使用自己Dalvik虛擬機實例[24]。該虛擬機可以讓一個設備VM。DalvikDalvikExecutable即后綴為“.dex”的文件,這種格式的文件經(jīng)過優(yōu)化后占用非常少的內(nèi)存。Dalvik虛擬機是基于器的,運行的是經(jīng)過Java語言編譯器后的類文件,這些文件通過“dx”工具被轉換成DalvikExecutableLinux內(nèi)核來實現(xiàn)一些潛在的功能,比如線底層內(nèi)存管理。下面列舉一些庫。SystemClibraryBSDderivedC的設備MediaLibraries,基于Packet的OpenCore。該庫提供了對許多流行的MP3、PNG、AMR、JPG和AAC等等。圖形層的[25]webview是基于該引擎實現(xiàn)的或者提供高度優(yōu)化的3D光柵器。7.FreeType主要技可以說是真正的開放式操作系統(tǒng)。本節(jié)對該MP5器系統(tǒng)開發(fā)過程中所使用的AndroidJava編程語言來開發(fā)應用程序,還可以通過NDK使用C/C++編程語言來開發(fā)應用程序,同時也可通過SL4A來使用其他(monoforAndroid)、Qt(qtforAndroid)等一些著名的編程框架也開始支持對AndroidMonoDroidC#編程語言來開發(fā)應用程序。同時,公司還于2009年特別發(fā)布了面向初學者的AndroidSimpleSencha、JavaScript、Mobl,PhoneGap、Dojo等等都已支持了Android開發(fā)。而在Android系統(tǒng)底層方面,Android使用C/C++作為開發(fā)語言。早期對Android應用程序的開發(fā),通常通過AndroidSDK(即Android開發(fā)包),使用Java編程語言來開發(fā)應用程序,通過不同的開發(fā)包,使用的編用C或C++編程語言來開發(fā)應用程序同時還于2009年推出了AppAndroidJava開發(fā)在接口和功能方面,都體現(xiàn)出層出不窮的變化。考慮到了Java虛擬機的資源占用和效率問題,重新設計了Android的Java開發(fā)包,以便可以提高效率和減少對資源的占用,在這一點與J2ME等不同。C/C++開發(fā)方面Android的開發(fā)僅支持Java作為編程語言來開發(fā)20104AndroidNDK(AndroidNativeDevelopmentKit),NDKCC++Android應用程序,第一版的NDKAndroid開發(fā)中給廣大使用C/C++的開發(fā)者帶來了希望。NDK在功能方面還存在很多的局限性,例如:NDK并沒有提供對應用程序的生命周期的;NDK也沒有提供對Android系統(tǒng)中大各種UIAPI(應用程序交互接口)方面,當前NDK里也沒NDKNDK已經(jīng)在功能方面做了許多重大的改進。從此可以看出,NDK仍然需要不斷的完善和發(fā)展,從目前的發(fā)展趨勢來看,NDK一定可以做得更好。與系統(tǒng),應用與應用開來。URI權限對特定數(shù)據(jù)段進行的私數(shù)據(jù)(如聯(lián)系人或電子郵件),設備待機或設備網(wǎng)絡等等。安裝應用時,首先會檢查程序簽名涉及的權限,在經(jīng)過用戶確認以后,要求以下的權限:或彩信、撥打、修改/刪除SD卡上的內(nèi)容、日程信息、聯(lián)系人信息、寫入日程數(shù)據(jù)、精確的(基于GPS)地理位置、讀取狀態(tài)或識別、模糊的(基于網(wǎng)絡獲?。┑乩砦恢?、對互聯(lián)網(wǎng)的完全、置、開機自動啟動、同步設定、終止運行中的應用、重啟其他應用、設定偏好應用、拍攝、控制等等[26]。一款應用程序應該根據(jù)自身所提供的功能,申請合理的權限。使用者也可以分析一款應用所需的權限,從而簡單的判定這款應用安全性27]。如果一款應用是具備功能的單機版,也不存在任何附加內(nèi)容需要,這樣它要求網(wǎng)絡的權限就比較可疑了。AndroidActivity類創(chuàng)建窗口(Windows),處于活動中Activity就是Service(服務)。這兩者之間通過ServiceConnection和AID(AndroidInterfaceDefinitionLanguage,即AndroidActivity的全部畫面被其他Activity的畫面完全遮蓋時,該Activity便轉換為停View類與“XMLlayout”UI(UserInterface)放置在窗口上,Android1.5ViewWidgetsWidgets也是機就的Widgets。至于ViewGroup是各種Layout(布局)的基礎抽象類 class),ViewGroupViewGroup。View的構造函數(shù)不需要在Activity之中調(diào)用,而Displayable構造函數(shù)的卻是必須的。在Activity中,要通過findViewById()方法來從XML文件之中取得View,AndroidView類的顯示大部分是從XML文件中的。View與Event(事件)是關的,二者之tenrView.OnClickListener。此外還有ImageJ2MEBitMap。在中介方面,操作系統(tǒng)與應用程序之間是通過中介來溝通的,應用分為兩層:虛擬機(VirtualMachine)和函數(shù)層(Library)。Bionic是經(jīng)過Android改良的libc的版本。同時,Android還包含了Webkit,說的,WebkitAppleSafari2D3D的內(nèi)容顯示到屏幕上是通過SurfaceflingerAndroid使用的工具鏈(Toolchain)是自行開發(fā)的BionicLibc。Android使用以OpenCore為基礎的多框架,OpenCore由7大塊組成PVAuthor、PVPlayer、PacketMultimediaFramework(PVMF)、Codec mon、OperatingSystemCompatibilityLibrary(OSCL)共用數(shù)據(jù)庫和私用數(shù)據(jù)庫。用戶可通過ContentResolver類取得對共用數(shù)據(jù)庫的訪Android采用Skia作為圖形引擎,還搭配以OpenGL/ES。Skia的功能相LinuxCairoLinuxCairo相比Skia的功能還僅僅是雛形。2005SkiaChrome的圖形引擎。虛擬機是一種“暫存器型態(tài)”的Java虛擬量全部存放于暫存器中,虛擬機的指令相對較少。Dalvik虛擬機可以有一個或多個實例(instance)AndroidDalvik虛擬機供其運行,使得系統(tǒng)在運行程序時可得到優(yōu)化。DalvikJava字節(jié)碼(ByteCode),其運行的以.dexAndroid具備其硬件抽象層HAL。HAL是能以封閉源碼的形式為系統(tǒng)提供硬件驅(qū)動模塊。HALAndroidframeworkLinuxkernel層隔開,Androidframework的開發(fā)可以在不考量驅(qū)動程序如何實現(xiàn)的前HALstub是一種(proxy)的概念,Stub是以*.so檔文件的形式存在的。StubHAL層提供操作(operations)AndroidRuntimeHAL層Stubcallback(回調(diào))這些操作函數(shù)。HAL之中包含了許Stub。Runtime只要說明其ModuleID,就可以取得其操作函數(shù)。在內(nèi)核方面,Android是運行于Linux內(nèi)核之上的,但并不是GNU/Linux。因GNU/Linux里所支持的功能,Android大部分都沒有支持,其中包括FFmpeg、X11、Alsa、Cairo、Glibc、PangoGTK等都已經(jīng)被移除。Android又以Skia取代Cairo、以Opencore取代FFmpeg、再以bionic取代Glibc等等。Android將驅(qū)動程序移到了userspace,從而使Linux驅(qū)動與Linux內(nèi)核被徹底的分開。kernel/libc/bionic/kernelheaderfiles(內(nèi)核頭文件)。AndroidkernelheaderLinuxkernelheader產(chǎn)生的,這樣做的目的是保留宏、數(shù)據(jù)DriverModel(驅(qū)動程序模型)等等。在Android源代碼之前,首先要安裝構建工具Repo來初始化源代碼。AndroidRepo的目的是用來輔助Git。開發(fā)工開發(fā)該MP5器系統(tǒng)需要具備以下條件:Linux/Windows系統(tǒng),Eclipse集成開發(fā)環(huán)境,JDK(eclipse運行環(huán)境),Android-SDK(Android開發(fā)環(huán)境)。EclipseJava的可擴展開發(fā)平臺。就其本身而言,雖然大多數(shù)用戶很樂于將Eclipse當作Java集成開發(fā)環(huán)境(IDE)來使用,Eclipse的目標卻不僅限于此。Eclipse還包括插件開發(fā)環(huán)境(Plug-inDevelopmentEnvironment,PDE),這個組件主要針對希望擴展Eclipse的開發(fā),因為它允許他們構建與Eclipse環(huán)境無縫集成的工具。由于Eclipse中的每樣東西都是插件,對于給Eclipse提供插件,以及給用戶提供一致和的集成開發(fā)環(huán)境而言,所有工具開發(fā)都具有同等的發(fā)揮場所。這種和一致性并不僅限于Java開發(fā)工具。盡管Eclipse是使用Java語編程語言的插件已經(jīng)可用,或預計將會推出。Eclipse框架還可用來作為與開Eclipse的應用程序的一個突出例子是IBM®IBMJava開(eclipse運行環(huán)境JDK(JavaDevelopmentKit)是SunMicrosystems針對Java開發(fā)的產(chǎn)品。自Java推出以來,JDKJavaSDK[27]。JDKJavaJava運行環(huán)境,JavaJava基礎的類庫[28]。JDKJavax86平臺的Jrocket在服務端運行SunJDK好SUNJDK5.0開始,提供了泛型等非常實用的功能,其版本也不斷更開發(fā)環(huán)境SDK(softwaredevelopmentkit),即開發(fā)工具包。被開發(fā)工程師用于為特定的包、框架、硬件平臺、操作系統(tǒng)等建立應用的開發(fā)工具的集合。因此,AndroidSDK指的即是Android專屬的開發(fā)工具包。與相似,Android采用WebKit瀏覽器引擎,具備觸摸屏、高級圖形顯示和上網(wǎng)功能,用戶能夠在上查看電子郵件、搜索和等,比等其他更強調(diào)搜索功能,界面更強大,可以說是一種融入全部Web應用的單一平臺[29]。其最震撼人心之處在于Android系統(tǒng)的開放性和服務免費。Android是一個對第完全開放的平臺,開發(fā)者在為其開發(fā)程序時擁有更大的度,突破了等只能添加為數(shù)不多的固定的枷鎖;同時與WindowsMobile、Symbian等廠商不同,Android操作系統(tǒng)免費向開發(fā)提供,本章小計的方向。1.1需求分 該系統(tǒng)分為桌面模塊,模塊,音頻模塊,模塊和網(wǎng)絡模塊五個子模塊。該系統(tǒng)的五個子模塊都具備托盤功能,同時音樂,和網(wǎng)絡這三個d的P5圖3. 3.1當用戶初次打開該按鈕所對應的應用盒子時,該應用盒子中會列出幾個默認的應用程序。在這幾個應用程序后面是一個添加按鈕。當用戶點擊該按鈕時,該3.2后,該應用程序列表會,并且復選框為選中狀態(tài)的應用程序會被添加到應用從而使得用戶在重啟系統(tǒng)之后,這些新添加的應用程序不會。托盤為五個模塊共有的視圖。其中保存的是應用程序的快捷方式即應用一個添加按鈕,當用戶點擊該按鈕之后,在當前模塊之中顯示所有應用程序隨著系統(tǒng)的重啟而。當托盤上的圖標數(shù)量達到四個時,若用戶像其中添加快由于該系統(tǒng)是基于ndoid系統(tǒng)設計的,因此它支持橫豎屏切換的功能。當用戶轉動屏幕方向,使得系統(tǒng)在橫豎屏之間切換時,系統(tǒng)的主界面以及五個界面的視圖都會做出相應的變化,方便用戶的使用。上文對橫屏時系統(tǒng)各個界,,模塊和網(wǎng)絡模塊的順序由上到下排列。其中可以拖動的環(huán)形按鈕放在了屏幕左側的正中間,用戶可以將其拖動到五個模塊的縮略圖中達到進入所對應的主題模塊的目的。托盤的位置在屏幕的最底部,其中最多可容納的快捷方式的數(shù)量不變。(五個模塊中的托盤樣式與主界面中的托盤樣式相同。)同時,在系統(tǒng)切換的該界面時,五個模塊縮略圖進入的動畫也有相應的改變。音樂模塊和模塊的進入順序為從左到右;模塊的進入順序為從右到左;網(wǎng)絡模塊的進入順序為從左到右。五個模塊按照從上到下的先后次序,一個模塊動畫結束之后,后一個模塊的動畫才開始。并且每一個模塊的動畫結束之后,其中包含的控件才顯示出來。應用盒子界面:該系統(tǒng)屏幕的分辨率為800*480,在豎屏模式下屏幕的高為800480。因此,在豎屏模式下應用盒子視圖和其中所有應用程序列表的視五個模塊:在豎屏模式下,音樂模塊中的模塊撥盤的位置在屏幕的最上放,其下方依次是控制區(qū),列表/應用盒子,以及托盤。在控制區(qū)中,左側為音樂專輯的封面,右側的上方為模式按鈕和音量調(diào)節(jié)控件,其下方一次為歌曲名(10個漢字),歌手名(5個漢字),進度條,上一曲按鈕,/暫停按鈕,下一曲按鈕??刂茀^(qū),列表也會做出相應的調(diào)整以截圖用指定或默認的器打開該影片,點為截圖對應的位置。屏幕正中間3D視圖的樣式也有所改變,該視圖中每一屏可以顯示六個條目,即六個本地的視頻文件,每個條目的內(nèi)容包括截圖,名稱,總時間,剩余時間容的,當用戶滑動時,當前內(nèi)容會以翻轉的形式逐漸,而新的內(nèi)容會以居然1.2求分該MP5是基于Android系統(tǒng)設計和開發(fā)的。因此,設備啟動后會用戶首做的產(chǎn)品名為MP5,因此其主界面還帶有鮮明的色彩,這點與Android標準主該主界面包括四個子模塊的縮略圖,分別為,音樂,網(wǎng)絡,與電子Android5主界面可以拖動屏幕正中間的按鈕進入的四個子模塊的界面。下面將對四個子塊??傮w來說該系統(tǒng)桌面模塊要具備的功能有:四個模塊縮略的顯示及與用戶的的D的序。3.3MP5系統(tǒng)桌面模塊用3.3系統(tǒng)的主界面被,音樂,網(wǎng)絡,四子模塊的縮略圖以及下方的托統(tǒng)5的的。在橫屏模式下,,音樂,網(wǎng)絡,四個模塊按照左上、右上、左下、右下5塊的界面要由一個動畫效果來顯示,當系統(tǒng)當前的屏幕方向為橫屏時(),四個模塊的縮略圖要按照先后順序,從右上、左上、左下、右下四個位置滑動出來,一以。首先介紹一下四個模塊中代表其的控件。模塊的控件顯示的是設打開封面所對應的。網(wǎng)絡部分的控件顯示的內(nèi)容為瀏覽器的書簽,即通過瀏覽器過網(wǎng)頁模塊的控件顯示的是設備中的截圖,截圖為每個文件最近一的位置,若該沒有過,系統(tǒng)會自動創(chuàng)建一張第一幀的截圖。它頻文件進行,的位置為截圖記錄的位置,若該從未過,則從視頻起始位置。封面移到中間,同時,滑動過程中封面的角度會線性的改變。點擊正中間的封面,可以以列表的形式列舉出該專輯所包含的全部音樂的標題,點擊列表中的某個標題就可以通過指定的應用程序(如系統(tǒng)自帶的音樂器)打開其對應的音樂文但是,在改MP5主界面,把屏幕的個數(shù)定為五屏。正中間一屏顯示的MP5Android標準主界面相同。當用戶通過觸摸并左右滑動AndroidMP5主界面左右滑同時,由于一共有五個屏幕,屏幕上面要有五頁數(shù)的小圓點。當滑動屏幕的時候,這五個小圓點要顯示出來。并且根據(jù)當前屏幕的所在的次序,將其對應的數(shù)字顯示在其對應的小圓點上,即若該屏幕為從左邊數(shù)第二個屏幕,則在第二個小圓點上顯示一個數(shù)字2”(P5主屏幕為第三個屏幕當由當前屏幕滑動到下一個屏幕的時候,五小圓點上顯示的數(shù)字以及數(shù)字顯示的位置也需要做出相應的變化。當滑動結束,當前屏幕順利切換到下一屏幕,這些代表頁數(shù)的小圓留0.5,0.5該界面所顯示的四個子模塊只是其的縮略圖。四個子模塊的縮略圖所交匯的地方,也就是屏幕正是一個圓形的按鈕。用戶可以通過觸摸之后題界面的功能。具體進入哪一個子模塊的界面由用戶手指離開按鈕時,按鈕的坐標所確定。若該坐標被包含在某個子模塊之內(nèi),則進入其對應的界面。進入各界面之后,按返回鍵或者主頁鍵(Home鍵)可以返回MP5主界面。MP5主界面下面需要有一個顯示所有應用程序的按鈕,點擊該按鈕可以切換到MP5主界面的功能。的操作帶來了方便由于該系統(tǒng)用的是定制過的MP5界面,在MP5主屏幕上中。如上文所說,該托盤的正是一個顯示主菜單界面的按鈕,托盤上幕中只有中間的MP5屏幕引入托盤,其他四個屏幕與Android標準主屏幕相Android標準主界面,長按應用程序的快捷方式圖標,屏幕側面會出現(xiàn)一個刪除的區(qū)域,將該圖標拖入該區(qū)域后松開手指,即可刪除該快捷方式圖標。而在MP5屏幕之中,長按托盤上的快捷方式圖標,其中的主菜單界面按鈕的樣式模塊還具備應用盒子和托盤等控件。圖3.4為模塊用例圖。的分為和本地。主要是以應用盒子頻器。本系統(tǒng)的本地功能即將本機的文件與器關聯(lián)起來,用戶可以通過點擊文件明啟動本地器。本系統(tǒng)支持的格式有AVI、RM、RMVB、3GP、FLV、MKV、MP4等。 圖3.4模塊用例該視圖中。顯示內(nèi)容為截圖,名稱,總時間,剩余時間(斷具體的效果為每個按找手指的方向以自己中心為原點隨著手指的移動旋轉,整個視圖也根據(jù)手指的方向隨之向左或向右旋轉,并且逐步縮小并,同時,新的按照同樣的方式從另一側逐步變大,并最終取代剛剛的。一共有三個模塊。第一個為本地,即上文所描述的本地列表視圖。第二個和第三個模塊分別為和電視,當切換到這兩個模塊時,屏幕會顯圖,同時也提供添加和刪除的功能。(應用盒子和托盤功能為某些模塊共有的功能,3.1像右滑動并且,同時,該按鈕也要隨之滑動,并停留在屏幕上右側。再次點擊該按鈕,轉盤從左側滑出。顯示三個影片的截圖,點擊左右兩副截圖,立即將其居中,點間的截圖時,開始從截圖記錄的位置影片。只有當影片被過,才會在上面創(chuàng)建截圖,等。同時,該模塊也具備應用盒子和托盤等控件。圖3.5為音樂模塊用例圖。添 列編 列該界面的左側是控制區(qū)域。該區(qū)域是顯示音樂器基本操作的區(qū)域。從上到下依次為專輯封面,歌曲名(10個漢字),歌手名(5個漢字),播放進度條,上一曲按鈕,/暫停按鈕,下一曲按鈕,循環(huán)按鈕,隨機的形式動態(tài)的顯示。按上一曲和下一曲按鈕,會立即當前列表中添 列編 列3.5控制區(qū)域旁邊是列表界面,該界面上方需要有四個按鈕,分別為音樂,專輯,歌手和列表。點擊前三個按鈕可以分別按照音樂,專輯和歌手的方式對列表中的音樂進行排序。排序方式為字母表的升序,若音樂,專輯或當以歌曲和歌手排序是,當前列表要以列表的形式呈現(xiàn)給用戶。列表的當前列表要以九宮格的形成陳列專輯。每一個條目要包含專輯封面,專輯名即當前列表中的音樂變成該專輯中的音樂。編輯列當用戶點擊列表時,會彈出新建列表和編輯列表的選項。當用戶點擊新建列表時,要彈出一個輸入框,要求用戶輸入列表的名字,之后將系統(tǒng)的的所有音樂文件全部列出,當用戶點擊某個或某些歌曲對應的CheckBox(復選框)時,在按完成按鈕即可將選中的歌曲加入該列表中。單擊編輯列表按鈕,編輯狀態(tài)。列表最右側顯示刪除按鈕,點擊即可刪除該列表。同時,該列表中的全部歌曲將被列出,每首歌曲變歌曲的順序。長按列表名稱可以修改該列表的名稱。該模塊也具備托盤控件。圖3.6為模塊用例圖。該界面左上角有本地書庫和書庫兩個按鈕。點擊本地書庫,即可顯示設備中的文本文件。這些文件是用戶手動添加的,系統(tǒng)并不會自動掃面,這樣做是為了避免陳列出冗余的非的的文本文件。這些文件將被顯示在屏幕中系統(tǒng)會為用戶默認添加幾本,此外,當用戶點擊其中的添加按鈕時,可以 的,可以按照其對應的排序模式進行排序。四種模式分別為按作者名排序,按書籍名排序,按閱讀日期排序和按書簽排序。當用戶長按書架中的某一本時,會彈出收藏的選項,用戶選中后可以將該加入收藏列表中。此時點擊書架上方的收藏按鈕在書架中列出收藏過的.隨著用戶的使用,用戶所添加的可能會越來越多,當超過一定數(shù)量的時候,用戶找起某本書的時候可能變得不方便。因此,搜索的功能被用戶所需要。在書架上方的右側有一個搜索框,用戶鍵入要搜索的的名字,按下旁邊的搜索按鈕,即可在當前書庫中搜索該,若該存在,則將去做可以是屏幕上顯示的書籍,滿足各種用戶的需求。書籍列表中的每一個條該頁時,立即打開其對應的,并且跳轉到上次閱讀的位置。該模塊右側有六個按鈕,分別為雜志,,聊天,,,形式顯示出來,即每一條記錄都為所歷史網(wǎng)頁的截圖的縮略圖,縮略圖下方會以文字形式顯示所歷史網(wǎng)頁的名字。當用戶點擊這些歷史記錄時,則會通鍵入后便可以瀏覽相應的網(wǎng)頁。,即系統(tǒng)總體的需求分析,接著分別對五個子模塊的需求分析進行詳細介紹,明確下文的設計 的方向。第四體設該MP5器系統(tǒng)的設計是基于Android系統(tǒng)的Launcher部分。該系統(tǒng)與標準Launcher不同的是其具備、音頻、閱覽和網(wǎng)上沖浪等功能,即在Launcher中加入了前文所說的四個子模塊。其布局結構主要由Launcher.xml文件控制。下面對本系統(tǒng)的結構加以說明。圖4.1為系統(tǒng)總體結構圖。模模模網(wǎng)絡模音網(wǎng)絡模音頻模Workspace和DeleteZone。下面對其加以介紹。每一個CellLayout控制的區(qū)域為一個屏幕的大小,用戶通過左右滑動切換不同的音頻、網(wǎng)絡、四個子模塊。每一個子模塊都是獨立的一層,他們在一開模塊初始方法中系統(tǒng)根據(jù)切換后屏幕的方向判斷需要加載的布局,橫屏布局文件存放在Layout_land開模塊初始屏屏幕方向改是否為橫是否為橫加載豎屏布是結結模塊重新初4.2托網(wǎng)絡模塊托網(wǎng)絡模塊托音樂模塊托模塊托桌面數(shù)據(jù)庫操作的封裝與共4.3影響到其他托盤,這樣做的目的是確保每個模塊的應用都有鮮明的。應用模塊應用模塊應用音樂模塊應用網(wǎng)絡模塊應用模塊應數(shù)據(jù)庫操作的封裝與共4.4托轉背景環(huán)該模塊控制著設備上的,其布局結構主要由MoviePage.xml文件控明托轉背景環(huán)電電本方式瀏覽的歷史。同時,該背景還具備點擊功能,即把該截圖與文托盤:在模塊之中,用戶可以將任意應用程序添加到托盤之中,托盤會個模塊中都有所體現(xiàn),每個模塊中的托盤是共享數(shù)據(jù)的,他們使用同一張表轉盤:用戶通過轉動轉盤的方式瀏覽本地、和電視。首先,本地是系統(tǒng)通過掃描設備中的文件,以列表的形式將其顯示出來。其次,和電視是以應用盒子的形式體現(xiàn)出來的,他們的內(nèi)容是系統(tǒng)預設的Android應用程序,并且以GridView的形式列舉出來音樂模塊控制著設備上音樂的,其布局結構主要由MusicPage.xml控制。該模塊具備托盤,轉盤和迷你音樂器等控件。下面對該模塊的結構進行說明。圖4.6為音樂模塊結構圖。托托轉電電音4.6音音樂的采用迷你音樂器控制。由于音樂采用的形式,因此在退出該模塊時可以繼續(xù)。網(wǎng)絡模塊為用戶提供網(wǎng)上沖浪的功能,其布局結構主要由該模塊的模塊選擇區(qū)分為五個子模塊,其中聊天、、雜志、這幾個模塊中則以截圖形式保存著網(wǎng)頁瀏覽的歷史,用戶可以通過輸入或者點擊截托托雜聊網(wǎng)雜聊網(wǎng)書籍閱書籍管明書籍閱書籍管閱閱讀歷本地書圖4.8模塊結構書書籍管理層:該層分為本地書庫、書庫和閱讀歷史三個部分。本地書庫中會列舉出設備中的文件,當用戶打開文件時,系統(tǒng)會對書籍進行,并跳轉到書籍閱讀層。書庫中包含的是網(wǎng)絡書籍的地址,將其以圖標是曾經(jīng)閱讀過的封面,用戶可以通過點擊快速的跳轉看近期閱讀的位置。書過的文字顯示到屏幕上,同時提供翻頁和跳轉到某一頁的功能。庫,在操作系統(tǒng)上有很廣泛的應用,WM采用的也是3。Launcher下表4.1。所在位置的X所在位置的Y都會該表的內(nèi)容。其中,_id為主鍵,是每一個快捷方式唯一的標識。title為每個快捷方式所顯示的名字,intent用來控制點擊該快捷方式后打開的應用程序,以及快捷方式的圖標等信息,screen記錄了該快捷方式在主界面的第幾屏創(chuàng)建,cellXcellY分別代表該快捷方式在當前屏幕的XY坐標。該數(shù)據(jù)庫由各個模塊的應用盒子創(chuàng)建,用于記錄每個模塊的應用盒子中由用戶所添加的應用程序。其中模塊,網(wǎng)絡模塊和音樂模塊有應用盒子。其時,其中的數(shù)據(jù)也會在不同的表中。因此,該應用盒子的數(shù)據(jù)庫部分一共維4.2intent,并不涉及到位置和坐標dataintentintent來獲取應用程序4.6以及前文中所介紹的主要技術對其中的算法和函數(shù)加以介紹。結合圖表對部5.1LauncherAndroid系統(tǒng)啟動時首先啟Launcher部分,本系Launcher做了大量的改進。本節(jié)從Launcher類設計、算法設計、界面設計幾個方面對本系統(tǒng)的Launcher部分加以介紹。LauncherLauncherActivityActivity啟動時將調(diào)用其中onCreateonCreateActivity結束時,系統(tǒng)會一次調(diào)用onPauseonStop5.1Activity生命周期圖。在屏幕的前臺(Activity棧頂Activity處于該狀態(tài),則其一定執(zhí)行了onCreate方法,該MP5器系統(tǒng)中桌面和其他子模(onPaused,AcitvityonResume方法恢復其所保存的桌面和其他子模塊的狀態(tài)。但是在系統(tǒng)內(nèi)存低下的時候?qū)⒈粴⒌簟#╫nStopped內(nèi)存需要被用在其他地方的時候,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);上述代碼以網(wǎng)絡個兩個子模塊為例進行說明。首先初始化subNetworkScreenaddViewLayout之中。當系統(tǒng)切換到桌面時會調(diào)用fourpartanim函數(shù),首先初始化networkanim動畫對象,該對象用于網(wǎng)絡模塊縮略圖,設置好參數(shù)后通過startAnimation方法啟動,接著在networkanim動畫結束后,通過調(diào)用onAnimationEnd方法啟動模塊動畫。ViewStubstubMovie=(ViewStub)dragLayer.findViewById(R.id.stub_movie_page);XMLvisibilitygone。在5.2模塊詳細設計與實1.模塊主要類的設MoviePage控制著該模塊中界面元素的布局,對用戶的操作做出響應,ListViewAdapter兩個類,其中ListView表示用來顯示列表的視圖;Adapter是用來把數(shù)據(jù)到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=的第一個參數(shù)指定了文件的深度,最后將文件路徑的列表保存在filePathList中。2)用戶可以通過點擊本地列表或者點擊模塊背景環(huán)幕的截圖等方式打開本地,啟動指定的器對進行。這種方法都是通過Intent的方式打開文件的Intent分為直接Intent和間接Intent兩種直接Intent為指定了component屬性的Intent,其調(diào)用了ponent或者setClass方法。通Intentintent=newintent.setDataAndType(Uri.fromFile(newList.get(groupIndex*6 屬性的Intent。這些Intent需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在Intentintent=newintent.setDataAndType(Uri.fromFile(newList.get(groupIndex*6 首先初始化Intent對象,接著通過setDataAndType方法將代表文件的路MIME類型,本例中為。最后通過startActivity方法啟動該Intent,此時系統(tǒng)會根據(jù)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方法將數(shù)據(jù)傳入適音樂設該模塊的迷你音樂器可以對本地的音樂進行,音樂主要是通過Service的方式進行的。服務不能自己運行,需要通過調(diào)用startService()或startService方法啟用服務,調(diào)用者與服務之間沒startService方法,在退出音樂模塊時,其中的音樂依然可以照常。圖5.5為Service流程示意圖。在服務未被創(chuàng)建時,系統(tǒng)會先調(diào)用服務的onCreate方法,接著調(diào)用 mand方法。如果調(diào)用startService()方法前服次調(diào)用 mand方法。采用startService方法啟動的服務,只能調(diào)用Context.stopService方法結束服務,服務結束時會調(diào)用onDestroy方法5.3Servie初始化ifAutoPlay==true 來達到音樂的目的。該方法的調(diào)用位于Service的onCreate初始化ifAutoPlay==true mMediaPlayerMediaPlayer的實例,首先通setDataSource方法將音頻文件的路徑傳遞進去,按流程調(diào)用prepare和start方法來對音樂進行。其中5.4模塊詳細設計與實本節(jié)從主要類的設計、算法設計和界面設計幾個方面對塊的詳細設計模塊的主要的類包括BookPage、BookThumbnail、MyGripter、MyListAdapter:該類與MyGripter共同控制著在封面模式和列表模式下BookDecoderPdfEpub:控制著對Pdf文件及Epub文件的 1)publicclass {static}}JavaJavaDexBytecodeDalvikVM(虛擬機)JavaJavaC組件此時,VMJavaCJNI介面而相互溝JavaCpublicclass {static}}與*.so文件就匯合起來,一起執(zhí)行了。在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方法將其到數(shù)據(jù)庫中,具體為數(shù)據(jù)庫的哪一張表是通過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列表,再將其做為參數(shù)傳遞給adapter,最后將其顯示在界面上開信息到數(shù)據(jù)庫中。下面詳細介紹一下刪除操作。圖5.4刪除操作流程。開創(chuàng)建刪除獲取對象位取得對象從數(shù)據(jù)庫中刪除該對刷新界面顯結結5.4當用戶長按應用盒子中的某個應用程序時,系統(tǒng)會彈出一個框。當點擊按鈕“是”getItenAtPositonApplicationinfo(應用程序信息),然后在數(shù)據(jù)庫中通過execSQL方法執(zhí)行SQL語句,將對應的應用程序從數(shù)據(jù)庫中刪除,同時,調(diào)用remove方法將該程序從傳入應用盒子的applications列表中移除,最后更新應用盒子中的數(shù)據(jù)。若用戶點擊按鈕“否”,則if(getResources().getConfiguration().orientation==if(getResources().getConfiguration().orientation==else系統(tǒng)通過m_CURRENT_SCREEN_ORIENTATION變量來表示屏幕當前方向if屏幕方向if屏幕方向變publicclassAlwaysMarqueeTextViewextends{publicpublicclassAlwaysMarqueeTextViewextends{publicbooleanisfocused;{return}}5.6本章小及前文中所介紹的主要技術對其中的算法和函數(shù)加以介紹。結合圖表對部分測試環(huán)B線將C機中的、音樂、等文件拷貝到設備的內(nèi)存和D卡中,進而對視頻模塊、音樂模塊、模塊等進試。并且通過連接充電器持續(xù)操作

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論