




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 太原理工大學畢業設計(論文)用紙 。 Linux 內核也同時作為硬件和軟件堆棧之間的硬件抽象層。同所有Linux內核一樣,Android內核是介于硬件層和軟件組之間的一個抽象層次2.2.1 應用程序(APPLICATIONS)Android平臺默認包含了一系列核心應用程序,包括電子郵件、短信、日歷、地圖、瀏覽器、聯系人管理程序等,這些程序都以java 程序語言編寫,你也可以用自己便攜的應用程序來替換Android提供的應用程序,這個替換的機制實際是由應用程序框架來保證的。如圖2-2所示。圖2-2 應用層2.2.2 應用程序框架(APPLICATION FRAMEWORK)應用程序框架是我們進
2、行Android開發的基礎應用程序框架層包含了視圖系統,內容提供器,窗口管理器,活動管理器,通知管理器,位置管理器,資源管理器,電話管理器和包管理器9大部分。如圖2-3所示。圖2-3 中間件層2.2.3 Android 運行時(RUNTIME)Android 雖然采取Java程序語言來編寫應用程序,但不使用J2ME執行Java程序,而是用Android自有的Android運行時(RunTime).Android 運行時包括核心庫和Dalvik虛擬機兩部分。如圖2-4所示。圖2-4 核心庫,虛擬機2.2.4 系統庫(LIBRARIES)應用程序框架是貼近于應用程序的軟件組件服務,而更底層則是An
3、droid的函數庫,這一部分是應用程序框架的支撐,其架構如圖2-5所示。圖2-5系統庫2.2.5 LinuxAndroid平臺是開放,采用Linux內核則是Android平臺開放性的基礎。Android平臺中的操作系統采用了Linux2.6版的內核,它包括了顯示驅動、攝像頭驅動、Flash內存驅動、Binder(IPC)驅動、鍵盤驅動、wifi驅動、Audio驅動以及電源管理部分。Linux內核層為我們在軟件層和硬件層建立了一個抽象層,使得應用程序開發人員無需關心硬件細節。對于手機的開發商而言,如果想要Android平臺運行到自己的硬件平臺上就必須通過對Linux層進行修改,通常要做的工作就是
4、為自己的硬件便攜驅動程序。2.3 SQLite數據庫Android采用SQLite這個輕量級數據庫工具來管理數據;SQLite,是一款輕型的數據庫,是遵守ACID的關系型HYPERLINK /view/68446.htm數據庫管理系統,它的設計目標是HYPERLINK /view/30741.htm嵌入式的,而且目前已經在很多HYPERLINK /view/4085543.htm嵌入式產品中使用了它,它占用資源非常的低,在HYPERLINK /view/2778983.htm嵌入式設備中,可能只需要幾百K的內存就夠了。它能夠支Windows/Linux/Unix等等主流的HYPERLINK /
5、view/880.htm操作系統,同時能夠跟很多程序語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC接口,同樣比起Mysql、PostgreSQL這兩款開源世界著名的HYPERLINK /view/68446.htm數據庫管理系統來講,它的處理速度比他們都快。SQLite第一個HYPERLINK /view/707803.htmAlpha版本誕生于2000年5月。 至今已經有14個年頭,SQLite也迎來了一個版本 SQLite 3已經發布。SQLite是遵守ACID的關系型數據庫管理系統,它包含在一個相對小的C庫中。它是D.RichardHipp建立的公有領域項目。不像常見的
6、客戶-服務器范例,SQLiteHYPERLINK /view/53607.htm引擎不是個HYPERLINK /view/17674.htm程序與之通信的獨立進程,而是連接到程序中成為它的一個主要部分。所以主要的通信協議是在HYPERLINK /view/3281.htm編程語言內的直接API調用。這在消耗總量、延遲時間和整體簡單性上有積極的作用。整個數據庫(定義、表、索引和數據本身)都在宿主主機上存儲在一個單一的文件中。它的簡單的設計是通過在開始一個事務的時候鎖定整個HYPERLINK /view/38752.htm數據文件而完成的。SQLite雖然很小巧,但是支持的SQL語句不會遜色于其他
7、開源數據庫,它支持的SQL包括:ATTACH DATABASE ,BEGIN TRANSACTION,COMMENT,COMMIT TRANSACTION,COPY,CREATE INDEX,CREATE TABLE,CREATE TRIGGER,CREATE VIEW,DELETE,DETACH DATABASE,DROP INDEX,DROP TABLE,DROP TRIGGER,DROP VIEW,END TRANSACTION,EXPLAIN,expression,INSERT,ON CONFLICT clausePRAGMA,REPLACE,ROLLBACK TRANSACTION,
8、SELECT,UPDATE。同時它還支持HYPERLINK /view/709594.htm事務處理功能等等。也有人說它象Microsoft的Access,有時候真的覺得有點象,但是事實上它們區別很大。比如SQLite 支持跨平臺,操作簡單,能夠使用很多語言直接創建數據庫,而不象Access一樣需要Office的支持。2.4 Android開發環境的搭建在軟件開發中,大部分的軟件都需要配置開發環境才能夠使用,Android開發也不例外。下面介紹Android的開發環境配置:搭建開發環境需要的軟件:(1)操作系統:Windows XP或Linux(2)軟件包:Android SDK(Softwa
9、re Development kit Java Development kit) 、ADT(Android Develoopment Tool)(3)IDE環境:IDE Eclipse +ADT Eclipse(4)JDK:Java Runtime Environment、Java Development kit安裝步驟如下:第一步:安裝Java虛擬機sun-java6-jdk版本,正常安裝即可,完成后需要配置環境變量。第二步:安裝Eclipse工具 官網/downloads/選擇版本,進行安裝。Eclipse安裝包下載如圖2-6所示。圖2-6 Eclipse安裝包下載第三步:安裝安卓的SDK
10、包:首先在安卓開發者的官網下載SDK,具體下載地如下/sdk ,選擇自己的系統進行下載安裝。如圖2-7所示。圖2-7 SDK包下載界面第四步:安裝Android ADT插件打開Eclipse,點擊help,然后點擊install new software ,再點擊add,然后會彈出一個框。如圖2-8所示。圖2-8 ADT插件安裝界面選擇瀏覽你下載的ADT插件的包,點擊OK按鈕,選擇需要安裝的包,占擊next按鈕,然后選擇接受協議,等到安裝成功以后重啟Eclipse工具,再設置Android SDK 環境,點擊Window然后Preferences,再選擇點擊Android。 如圖2-9所示。圖
11、2-9 配置開發環境在SDK location中輸入SDK Tools路徑:E:android_sdk點擊OK這樣Android環境就已經搭建成功了。3 系統分析3.1 概述系統分析是在總體規劃的指導下,對某個或若干個子系統進行深入仔細地調查研究,確定新系統邏輯功能的過程。這一階段的主要任務是由系統分析員了解每個業務流程,工作流程,廣大用戶的需求,運用系統開發理論、開發方法和開發技術設計出一個計算機化的信息系統。3.1.1 系統分析的原則在系統分析中存在很多困難,為了克服困難,做好分析工作,在進行系統分析時應遵循系統分析的原則,這樣才能保證分析工作能夠順利進行,系統分析的原則有:(1)邏輯設計
12、與物理設計分開的原則(2)面向用戶的原則(3)結構化分析的原則通過實際調查并與相關用戶交流后,分析商品訂購網模擬網站的具體的要求,確定本網站系統的邏輯功能,以滿足用戶的各項要求,完成相應的各項功能,提高網站的實用水平。在近期目標完成后,該系統應該有很強的擴充性,便于在此基礎上進行擴充式開發,為以后的發展及擴充打好基礎。 3.1.2 系統分析的方法該系統采用以抽象和分解為手段,并且采用結構化分析方法進行系統分析,根據實際調查研究,對系統進行自頂向下的逐層分解,逐步細分,逐步求精,建立新系統的邏輯模型,這個邏輯模型將盡可能避免使用計算機術語,讓其盡可能的簡單化、通俗化,便于設計者和瀏覽者的溝通與交
13、流經驗。結構化分析方法的基本思想是該系統采用結構化分析方法,以抽象和分解為手段,對系統進行自頂向下的逐層分解,逐步細分,逐步求精,從而達到易于理解的目的。3.1.3 系統性能要求分析為了保證能夠長期、安全、穩定、可靠的運行,系統應滿足以下性能要求:(1)系統處理的準確性與及時性:系統處理的準確性和及時性是系統的必要性能。在系統設計和開發過程中,充分考慮當前和將來可能承受的工作量,使系統的處理能力和相應時間能夠滿足信息處理的要求。 (2)系統的可擴充性及可維護性,系統的開發過程中,應該充分考慮以后的可擴充性相當于升級。當今企業對系統的可維護性也有了相當高的關注。例如添加新功能。所以本系統采用了C
14、S開發模式,大幅提高了系統的可擴展性及可維護性。 (3)系統的可兼容性,考慮到目前Android版本眾多、設備眾多,所以設計出的程序必需要求可以兼容各個主流版本。(4)系統的可靠性, 可靠性是保證系統正常工作及抗故障、抗干擾的能力,它包括:保證系統正常工作的能力;對系統故障的預防、檢測以及自動糾錯的能力;出現故障時,保證系統不發生崩潰,并使系統重新恢復、重新啟動的能力等安全性是保證合法用戶能夠正確使用信息系統,并防止非法用戶訪問信息系統的能力適應性是信息系統對外部環境和需求變化的適應能力。3.2 系統可行性分析可行性研究的目的,就是用最小的代價在盡可能短的時間內確定問題是否能夠解決。要達到這個
15、目的,必須分析幾種主要的可能解法的利弊,從而判斷原定的系統規模和目標是否現實,系統完成后所能帶來的效益是否大到值得投資開發這個系統的程度。因此,可行性研究實質上是對進行了一次較大壓縮簡化后的系統進行分析和設計的過程,也就是在較高層次上以較抽象的方式進行的系統分析和設計的過程。系統的可行性分析主要包括經濟上的可行性,技術上的可行性,操作上的可行性和法律上的可行性。經濟可行性目標系統開發經濟需求的比較低,加上具有成熟的Android平臺以及十分普及手機設備,所以在軟硬件的支出上十分有限。而且,目標系統并是十分的復雜,開發的周期較短,人員經濟支出有限。當系統開發成后,通過測試和、試運行和實際應用后,
16、將很大程度上提高移動公交查詢系統的科學性和高效性,在為人們帶來便利的同時,也為系統的進一步推廣、創新創造了條件,這帶來的經濟回報將遠超過支出,并且最重要的一點是通過該系統的開發,可以使我們進一步理解軟件工程思想和軟件開發流程,為從事軟件開發工作打下很好的基礎,從長遠利益來考慮,本課題的設計開發還是具有相當大的經濟可行性的。技術可行性本系統使用Android技術進行開發,發展到現在,Android已經算是一個較成熟的平臺了,現在有越來越多的企業及技術人員選擇它作為開發平臺。因此,在技術上.NET是完全可以勝任這個平臺的開發。Android開發平臺是由谷歌與 HYPERLINK t _blank
17、開放手機聯盟合作開發的一個開放、自由的移動終端平臺,它由操作系統、中間件、應用軟件三部分組成。該平臺備有完善的程序開發環境,包括模擬器、除錯工具、程序執行所耗用存儲器、性能評介等功能。操作可行性本系統用戶只要有一臺Android手機,就可以使用了,系統是由的操作都是用戶熟悉的選擇框或者按鈕等等。所有的操作通過手機就可以完成,用戶不需培訓,只要稍微提示一下即可。因此,在操作使用上,本系統簡單、方便,易于使用戶接受,因而是十分可行的。法律可行性由于本系統是在相關法律法規下實施完成的,所以不存在任何法律問題,在法律上是完全可行的。綜合考慮經濟、技術、操作和法律等方面的因素,該系統可以立即開始進行。3
18、.3 系統主要功能分析3.3.1 本地播放模塊(1) 播放列表:系統具有默認播放列表,默認播放列表包含了所有掃描到的歌曲,默認列表不允許刪除。(2)自定義列表:用戶可以新建一個或多個自定義列表,可以往自定義列表里添加歌曲。(3)歌曲掃描:用戶可以掃描SD卡的一切歌曲文件。(4)刪除歌曲:用戶可以刪除列表中的任何一首歌曲。(5)歌曲播放:用戶可以選擇一個本地歌曲播放,播放時可以選擇上一首、下一首、暫停,快進,重播 等操作;(6)播放模式:播放歌曲時,用戶可以選擇歌曲播放模式,例如順序播放、隨機播放或者單曲循環;(7)歌詞顯示:在上傳歌詞的情況下可同步顯示歌詞3.4 系統流程分析本系統完成一個音樂
19、文件的播放流程功能,用戶可以選擇本地播放或在線播放,例如選擇本地播放后則會進入本地播放列表,包括默認列表和自定義列表,用戶選擇任何一個列表即可看到該列表中的所有歌曲,點擊一個歌曲即可播放,播放過程中可以選擇暫停、下一首、上一首,快進,重播操作。具體系統的流程圖3-1所示。圖 3-1 系統播放流程圖4 系統設計4.1 系統設計目標在系統分析的基礎上,設計出能滿足預定目標的系統的過程。系統設計內容主要包括:確定設計方針和方法,將系統分解為若干子系統,確定各子系統的目標、功能及其相互關系,決定對子系統的管理體制和控制方式,對各子系統進行技術設計和評價,對全系統進行技術設計和評價等。本系統是設計目標是
20、建立一個基于Android的音樂播放器軟件,基本可以的滿足人們對音樂文件的播放功能,系統具有上手簡單、操作方便快捷的特點。用戶界面漂亮、操作簡單,每個設計都具有人性化的特點,具有使用簡單,功能全面的特點,通過合理而先進的優化,保證了系統的可靠性與容錯性。系統的設計主要考慮了用戶需求,大大為用戶著想,為用戶提供簡單完善實用的音樂播放器。 4.2 系統功能模塊設計本系統本地播放模塊和在線播放模塊,都是由幾個子模塊構成,其中本地播放模塊主要包括:默認列表、自定義列表、歌曲掃描、歌曲提取、歌曲播放、播放控制和播放模式等等。在線播放模塊包括音樂文件緩沖、顯示歌詞,文件播放等功能,模塊架構設計如圖4-1所
21、示。圖 4-1 系統功能模塊圖4.3 數據庫設計本系統用到的數據庫為Android自帶的SQLite數據庫,系統采用三個數據表來記錄信息,分別是音樂播放表、本地列表信息和列表歌曲對應表。其中音樂播放表記錄的是音樂的播放記錄,例如一個音樂被播放了多少次還有最近一次的播放時間。本地列表信息記錄自定義的列表名稱信息,而列表歌曲對應表則記錄自定義列表個歌曲的對應信息。表4-1至表4-3為數據庫設定設定。表4-1 music 音樂播放信息表 序 號列 名數據類型 主 鍵 說 明1_idint 是 2music_idint 音樂ID3clicksint 播放次數4latestVarchar 最后播放時間表
22、4-2 LocalListInfo本地列表信息序 號列 名數據類型 主 鍵 說 明1Idint 是 2namenvarchar列表名稱3createtimenvarchar 創建時間 表4-3 LocalListDetailInfo列表-歌曲對應表序 號列 名數據類型 主 鍵 說 明1Idint 是 2listidnvarchar列表ID3mediaidvarchar音樂ID4createtimenvarchar添加時間4.4 工程文件結構設計在程序開發階段,首先確定“即Android的音樂播放器系統”的工程名稱為MusicPlayerApp,根據程序模塊設計的內容,建立MusicPlayer
23、App項目, MusicPlayerApp項目,的文件結構如圖4-2所示。圖 4-2 工程結構圖為了使代碼文件結構更加清晰, MusicPlayerApp工程設置了多個命名空間,分別保存了用戶界面、數據適配器、常用類庫和實體多個包,源代碼的名稱以及說明如表4-3所示。表4-3 系統代碼結構包名稱文件名說明com.music.mediaMainActivity.java主界面視圖com.music.mediaLocalListActivity.java本地播放列表視圖com.music.mediaMainLocalActivity.java本地歌曲界面視圖com.music.mediaMusic
24、PlayerActivity.java本地歌曲播放界面視圖com.music.mediaMusicService.java音樂播放后臺服務com.music.mediaOnLineMediaPlayer.java在線播放界面視圖com.music.mediaRecentlyActivity.java最近播放界面視圖com.music.mediaScanSdReceiver.java歌曲掃描接收器Android的資源文件保存在/res的子目錄中。其中、/res/anim目錄中保存的是產生動畫效果的XML文件,/res/drawable/目錄中保存的是圖像文件,/res/values目錄中保存的是
25、用來自定義字符串和顏色的文件,/res/xml目錄中保存的是XML格式的數據文件。所有在程序開發階段可以被調用的資源都保存在這些目錄中,具體每個資源文件的用途可以參考表4-4。表4-4 資源文件名稱及用途資源目錄 文件名 說 明Drawablebtn_blue_selector.xml 按鈕資源文件btn_white_selector.xmllistview_item_selector.xmlsys_app_actshape.xmlsys_app_selector.xmlsys_apptop_corners.xmlLayoutlayout_main.xml主界面布局文件layout_mainl
26、ocal.xml本地列表布局文件layout_player.xml本地歌曲播放界面布局文件layout_recently.xml最近播放布局文件layout_scan.xml自定義掃描布局文件file_create.xml文件創建布局文件listview_item_file.xml文件列表Listview文件menumain_menu.xml文件管理上下文菜單布局文件valuesstyles.xml樣式資源文件colors.xml顏色資源文件strings.xml字符串資源文件5 系統編碼實現與測試5.1 音樂播放Service實現Service是android 系統中的四大組件之一(Acti
27、vity、Service、BroadcastReceiver、ContentProvider),它跟Activity的級別差不多,但不能自己運行只能后臺運行,并且可以和其他組件進行交互。service可以在很多場合的應用中使用,比如播放多媒體的時候用戶啟動了其他Activity這個時候程序要在后臺繼續播放,比如檢測SD卡上文件的變化,再或者在后臺記錄你地理信息位置的改變等等,總之服務總是藏在后臺的。本系統的音樂播放就要用到一個運行再后臺的Service,它負責音樂的播放職能。首先我們創建一個MusicService集成Service,然后重載其onCreate、onStart等等幾個方法來控制
28、音樂的播放。public class MusicService extends Service implementsMediaPlayer.OnCompletionListener Overridepublic void onCreate() super.onCreate();if (mp != null) mp.reset();mp.release();mp = null;mp = new MediaPlayer();mp.setOnCompletionListener(this);/* 注冊來電接收器*/IntentFilter filter = new IntentFilter();fi
29、lter.addAction(ent.action.ANSWER);registerReceiver(InComingSMSReceiver, filter);rHandler = new Handler();fHandler = new Handler();Overridepublic void onStart(Intent intent, int startId) super.onStart(intent, startId);/* 初始化mp*/if (flag = 0) & (intent.getExtras().getInt(list) = 1) System.out.println(
30、Service flag=0);return;if (intent.getIntArrayExtra(_ids) != null) _ids = intent.getIntArrayExtra(_ids);int position1 = intent.getIntExtra(position, -1);if (position1 != -1) position = position1;_id = _idsposition;int length = intent.getIntExtra(length, -1);if (_id != -1) if (id != _id) id = _id;uri
31、= Uri.withAppendedPath(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, + _id);DBOperate(_id);try mp.reset();mp.setDataSource(this, uri); catch (Exception e) e.printStackTrace(); else if (length = 1) try mp.reset();mp.setDataSource(this, uri); catch (Exception e) e.printStackTrace();setup();init();if (p
32、osition != -1) Intent intent1 = new Intent();intent1.setAction(MUSIC_LIST);intent1.putExtra(position, position);sendBroadcast(intent1);System.out.println(Service position: + position); /* 開始、暫停、停止 */int op = intent.getIntExtra(op, -1);if (op != -1) switch (op) case MUSIC_PLAY:/ 播放if (!mp.isPlaying()
33、 play();break;case MUSIC_PAUSE:/ 暫停if (mp.isPlaying() pause();break;case MUSIC_STOP:/ 停止stop();break;case PROGRESS_CHANGE:/ 改變歌曲進度currentTime = intent.getExtras().getInt(progress);mp.seekTo(currentTime); break;5.2 功能模塊的實現5.2.1 主界面實現在點擊進入音樂播放器界面之前的主界面,如圖5-1所示。圖5-1 主界面本系統實現一個音樂播放器的基本功能,包括本地播放和在線播放,系統主
34、界面主要實現了這些功能的入口菜單顯示,通過一個ListView組件來顯示“本地音樂”、“在線音樂”、“最近播放列表”和“退出”四個操作。當用戶選本地播放后系統會進入本地音樂列表;當用戶選擇在線播放后,系統會進入在線播放;當用戶選擇最近播放列表后,系統會顯示出最近的播放音樂列表;當用戶選擇退出后,系統會關閉。具體的實現效果如圖5-2所示。圖5-2 播放器主界面5.2.2 本地播放列表實現當用戶進入本地音樂模塊后可以看到本地播放列表,該列表也是通過一個ListView組件來實現,用戶第一次使用時,本地播放列表只有一個項,那就是默認列表,而后面的列表名稱都需要用戶自己添加,用戶可以通過手機的菜單鍵來
35、添加自定義列表,只需要輸入列表名稱并單擊確定即可添加。成功添加后的列表名稱將會被存入SQLite數據庫,下次再進入該列表時,系統會自動把所有自定義列表名稱從SQLite數據庫提取出來并顯示。上下文菜單和新建列表彈出框可以通過復寫Activity的onOptionsItemSelected方法和AlertDialog.Builder一起協助實現。具體的實現效果如圖5-3所示。圖5-3 本地播放列表界面5.2.3 音樂列表實現當用戶選擇一個播放列表后,即可進入該列表的詳細界面,詳細界面列舉了該列表下的所有音樂文件信息,包括歌曲名稱、藝術家和歌曲的播放時長,點擊一個歌曲可以進入歌曲播放界面。另外,長
36、按一個歌曲可以彈出上下文菜單,菜單項包括“播放”、“刪除”和“添加到列表”,選擇刪除可以刪除一個歌曲信息,選擇添到列表可以把該歌曲添加到用戶想要的列表中去。具體的實現效果如圖5-4和5-5所示。 圖5-4 進入音樂列表界面 圖5-5 音樂列表界面5.2.4 音樂播放界面實現該界面位系統核心界面,負責歌曲的播放工作。該界面用到的主要組件包括ImageView、SeekBar、ImageButton和Button等,播放時可以通過下方的“上一首”、“暫停”、“下一首”和“停止”按鈕來控制音樂的播放。自定義SeekBar風格:同時用戶可以通過右上角的播放模式按鈕來控制音樂的播放模式,例如順利播放、隨
37、機播放等;音樂播放時,如果存在歌詞文件,則系統會同步顯示歌詞,系統顯示歌詞步驟:把歌詞文件讀取到BufferedReader中;解析讀取到的文本信息,提取其中時間和歌詞文字;通過歌曲當前播放時間和歌詞各段時間對比,顯示對應的歌詞信息;具體的實現效果如圖5-6所示。圖5-6 音樂播放界面點擊右雙箭頭可進去下一曲,左箭頭可進入上一曲。如圖5-7所示。 圖5-7 下一曲界面 解析歌詞部分代碼:/* 解析歌詞* * param path*/private void read(String path) lrc_map.clear();TreeMap lrc_read = new TreeMap();St
38、ring data = ;BufferedReader br = null;File file = new File(path);if (!file.exists() lrcText.setText(歌詞文件不存在.);return;FileInputStream stream = null;try stream = new FileInputStream(file);br = new BufferedReader(new InputStreamReader(stream, UTF-8); catch (FileNotFoundException e) e.printStackTrace();
39、 catch (UnsupportedEncodingException e) e.printStackTrace();try while (data = br.readLine() != null) BaseUtil.LogI(0011: + data.length();if (data.length() 6) if (data.charAt(3) = : & data.charAt(6) = .) / 從歌詞正文開始data = data.replace(, );data = data.replace(, );data = data.replace(., :);BaseUtil.LogI(
40、data + data);String lrc = data.split();String lrcContent = null;if (lrc.length = 2) lrcContent = lrclrc.length - 1;/ 歌詞 else lrcContent = ;String lrcTime = lrc0.split(:);int m = Integer.parseInt(lrcTime0);/ 分int s = Integer.parseInt(lrcTime1);/ 秒int ms = Integer.parseInt(lrcTime2);/ 毫秒int begintime
41、= (m * 60 + s) * 1000 + ms;/ 轉換成毫秒LRCbean lrcbean = new LRCbean();lrcbean.setBeginTime(begintime);/ 設置歌詞開始時間lrcbean.setLrcBody(lrcContent);/ 設置歌詞的主體lrc_read.put(begintime, lrcbean);stream.close(); catch (IOException e) e.printStackTrace();/ 計算每句歌詞需要的時間lrc_map.clear();data = ;Iterator iterator = lrc_
42、read.keySet().iterator();LRCbean oldval = null;int i = 0;while (iterator.hasNext() Object ob = iterator.next();LRCbean val = lrc_read.get(ob);if (oldval = null) oldval = val; else LRCbean item1 = new LRCbean();item1 = oldval;item1.setLineTime(val.getBeginTime() - oldval.getBeginTime();lrc_map.put(ne
43、w Integer(i), item1);i+;oldval = val;5.2.5 在線音樂界面實現此設計是在線播放音樂時只要緩沖部分音樂即可播放。具體的實現效果如圖5-8所示。 圖5-8 在線音樂播放界面5.2.6 最近播放界面實現系統每次播放一個歌曲,系統都會自動把本次播放記錄添加到SQLite數據庫表中,以便跟蹤用戶的播放記錄,而在最近播放功能模塊里,系統則是從SQLite數據庫表中提出用戶最近的播放記錄,根據過去所有記錄到的播放信息,乳溝按時間倒序排序即可得到最近用戶播放的音樂曲目信息。提取相關信息后,通過ListView組件把最近播放的曲目信息顯示出來,這樣就完成了最近播放界面的功
44、能。具體的實現效果如圖5-9所示。圖5-9 最近播放界面6 系統測試6.1 測試的重要性在發布新產品之前做好測試,提高軟件產品質量,減少漏洞,是預防遭受木馬攻擊和提高性能的根本途徑,零缺陷的軟件是不存在的。但通過必要的測試,軟件缺陷可減少75%,降低軟件使用風險。有關機構研究表明,國外軟件開發廠商約40%的工作量要花在測試上,對一些可靠性、安全性要求較高的軟件更是不惜人力物力。以微軟為例,早在1999年發布Windows2000操作系統時,微軟就投入了250多個項目經理、1700多個開發人員,內部測試人員則達到3200人,比前兩者的之和還要多。而這對非科班出身的Google來說,遠不能及。 由
45、此可看出對軟件進行測試是非常必要的。6.2 測試的目的 一個程序并不可能達到十分完美,難免存在一些錯誤,就是我們常說的bug。如果不能及時將其找出并修改,會造成系統崩潰并造成不必要的損失。通過軟件測試,盡可能多的找出系統中的錯誤,以便于及時修改。6.3 系統測試用例和總結通過測試系統的本地自定義列表添加歌曲是否正常。進入默認列表,選擇一個歌曲長按,系統彈出上下文菜單,選擇“添加到列表”,這里我們選擇“我的列表1”,點擊“確定”按鈕完成添加,返回到我的列表1,查看剛添加的歌曲是否已經存在于該列表中,結果如圖6-1 至6-3所示。 6-1 測試用例圖 任何歌曲長按鼠標左鍵,會彈出上述對話框,點擊添
46、加到列表。會出現一個選擇對話框,如圖6-2所示。 圖6-2 測試用例圖 選擇任何一個列表,單擊確定,查看歌曲是否導入被點擊列表,如圖6-3所示。圖6-3 測試用例圖可以看到剛才添加的歌曲已經在列表中,由此可見程序是沒問題的;經過上述測試,本系統各項操作中均可按照預期的設計運行,實現了系統的開發目標與要求。重要的是,還要從最終用戶的角度進行安全性和可用性測試。完成了系統的基本功能。實施開發計劃管理,質量計劃管理,進行產品的設計和實現;進行多層次的測試和驗證,交付安裝時提供義務期限;提供維護支持、配置管理、文檔控制、質量記錄、培訓人員和其它支持活動等; 總之,加強質量管理,針對所有可能影響軟件質量
47、的各個因素都要采取有力措施,作出加強質量管理和控制的決定。與質量有關的人員都要規定其職責和權限,使責任落實到人,保證產品質量真正得到控制。總 結本文主要是對Android平臺音樂播放器的分析設計,主要實現了音樂的播放、暫停、上一曲、下一曲、音樂列表、聲音控制、退出菜單、播放模式等功能。在本文中第一章簡要的介紹了選題依據背景、研究現狀等;第二章中講述了Android的開發基礎;第三章進行了詳盡的系統需求分析;第四章進行詳細設計以及編碼實現工作;最后的第五章進行了軟件的測試工作,完善軟件。本設計的音樂播放器軟件能夠穩定運行,體積小且反映靈敏,但還是有幾點不足的地方,例如最近播放列表無法排序、代碼編
48、寫冗余重復率高、圖片素材布局不太美觀等等。在以后我會改進軟件的不足,以更優的編碼水平,更高超的布局思維模型,并且學習更多新的知識重構這款軟件。這款播放器軟件還是比較好的,適用于低端智能手機市場,有良好的用戶體驗和反應速度。相信隨著智能手機在發展中國家的普及,它們市場上會擁有龐大的用戶群。致 謝在本次畢業論文過程中,得到了學校朱曉軍老師,上海基地胡莉,郭丹老師的指導與支持。在此特別感謝三位老師的大力幫助。三位老師的悉心指導和諄諄教誨,在總體結構、功能的把握上給予了非常大的幫助,同時給予我們提供了非常優越、寬松的設計環境,并對我在編程設計、論文格式結構等細節工作上給予了耐心的指導,對于我順利完成這
49、次畢業論文起到了關鍵性的作用。通過開發本系統,我較全面的掌握了android的基本知識和編程技巧,并在開發過程中我的java開發能力得到了進一步的提高。在開發過程中我學到了一些經驗:系統需求分析的是否合理將決定著的系統開發成功與否,一份合理的需求分析將是成功開發主要因素。我們在著手開發之前不要急于編程,先應有較長的時間去把分析做好,寫出相關的開發文檔等。然后再開始編寫程序代碼,這樣做到每寫一步代碼就會心底有數,有條不紊。當然也有些還需要繼續深入地方如:最近播放存儲不上、圖片素材布局不太美觀的問題等等。參考文獻1 宋小倩,周東升. HYPERLINK /kcms/detail/detail.as
50、px?filename=RJDK201102042&dbcode=CJFQ&dbname=CJFD2011&v=MTgyODFyQ1VSTDZmWk9kdEZpRG1VYi9PTnlmUFpiRzRIOURNclk5QlpvUitDMzg0emg0WG5EMExUZzJYMmhzeEY= t _blank 基于Android平臺的應用開發研究J. 軟件導刊. 2011(02)2 季光獻. HYPERLINK /kcms/detail/detail.aspx?filename=RJZZ201110018&dbcode=CJFQ&dbname=CJFD2011&v=MTYyNTZVYi9PTnlm
51、UmRMRzRIOUROcjQ5RWJJUitDMzg0emg0WG5EMExUZzJYMmhzeEZyQ1VSTDZmWk9kdEZpRG0= t _blank Android系統環境下應用前景與開發研究J. 軟件. 2011(10)3 公磊,周聰;基于Android的移動終端應用程序開發與研究J;計算機與現代化; 2008(8);85-894 Shane Conder;Android Wireless Application DevelopmentM;Boston:Addison-Wesley,2010 5 Haseman Chris;Android EssentialsM;Apress:
52、the Experts Voice;20086 楊豐盛;Android應用開發揭秘M;北京:機械工業出版社;20107 張利國,代聞,龔海平;Android移動開發案例詳解M;北京:人民郵電出版社;20108 葉達峰;Eclipse編程技術與實例M;北京:人民郵電出版社;20069 Shane Condor,Lauren Decry;Android移動應用開發從入門到精通M;北京:人民郵電出版社;201010 馬越;Android的架構與應用D;北京:中國地質大學(北京)碩士學位論文;2008:9-2011 Android Application FundamentalsA. Proceedi
53、ngs of 2011 IEEE International Conference on Intelligent Computing and Intelligent Systems(ICIS 2011) vol.02C. 201112 Patrick P.F. Chan,Lucas C.K. Hui,S.M. Yiu. HYPERLINK /kcms/detail/detail.aspx?filename=IEEE201109001146&dbcode=IPFD&dbname=IPFD2011&v=MjU0NDIyVXFtQkFEN3VRS3JpZlp1SnZGU2ptVTc3SklWMGNM
54、Q2pPYTdHNEg5RE1wbzlGWmVvTENoTkl5QlVTNnpkNVBu t _blank A Privilege Escalation Vulnerability Checking System for Android ApplicationsA. Proceedings of 2011 IEEE 13th International Conference on Communication Technology(ICCT 2011)C. 201113 M Sharpe. HYPERLINK /Detail/SJWCTEMP_U/SJWC13010800744570 t _bl
55、ank The 21st century analyst: developments in data analysis and visualisation.J.Journal of environmental monitoring : JEM,2002,4(3) 14 Joo. HYPERLINK /Detail/SJWCTEMP_U/SJWC13010800722058 t _blank Encouraging customers to pay less for mobile telecommunication services.J.The Journal of Database Marke
56、ting,2002,9(4)外文及翻譯Application Fundamentals Android applications are written in the Java programming language. The compiled Java code along with any data and resource files required by the application is bundled by the aapt tool into an Android package, an archive file marked by an .apk suffix. This
57、 file is the vehicle for distributing the application and installing it on mobile devices; its the file users download to their devices. All the code in a single .apk file is considered to be one application.In many ways, each Android application lives in its own world:1. By default, every applicati
58、on runs in its own Linux process. Android starts the process when any of the applications code needs to be executed, and shuts down the process when its no longer needed and system resources are required by other applications.2. Each process has its own virtual machine (VM), so application code runs
59、 in isolation from the code of all other applications.3. By default, each application is assigned a unique Linux user ID. Permissions are set so that the applications files are visible only to that user and only to the application itself although there are ways to export them to other applications a
60、s well.Its possible to arrange for two applications to share the same user ID, in which case they will be able to see each others files. To conserve system resources, applications with the same ID can also arrange to run in the same Linux process, sharing the same VM.Application ComponentsA central
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 統編高中語文教材性別平等研究-以選文性別形象為例
- 深度教學理念視域下高中古代論說文閱讀教學研究
- 含酰亞胺環鄰苯二甲腈樹脂的合成及膠粘劑的研究
- 醫務管理培訓課件
- 幼兒園健康安全小知識
- 刀刺傷護理措施及診斷
- 外傷處理健康教育
- 頸椎X線攝影技術課件
- 領域政策解讀課件
- 《社會財務共享服務實務》課件-財務共享服務產生與發展
- DGJ08-81-2015 現有建筑抗震鑒定與加固規程
- 房屋租賃合同范本15篇
- 2025至2030年中國飛行控制器行業市場供需態勢及未來趨勢研判報告
- 2025年汽車維修工職業資格考試試卷及答案
- 安全B證題庫-安全生產知識考試用書
- 2025至2030年中國錦氨綸汗布市場分析及競爭策略研究報告
- 2024年江蘇地質局所屬事業單位招聘考試真題
- 2025年湖北省中考物理試題(含答案及解析)
- 幾何畫板 培訓課件
- 2025年中小學暑假安全教育主題家長會 課件
- 經皮肺動脈瓣置換術(TPVRPPVI)
評論
0/150
提交評論