移動終端應用程序設計方法研究_第1頁
移動終端應用程序設計方法研究_第2頁
移動終端應用程序設計方法研究_第3頁
移動終端應用程序設計方法研究_第4頁
移動終端應用程序設計方法研究_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

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

文檔簡介

移動終端應用程序設計方法研究作者:王倩萍 指導教師:程樹林摘要:目前,移動終端設備在我們的日常生活中越來越普及,這主要是基于它的方便和易操作性。能基于不同的操作平臺,開發出不同的應用,是本文的主要內容。本文主要以Android作為出發點,以此為例,探究如何在此操作平臺上對應用的開發研究,在搭建了Android開發環境后,用一些語言在上面進行程序的編寫,運行,以達到移動應用的最終生成;本文將以一個播放器的生成展開討論研究。關鍵詞:Android,移動應用開發,系統架構,播放器0 引言人類對于自由和交流的渴望是無止境的,技術的發展使得人類對自由的夢想逐漸變為現實,讓移動終端從最初的BP機,到現在的PDA,智能手機。就像一臺戲總需要一個舞臺,通過舞臺的完美配合以及自身的演繹才能達到完成的效果。我們想要開發一個應用程序總需要一個編輯它的工具,以及一個能讓它完美運行的環境,只有外部條件達到,才能在這個環境下開發我們想要的應用程序,才能讓我們應用程序有地運作。那么目前我們的移動終端有很多種,最火的莫過于蘋果和三星旗下的手機,平板電腦之類。它們分別的運行系統是ios、android。能在大眾之間普遍流行起來最主要的原因就是它傻瓜似的操作能達到我們想要的結果。Ios系統是由蘋果公司為iPhone開發的操作系統。它是給iPhone,iPodtouch和iPad使用。但ios僅限于蘋果產品的使用,其它開發移動產品的用戶是不能使用它的,這時google開發的android系統就分得不少的市場。而在這之前一直屬于手機市場老大的Nokia卻由于它的局限性似乎越來越退出大眾視線。Nokia大部分手機均是使用Symbian系統,但由于其發展受到局限性,沒有android的可開發深度性高。因此Android以其簡單易操作和可擴展性深受大眾青睞。在這樣的環境下,人們可以開發自己想要的其它應用程序,放在移動終端上應用。當我們搭建了一個完美的運行環境時,我們仍需舞臺上的主角,應用程序的開發。移動應用程序的開發工具有許多種,其中比較常用的有AppMaker,MobileNation,Bizness app等等,都有它們適用的操作系統平臺和應用程序的開發方法,像Bizness app就是一個純傻瓜似的構建app的平臺。用戶完全不需要具備任何編程知識,只要進行按鈕勾選及拖拽,就能完成大部分設計工作。本文就以在安裝了eclipse的環境下,用java語言編寫移動應用程序,最后編譯,運行,以達到目的。本文就以在Android環境下開發一個播放器為例來具體說明是如何在移動終端上應用程序的設計。1 Android簡介 Android是Google在2007年發布的一款全新的智能手機終端操作系統和移動應用開發平臺,它基于Linux內核,由操作系統、中間件、用戶界面和應用軟件組成,是一個開放而完整的移動“軟件棧”。 因此,自發布以來Android立刻受到了業界的廣泛關注,并很快成為主流。為了提供更加完善的功能和方便開發人員,Google對Android平臺的SDK更新很快,目前已發布30版本,開發人員可以利用SDK中所提供的工具,為基于Android操作系統的手機進行移動應用開發。本文將詳細闡述Android平臺的組成、系統架構、API、應用程序框架以及該平臺下應用程序的基本開發方法1。本項目是一款基于Android手機平臺網絡播放器,使Android手機擁有個性的播放器,讓手機主人隨時隨地處于音樂和視屏的中快樂之中。使人們的生活更加多樣化。也使設計者更加熟練Android的技術和其它在市場上的特點。2 Android平臺的組成和系統架構21 Android平臺的組成Android不僅是一種用于移動終端設備的操作系統,更是一個開源的體系架構。它大量應用了開源社區的各項成果,并針對移動設備進行了充分優化。Android主要包含以下功能組件2:1)經Google針對移動設備裁剪和優化的Linux內核。2)由Google重新實現的Java虛擬機Dalvikvm 。3)大量的函數庫和服務,如瀏覽器引擎WebKit,數據庫SQLite。4)常用的應用程序,如撥號程序和通訊錄等。5)一套完整的SDK(Software DevelopmentKit),提供了使用Java語言進行Android應用開發的API類庫和 工具集(包括Android模擬器和Eclipse IDE下的開發工具插件以及一組用于在模擬器和終端設備上打包、安裝、調試和測試應用程序的工具)。6)經過優化的輕量級2D和3D圖形引擎,用于支持各種游戲的開發。7)提供常見音頻、視頻和圖片格式支持的底層多媒體庫。8)用于支持GSM、藍牙、3G、WiFi、攝像頭、GPS和各種輸入設備的驅動程序。22 Android的系統架構 Android操作系統自頂向下分為4層,分別為應用層、應用框架層、函數庫和虛擬機層以及Linux內核層。 其架構如圖1所示。圖1 Android Architecture(android 軟件結構圖) 其軟件層次結構自上而下分為以下幾個層次:第一層:應用程序(Application)。第二層:應用程序框架(Application Framework)。第三層:各種庫(Libraries)和Android運行環境(RunTime)。第四層:操作系統層。 1)應用層(Application) 應用層提供了一系列核心應用程序,包括郵件客戶端、SMS(短信)、H歷、Google地圖、Web瀏覽器(Brower)和通訊錄(Contacts)等。這一層所有(包括開發人員自己開發的)應用程序都是使用Java語言編寫的。值得一提的是,這些應用程序可以同時執行,比如用戶可以一邊聽音樂一邊閱讀郵件。 2)應用框架層(Application Framework) 開發者完全可以訪問核心應用程序所使用的API框架。該應用程序架構用來簡化組件軟件的重用;任何一個應用程序都可以發布它的功能塊并且任何其他的應用程序都可以使用其所發布的功能塊(不過的遵循框架的安全性限制)。該應用程序重用機制使得組件可以被用戶替換。 所有的應用程序都由一系列的服務和系統組成,包括: 可擴展的視圖(Views)可以用來建應用程序,包括列表(lists),網格(Grids),文本框(Text boxes),按鈕(button),甚至包括另一個可嵌入的 web瀏覽器。 內容管理器(Content Providers)使得應用程序可以訪問另一個應用程序的數據(如聯系人的數據庫),或者共享它們自己的數據。 資源管理器(Resource Manager)提供非代碼資源的訪問,如本地字符串,圖形,和分層文件(Layout Files)。 通知管理器(Notification Manager)使得應用程序生可以在狀態欄中顯示客戶通知信息。 活動類管理器(Activity Manager)用來管理應用程序生命周期并提供常用的導航回退功能。 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內核層(Linux Kerne1) Android基于Linux 26內核來提供操作系統的核心服務,如進程管理、內存管理、安全性、網絡協議和驅動模型。內核也作為硬件和其余軟件棧之間的一個抽象層。3 Android應用軟件的開發核心技術3.1 Android 應用開發語言 JAVA是Android上的主流開發語言,各種支持也最完善。Android發布的API和SDK也都主要是面向JAVA開發人員的。我的網絡播放器實例也是用JAVA開發的。 3.2 Android 應用程序組件Android 應用程序最大的一個特點就是每個應用都由若干組件構成。而且各個應用程序的組件還可以相互調用(需要在代碼中設置相應權限)。例如假設我們需要編寫一個內嵌于網頁的程序,那么我們無需親自編寫瀏覽器,而是可以直接調用系統自帶的Chrome Lite瀏覽器組件。又如假設我們編寫了兩個應用程序,其中一個程序中有列表顯示圖標的組件,那么我們在另一個應用程序中就可以使用該組件,而不需要在編寫該功能。也就是說,不同于我們平常編寫的程序,Android的應用程序不是單一入口,而是可以從代碼的不同位置啟動。這就要依靠組件來實現3。Android應用程序的組件有以下四種: 3.2.1 Activities 一個Activity實際上表現出來的就是一個程序的界面。這個界面可能有許多不同的形式,比如有列表形式,有文字形式,有圖像格子等形式。一個應用程序也可能有不止一個Activity。比如一短消息的程序,需要有列表顯示所有消息的Activity,還至少需要一個編輯短信的Activity,還可能需要設置、菜單等界面4。每個Activity都有一個默認的窗口用于繪制界面,一般情況下,它是充滿全屏的,但是我們可以通過程序控制它,使其小于屏幕大小,也可以控制其浮動于其他窗口之上(如Android中的Toast信息)。Activity中顯示出來的內容其實是由view堆疊形成的,view是由View基類派生出來的各種形式的界面元素,如ListView,GridView等等,通過組合這些view,就形成了一個可見的Activity。我們可以用Activity.setContentView()方法來設置一個Activity中所要顯示的view。 3.2.2 ServicesService是一種沒有界面的組件,同我們平常在Windows或Linux系統中所理解的“服務”一樣,Android上的service也是運行在后臺的,運行時間可以從系統啟動到系統關閉為止。對于許多應用程序來說,service組件式至關重要的。以下載管理器為例,用戶肯定希望能夠在切換到其他程序時仍然在后臺繼續下載,這就需要用到service完成下載工作。而顯示下載進度、已下載文件等信息則由Activity完成,同時我們還希望控制下載過程,如停止、繼續等,這就需要Activity與service之間進行通信。Android允許activity連接到或者綁定到service上,這樣就可以讓用戶在界面上控制后臺service的行為。 3.2.3 Broadcast receiversBroadcast意為廣播消息,Android系統自身會發出許多廣播消息,如電量不足,用戶修改了全局設置等,各個應用程序也以向整個系統廣播消息,如文件下載。Broadcast receiver則是程序中專門用來接收廣播消息的組件,它沒有界面顯示,只負責監聽、接收廣播消息,然后根據程序邏輯,啟動其他組件去處理廣播消息。它可以啟動一個Activity來同用戶交互,也可以使用NotificationManager向用戶發出通知。NitificationManager的通知形式有許多種,比如說振動、響鈴、閃LED燈,還可以在Android界面的消息欄處顯示信息。 3.2.4 Content providersContent provider是一種為其它應用程序提供數據的組件。這些數據可以保存在文件中,也可以保存在SQLite數據庫中,還可以以其他任何有效的方式保存。ContentProvider類為我們提供了一系列保存數據的方法供我們調用,可以很方便地存儲數據。其它應用程序在需要使用這些數據時,可以用ContentResolver對象,使用其中的方法。ContentResolver可以與任何contentprovider交互,獲取其中的數據。 只需要某個組件,Android就會盡力保證它的可用;如果該組件還沒有啟動,就啟動它,如果該組件所屬的應用程序還沒擁有一個進程,則為它啟動一個進程,如果系統資源不足以容納一個新的進程,則將后臺的某個進程殺死為新進程騰出資源5。4 Android應用開發環境配置 任何事物要運行,都要有它的環境,Android也有它的環境才能夠運行,下面介紹Android的開發環境配置。4.1開發環境的搭建操作系統:Windows XP或Windows 7或linux軟件包:Android SDK(Software Development kit),ADT(Android Develoopment Tool)IDE:Eclipse IDE+ADTJDK:Java Development kit4. 2安裝步驟如下:第一步:安裝Java虛擬機Sun Java虛擬機(jre) V8版本。第二步:安裝Eclispse3.5工具官網http://downloads/選擇版本(圖2)下載完成后直接解壓即可使用,無需安裝。圖 2 網頁截圖第三步:安裝Android SDK:首先要下載SDK,可以在這個網址下載Http://sdk ,選擇相應的系統進行安裝。圖 3 android-sdk下載地址 第四步:安裝Android ADT插件。 啟動Eclipse,選擇“Help”“Install New Software.”,準備安裝插件,Eclipse版本不同,打開的對話框也是不同的。 圖4 Eclipse在線安裝插件點擊圖4 “Add”彈出圖8所示對話框。圖5 Eclipse在線安裝插件 在“Location”中輸入Android ADT插件在線下載地址:/android/eclipse/,點擊OK按鈕就可以下載安裝了,但是一定要保證電腦能夠上網。 設置Android SDK Home,Window-refrence在SDK location 中輸入SDK Tools 路徑:D:android softwareandroid-sdk-windows 點擊OK這樣Android環境就已經搭建成功了圖6 安裝sdk后的截圖 4. 3 Android模擬器中sd卡的創建和文件的上傳在Android模擬器中,初始時沒有sdcard的,為了存放音樂文件,需要自己創建sdcard,我們先來看看如何創建sdcard以及文件上傳。4.3.1 SD卡的創建 通過Android的Tools來創建sd卡并導入進來。 (1)打開dos,windows+R鍵打開。轉換到你的sdk安裝包的tools目錄下,如我的目錄如下:F:adt-bundle-windows-x86-20130219sdktools。 (2)創建sd卡。在命令行中輸入:mksdcard 1024MF:androidsdcardsdcard.(這個1024M就是我們要創建的SD卡的大小,還是根據自己的需要來輸入,最后面的那個F:androidsdcardsdcard.img就是所設置的SD存放路徑,這里也可以根據我們自己的需要改變路徑的,但要注意路徑中不能有空格出現)。 (3)在Eclipse里面創建模擬器,并以該SD開來創建。 (4)創建完成之后,啟動該模擬器。可以在AndroidSDK and AVD Manager 里面指定模擬器并啟動。 (5)同樣打開Eclipse的DDMS-FileExplorer 查看sd卡是否安裝成功6。5 Android應用開發實例配置好開發環境后,使用Eclipse+ADT開發Android應用程序就很方便了。開發流程 如下:創建一個Android項目;使用XML layout設計和編輯用戶界面; 繼承Activity類并覆蓋相應的方法,加入功能代碼;在模擬器或移動設備上運行、調試和測試程序。 下面以一個簡單的播放器為例來闡述下Android應用的開發過程與方法。程序的基本功能是播放本地的音頻文件,使用Java語言開發。首先通過Eclipse的File一New一Project菜單創建“Android Project”項目,然后在新建Android項目對話框中輸入項目的名稱、目標平臺等信息。完成后向導自動生成應用程序框架,然后在此基礎上通過修改自動生成的代碼來實現自己的功能即可。5.1 功能需求 5.1.1 播放器的基本控制需求 根據項目的目標,我們可獲得項目系統的基本需求,一下從不同的角度來描述系統的需求,并且使用用例圖來描述,系統的功能需求,我們分成四部分來概括,即播放器的基本控制需要,播放列表管理需求,播放器友好性需求和播放器擴展卡需求。圖7 播放器基本控制圖 在播放器正在運行時,用戶單擊“播放”按鈕,播放器將播放選中的播放列表中的音樂,并同時顯示當前進度;當歌曲未暫?;蛲V箷r,用戶單擊“暫?!卑粹o,播放器將進入暫停狀態;播放器正在播放或暫停時,用戶單擊“停止”按鈕,播放器將停止播放或暫停時,用戶點擊“上一首”或者“下一首”按鈕,播放器將播放上一首或下一首歌曲。 5.1.2功能需求(時序圖)分析 從時序圖中可以看出播放器中信息發送和調用過程:主界面播放列表播放界面點擊進入按鈕選擇歌曲播放進入播放列表播放后臺serviceSe rvic播放頁面發送參數,調用后臺service播放,返回播放界面圖8 音樂播放器的時序圖5.2 系統結構圖和流程圖主界面搜索是否點擊要播放的歌曲音樂播放程序結束網絡搜索本地文件播放列表樂圖9 音樂播放器系統流程圖5.3系統界面需求 播放器界面要求布局合理,簡約,顏色舒適,控制按鈕友好,能讓用戶一眼就能看出各個按鈕的作用及操作方法。能實現要求的功能,但又不重復。要考慮到不同手機屏幕大小可能不一樣,應盡量兼容大多數手機屏幕尺寸,使之顯示無障礙。5.4系統性能需求根據Android手機系統要求無響應時間為5秒,所以就有如下性能要求:(1)當要求歌曲/視屏播放時,程序響應時間最長不能超過5秒。(2)當要求歌曲/視屏暫停時,程序響應時間最長不能超過5秒。(3)當要求歌曲/視屏停止時,程序響應時間最長不能超過5秒。(4)當要求歌曲/視屏上/下一首時,程序響應時間最長不能超過5秒。(5)界面切換響應時間最長不能超過3秒。5.5運行環境需求(1)操作系統:Windows 7。(2)支持環境:Android 2.2版本。(3)開發環境:Eclipse 3.5 ADT 14.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)方法設置流媒體的類型為音頻來完成準備工作。用戶界面的設計是基XML layout的,可通過手工編寫XML代碼進行,也可以通過可視化設計工具輕松完成。為了簡單起見,音樂播放器界面中僅包含顯示當前曲目的文本便簽和用于播放控制的“打開”、“播放”、“暫?!焙汀巴V埂彼膫€按鈕。用戶界面代碼如下:(1)文件列表按鈕布局:(2)暫停/播放按鈕布局:基本功能簡介:本地文件列表是用listview來現實的,我將listview布局放入一個對話框中,當我們點擊本地文件按鈕時我們就可以用對話框來顯示listview中的文件名稱,同時我們點擊相應的文件名稱是就可以播放該文件內容。這一功能是調用listview的監聽來實現的。 在軟件幫助按鈕功能實現上使用一個imagbutton同時給這個按鈕設置監聽,當按鈕被按下就會觸發buttonlistener事件,這樣就會執行我們在監聽器中的相應動作。主界面的中間就是MediaPlyer,當我們在播放視屏時,我調用了android中關于設置圖片透明度的相關函數把主界面的一些按鈕隱藏掉這樣跟方便觀看視屏和聽音樂。同時也設置了屏幕監聽,當我們點擊屏幕是這些按鈕又會被調用出來,再次點擊就會暫停播放,雙擊是全屏和退出全屏。 6.3 Android媒體播放原理Android源程序已經為我們封裝了一個接口類,叫MediaPlayer。該接口在執行前需要一個數據源,通過如下四個步驟:第一步:MediaPlayer.reset();復位操作,為以后的媒體準備播放做準備。第二步:傳入歌曲/視屏數據源,這里也是一個數據源:MediaPlayer.setDataSource(String path);參數需要一個路徑,該接口類在收到路徑后將其轉化為數據源。第三步:準備播放數據源,調用MediaPlayer.prepare();。第四步:MediaPlayer.start();。播放數據源,該數據源播放后,不再于程序有關,需要調用MediaPlayer.stop()方法讓其停止或MediaPlayer.start();讓其啟動8。7軟件測試7.1 軟件的測試 一個程序并不可能達到十分完美,難免存在一些錯誤。如果不能及時將其找出并修改,會造成系統崩潰并造成不必要的損失。通過軟件測試,盡可能多的找出系統中的錯誤,以便于及時修改7。7.2軟件測試的環境 (1)軟件測試的性能要求 軟硬件要求:系統環境 win7;硬件系統環境 P4 2.4、1024MB內存、80G硬盤。系統運行時對數據的保密性要求不高對一般的數據不要求進行加密。此外,對其他軟件幾乎沒有依賴性,程序健壯性較好。 (2)測試建立一張模擬的SD卡,上傳歌曲文件;分別測試其的播放、暫停、停止、上/下一首的功能是否有用。 (3)軟件測試的評價軟件功能評價:此軟件各模塊都能實現各自的功能,基本符合播放音樂、視屏的要求。8 結束語綜上所述,我們大致可以了解移動應用的開發過程,即搭建它所運行的環境和開發它所使用的語言。剩下的即為在開發環境下應用代碼的編寫。學習一門新技術,最重要的是實踐,只有多動手才能盡快掌握它。一個系統的開發,經驗是最重要的,經驗不足,就難免會有許多考慮不周之處。 隨著移動互聯網的不斷發展,智能手機等移動終端設備將取代PC而成為市場主流。Android以其開放性、易用性和良好的用戶體驗得到業界廣泛關注,進行Android應用開發的公司與個人也在以驚人的速度增加,競爭也越來越激烈,以搶占市場先機。 本文以此為背景,詳細地闡述了Android平臺的組成、架構、應用框架和組成,并通過一個簡單的實例介紹了該平臺下應用程序的開發流程與開發方法。致謝 感謝程樹林老師對我論文的指導,以及各位審核教師的檢測。參考文獻1胡幸征,ophone應用開發權威指南M,北京:電子工業出版社,2010.1;40-60.2朱靖宇,程序設計語言的進化,計算機世界J2004,(02) 3 高煥堂,Google Android 應用框架原理與程序設計M, 廣東:廣悅文化事業有限公司出版社, 2009,1,56-80.4 溫敏、艾麗蓉、王國志,And

溫馨提示

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

評論

0/150

提交評論