




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
大連東軟信息學(xué)院本科畢業(yè)設(shè)計(論文)論文題目論文題目:基于Android的吉他演奏程序設(shè)計與實現(xiàn)系所:電子工程系專業(yè):電子信息工程(嵌入式系統(tǒng)工程方向)學(xué)生姓名:學(xué)生學(xué)號:指導(dǎo)教師:導(dǎo)師職稱:講師完成日期:2014年5月2日大連東軟信息學(xué)院DalianNeusoftUniversityofInformation大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)摘要IV基于Android的吉他演奏程序設(shè)計與實現(xiàn)摘要隨著移動互聯(lián)網(wǎng)的不斷發(fā)展壯大,已經(jīng)深入到我們的每一個生活細(xì)節(jié)?!兜?2次中國互聯(lián)網(wǎng)絡(luò)發(fā)展?fàn)顩r統(tǒng)計報告》顯示,截至2013年6月底,我國手機(jī)網(wǎng)民規(guī)模達(dá)4.64億,較2012年底增加4379萬人,網(wǎng)民中使用手機(jī)上網(wǎng)的人群占比提升至78.5%。在2013年上半年的新增網(wǎng)民中70.0%使用手機(jī)上網(wǎng),手機(jī)成新增網(wǎng)民第一來源。就是在這樣一個大背景下,讓我想到了做一款手機(jī)軟件,來滿足人們?nèi)粘I畹男枰???v觀現(xiàn)在市場上的各大手機(jī)品牌,發(fā)現(xiàn)大多都是使用的android系統(tǒng),能有自己獨立系統(tǒng)的還是很少的。但是在眾多android軟件中我們發(fā)現(xiàn)更多的是游戲軟件,或者一些生活常用應(yīng)用,比如視頻、新聞、閱讀等等。音樂方面的應(yīng)用偏少,即便有也是音樂播放器的應(yīng)用。因為作者本人十分熱愛音樂,愛玩樂器,我就這一點出發(fā),設(shè)計了一款模擬吉他撥弦發(fā)聲的軟件,希望可以在大家閑暇之時,給大家?guī)硇┰S樂趣。此論文主要論述了本次android手機(jī)軟件的設(shè)計背景、關(guān)鍵技術(shù)、軟件設(shè)計、系統(tǒng)分析等主要設(shè)計的相關(guān)問題。本系統(tǒng)以Android操作系統(tǒng)作為開發(fā)平臺,Eclipse作為開發(fā)環(huán)境。音樂是我們生活中不可缺少的必要元素,我本次設(shè)計的這個android軟件就是一個模擬吉他和弦彈奏的音樂娛樂軟件,此軟件界面設(shè)計簡單明了,就是不懂音樂的人也可以比較簡單的彈出節(jié)奏聲音。關(guān)鍵詞:android,吉他,手機(jī)大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)AbstractDesignandImplementationofGuitarProgramBasedonAndroidAbstractWiththecontinuousdevelopmentandexpansionofthemobileInternet,hasgonedeepintoeverydetailofourlives."The32ndChinaInternetDevelopmentStatisticsReport"showsthatasoftheendofJune2013,thescaleofChina'smobilephoneusersreached464million,representinganincreaseof4,379peoplebytheendof2012,theuseofmobileInternetuserstoraisetheproportionofthepopulationto78.5%.InthenewInternetusersin2013to70.0%inthefirsthalfoftheuseofmobileInternet,mobilephoneuserstoaddthefirstsource.Itisinsuchabackground,letmethinkofdoingacellphonesoftware,tomeettheneedsofdailylife.Throughoutnowthemajormobilephonebrandsinthemarket,foundmostlyandroidsystem,tohavetheirownindependentsystemsorsmall.However,inmanyandroidsoftware,wefoundmoreofagamesoftware,orsomelivingcommonapplications,suchasvideo,news,reading,andsoon.Applicationmusicallessthannormal,evenifthereisalsoamusicplayerapplication.Becausetheauthorisverylovingmusic,playingmusicalinstruments,andIonthispointofview,thedesignofapluckedguitarsoundsimulationsoftware,hopingtosparetimewheneveryone,foreveryonetobringabitoffun.Thispapermainlydiscussesthisandroidphonesoftwaredesignbackground,thekeyissuesrelatedtotechnology,softwaredesign,systemanalysis,themaindesign.ThesystemAndroidoperatingsystemasadevelopmentplatform,Eclipseasadevelopmentenvironment.MusicisourlifeindispensableessentialelementsofthisdesignIhavethisandroidsoftwareisasimulationofaguitarchordmusicalentertainmentsoftware,thesoftwareinterfaceisdesignedtobesimpleandclear,isthatpeoplecannotunderstandthemusicrelativelysimplepoprhythmsound.Keywords:Android,Guitar,Mobile大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)目錄目錄TOC\o"1-3"\u摘要 IAbstract II第1章緒論 11.1課題研究背景與意義 11.2課題研究內(nèi)容與依據(jù) 11.3課題研究現(xiàn)狀 2第2章關(guān)鍵技術(shù)介紹 32.1Library和AndroidRuntime 32.2SoundPool類 32.3SQLite 4第3章系統(tǒng)需求分析 63.1系統(tǒng)設(shè)計目標(biāo) 63.2系統(tǒng)功能需求 63.3系統(tǒng)非功能需求 73.4系統(tǒng)開發(fā)環(huán)境 73.5系統(tǒng)可行性分析 83.5.1技術(shù)可行性 83.5.2經(jīng)濟(jì)可行性 8第4章系統(tǒng)設(shè)計 94.1系統(tǒng)設(shè)計指導(dǎo)原則 94.2體系結(jié)構(gòu)設(shè)計 94.3功能設(shè)計 114.3.1整體功能結(jié)構(gòu) 114.3.2功能模塊設(shè)計 124.4界面設(shè)計 13第5章系統(tǒng)實現(xiàn) 165.1環(huán)境配置 165.2功能實現(xiàn) 175.2.1主流程圖實現(xiàn) 175.2.2登錄頁面實現(xiàn) 185.2.3吉他和弦轉(zhuǎn)換功能實現(xiàn) 185.2.4吉他琴弦撥動功能實現(xiàn) 19第6章系統(tǒng)測試 216.1測試概述 216.1.1登錄頁面單元測試 216.1.2吉他功能頁面單元測試 226.1.3各功能頁面測試意義 226.2測試用例 22第7章結(jié)論 26參考文獻(xiàn) 27致謝 28大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)-第1章緒論1.1課題研究背景與意義隨著移動互聯(lián)網(wǎng)絡(luò)的迅速發(fā)展,智能手機(jī)不斷的改革變新,尤其市面上現(xiàn)在主流的兩個手機(jī)操作系統(tǒng),ios和android不斷的發(fā)展和壯大,但智能手機(jī)應(yīng)用這塊還是比較匱乏的。在需求越來越大的市場驅(qū)使之下,手機(jī)運營商、手機(jī)廠商、開發(fā)者和消費者給了android很大的動力和信心。谷歌移動平臺主管表示,正在與軟件開發(fā)合作單位進(jìn)行密切的商討。幾年前谷歌組建了“開放手機(jī)聯(lián)盟”,其成員超過30家。谷歌也在繼續(xù)努力,讓這些服務(wù)變得更加的好。平日里我們手機(jī)軟件上裝的應(yīng)用更多的是游戲或者是一些生活必備的程序,我很少有見到身邊朋友手機(jī)里有關(guān)于樂器應(yīng)用的相關(guān)軟件,而身邊朋友大都很喜歡音樂,所以我就上網(wǎng)查詢了相關(guān)軟件。發(fā)現(xiàn)應(yīng)用雖說有,但相比游戲類應(yīng)用少了不是一點半點,而且我下載了不少相關(guān)的發(fā)現(xiàn)都有很多不足,有的干脆就是騙人的,下載完根本用不了。再加上我本人對音樂非常熱愛,于是我就有了設(shè)計一款吉他軟件的想法。讓會吉他不會吉他的朋友都可以體會到手機(jī)吉他給我們帶來的不一樣的體驗。更希望能讓一些從來沒碰過吉他的人,在體驗過這個模擬吉他的應(yīng)用后能對吉他產(chǎn)生濃厚興趣,能去嘗試學(xué)會真正的吉他,藝多不壓身,在空余休閑的時間里用吉他放松自己的身心。1.2課題研究內(nèi)容與依據(jù)課題研究的內(nèi)容:本系統(tǒng)設(shè)計的是一個音樂娛樂軟件。首先進(jìn)入應(yīng)用前會有一個登陸界面,需要輸入正確用戶名和密碼方可進(jìn)入應(yīng)用,此目的在防止除了手機(jī)主人意外的人私自使用應(yīng)用。應(yīng)用界面仿照吉他琴箱的外觀圖片,上面有六根琴弦,在手機(jī)屏幕最上方有吉他常用的五個和弦,用戶可以隨意切換。本設(shè)計是一個可以模擬吉他彈奏的軟件,界面盡可能簡單明了,讓不了解吉他的人也可以很容易的上手使用。課題研究的依據(jù):在現(xiàn)在越來越快的生活節(jié)奏中,人們平日的生活壓力也越來越大。如何在工作勞累了一天之后快速放松自己,成了一個很有必要的事情。而音樂恰恰能起到一個緩解壓力與疲勞的好工具。據(jù)我上網(wǎng)了解,現(xiàn)在喜歡音樂的人也越來越多了,音樂不再僅僅是簡單的旋律了,它的功能越來越多,不管你是開心還是悲傷都可以用音樂來調(diào)節(jié)。而現(xiàn)在很多人已經(jīng)不滿足只是聽音樂了,更想要玩音樂,但是不是每個人都回去買樂器。而我自己本人是一個十分熱愛玩音樂的人,對挺多樂器也都有所了解,于是我想到設(shè)計這一款吉他伴奏軟件。希望這樣一款軟件可以在人們的生活中隨時隨的地放松自己,讓自己更加熱愛音樂。1.3課題研究現(xiàn)狀A(yù)ndroid的應(yīng)用目前還是很多的,但大部分以游戲為主,對于生活中的類型應(yīng)用還是比較少的。本人在設(shè)計此軟件之初,嘗試著在各大搜索網(wǎng)站上搜索“音樂軟件”,出來的結(jié)果基本上都是音樂播放器,或者是音樂制作軟件。去安智市場上搜索也發(fā)現(xiàn)這類模擬樂器的娛樂休閑軟件少之又少。當(dāng)然這方面的軟件并非一個都沒有,偶爾會有一些這種模擬樂器使用的應(yīng)用。比如說像什么鋼琴、架子鼓什么的。作者本人也下載使用過一些,通過了解,使用測試過后發(fā)現(xiàn)他們其中還是有很多的弊端的,比如說樂器發(fā)出的聲音不夠準(zhǔn)確,不夠協(xié)調(diào),而且大多是以鋼琴的應(yīng)用居多,吉他的音樂應(yīng)用還是有限。另外我也去找過ios的此類相關(guān)app,發(fā)現(xiàn)也是很少,有些做的不錯的,但是基本都是需要收費的,而我想很多人都不會去花這些錢,所以我覺得此類應(yīng)用的設(shè)計非常有必要。通過對國內(nèi)的幾家比較大的android資源供應(yīng)網(wǎng)站可以看出來,android這塊應(yīng)用類型還是比較匱乏的。可見這一塊的市場還遠(yuǎn)遠(yuǎn)沒有發(fā)展起來,還有很大的空間等著我們所有人去開發(fā)。大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)第2章關(guān)鍵技術(shù)介紹2.1Library和AndroidRuntimeLibrary(函數(shù)庫)和AndroidRuntime(Andriod運行時庫):Library(函數(shù)庫)的組成基本上都是開放源碼,其中有C/C++庫的集合,Android各組件的編寫就靠他了。由Android的應(yīng)用程序框架(ApplicationFramework)把此功能提供開發(fā)者使用。比方說準(zhǔn)C函數(shù)庫Libc、OpenSSL、SQLite等;媒體庫基于PacketVideo的OpenCORE,這些庫支持播放和錄制許多流行的音頻和視頻格式,和靜態(tài)圖像文件,包含MPEG4、H.264、MP3、AAC、AMR、JPG、PNG;界面管理,管理訪問顯示子系統(tǒng)和無縫組合多個應(yīng)用程序的二維和三維圖像層;LibWebCore,新式的Web瀏覽器引擎,驅(qū)動Android瀏覽器和內(nèi)嵌的Web視圖;SGL,基本的2D圖形引擎。AndroidRuntime(Android運行時庫)是和Library(函數(shù)庫)并行的,在此提供的Android特有的Java內(nèi)核函數(shù)庫與可轉(zhuǎn)換的Java運行碼Bytecode,為Android專屬的DalvikExecutable(.dex)文件格式的dalvik虛擬機(jī),可以通過Java語言編寫Android應(yīng)用程序,并在Android平臺上同時運行多個Java應(yīng)用程序。Dalvik虛擬機(jī)依賴于Linux內(nèi)核提供的基本功能,如線程和底層內(nèi)存管理。Dalvik虛擬機(jī)可執(zhí)行文件格式是.dex,dex格式是專為Dalvik設(shè)計的一種壓縮格式,適合內(nèi)存和處理器速度有限的系統(tǒng)。大多數(shù)虛擬機(jī)包括JVM都是基于棧的,而Dalvik虛擬機(jī)基于寄存器的。2.2SoundPool類SoundPool類是Android用于管理和播放應(yīng)用程序的音頻資源的類。一個SoundPool對象可以看作是一個可以從APK中導(dǎo)入資源或者從文件系統(tǒng)中載入文件的樣本集合。它利用MediaPlayer服務(wù)為音頻解碼為一個原始16位PCM流。這個特性使得應(yīng)用程序可以進(jìn)行流壓縮,而無須忍受在播放音頻時解壓所帶來的CPU負(fù)載和時延。此外對于低延遲播放,SoundPool還可以管理多個音頻流。當(dāng)SoundPool對象構(gòu)造時,maxStreams參數(shù)的設(shè)置表示的是在單一的SoundPool中,同一時間所能播放流的最大數(shù)量。利用SoundPool可以跟蹤活躍的流的數(shù)量。如果其數(shù)量超過流的最大數(shù)目,SoundPool會基于優(yōu)先級自動停止先前播放的流。限制流的最大數(shù)目,有助于減輕CPU的負(fù)荷,減少音頻混合對視覺和UI性能的影響。聲音可以通過設(shè)置一個非零的循環(huán)價值循環(huán)。如果值為-1將導(dǎo)致聲音永遠(yuǎn)循環(huán)。在這種情況下,應(yīng)用程序必須明確地調(diào)用stop()函數(shù),以停止聲音。其他非零值將導(dǎo)致聲音按指定數(shù)量的時間重復(fù)。在SoundPool中,播放速率也可以改變。1.0的播放率可以使聲音按照其原始頻率(如果必要的話,將重新采樣硬件輸出頻率)。而2.0的播放速率,可以使聲音按照其原始頻率的兩倍播放。如果為0.5的播放率,則播放速率是原始頻率的一半。播放速率的取值范圍是0.5至2.0。我們可以調(diào)用SoundPool的構(gòu)造函數(shù)publicSoundPool(intmaxStreams,intstreamType,intsrcQuality)來初始化SoundPool對象。其中參數(shù)說明如下:maxStreams:指定支持多少個聲音,SoundPool對象中允許同時存在的最大流的數(shù)量。streamType:制定聲音類型,流類型可以分為STREAM_VOICE_CALL,STREAM_SYSTEM,STREAM_RING,STREAM_MUSIC和STREAM_ALARM四種類型。在AudioManager中定義。srcQuality:指定聲音品質(zhì)(采樣率變換質(zhì)量)。目前沒有用到,可以設(shè)為0。調(diào)用load方法載入聲音資源,SoundPool提供了4個Load方法,比較常用的是以下兩個:Publicintload(Contextcontext,intresId,intpriority):從resId所對應(yīng)的資源加載聲音。Publicintload(Stringpath,intpriority):從path對應(yīng)的文件中加載聲音。上面兩個方法中都有一個priority參數(shù),該參數(shù)目前還沒有任何作用,Android建議將該參數(shù)設(shè)置為1,保持和未來的兼容性。同時,這兩個方法加載聲音之后,都會返回該聲音的ID,以后程序就可以通過該聲音的ID來播放指定聲音。2.3SQLite在確定是否在應(yīng)用程序中使用SQLite之前,應(yīng)該考慮以下幾種情況:(1)目前沒有可用于SQLite的網(wǎng)絡(luò)服務(wù)器。從應(yīng)用程序運行位于其他計算機(jī)上的SQLite的惟一方法是從網(wǎng)絡(luò)共享運行。這樣會導(dǎo)致一些問題,像UNIX?和Windows?網(wǎng)絡(luò)共享都存在文件鎖定問題。還有由于與訪問網(wǎng)絡(luò)共享相關(guān)的延遲而帶來的性能下降問題。(2)SQLite只提供數(shù)據(jù)庫級的鎖定。雖然有一些增加并發(fā)的技巧,但是,如果應(yīng)用程序需要的是表級別或行級別的鎖定,那么DBMS(數(shù)據(jù)庫管理系統(tǒng))能夠更好地滿足您的需求。正如前面提到的,SQLite可以支持每天大約100,00次點擊率的Web站點——并且,在某些情況下,可以處理10倍于此的通信量。對于具有高通信量或需要支持龐大瀏覽人數(shù)的Web站點來說,應(yīng)該考慮使用DBMS(數(shù)據(jù)庫管理系統(tǒng))。SQLite支持多數(shù)(但不是全部)的SQL92標(biāo)準(zhǔn)。不受支持的一些功能包括完全觸發(fā)器支持和可寫視圖。如果您感到其中的任何限制會影響您的應(yīng)用程序,那么您應(yīng)該考慮使用完善的DBMS(數(shù)據(jù)庫管理系統(tǒng))。如果您可以解除這些限制問題,并且對快速靈活的嵌入式開源數(shù)據(jù)庫引擎很感興趣,則應(yīng)重點考慮使用SQLite。一些能夠真正表現(xiàn)SQLite優(yōu)越性能的領(lǐng)域是Web站點,可以使用SQLite管理應(yīng)用程序數(shù)據(jù)、快速應(yīng)用程序原型制造和培訓(xùn)工具。嵌入式數(shù)據(jù)庫對于加快應(yīng)用程序開發(fā)也很重要,尤其是在用于數(shù)據(jù)庫抽象層(例如PEAR::DB或ezSQL)時。最后,SQLite正在積極開發(fā)中,未來一定會有新的功能,會對開源社區(qū)更有用。 第3章系統(tǒng)需求分析3.1系統(tǒng)設(shè)計目標(biāo)本系統(tǒng)是一個音樂吉他應(yīng)用程序,再次我設(shè)計了一下幾個系統(tǒng)目標(biāo):(1)首先在手機(jī)上點擊應(yīng)用圖標(biāo),然后首先進(jìn)入吉他軟件的登陸界面。此界面會顯示用戶的登陸名和登陸密碼,用戶需要輸入登錄名和密碼,只有登錄名和密碼都正確才能進(jìn)入應(yīng)用的使,如果輸入錯誤,則不能進(jìn)入程序。(2)進(jìn)入吉他應(yīng)用界面以后,會看到一個吉他琴箱的局部圖片,上面有6根琴弦,從右到左一次是一弦、二弦、三弦、四弦、五弦和六弦,一弦最細(xì),發(fā)出的聲音最高亮,然后琴弦依此變粗,六弦最粗,發(fā)出的聲音也最低沉。用戶通過點擊琴弦,就可以聽到聲音了。琴弦可以隨意無規(guī)律點擊,但是轉(zhuǎn)換到下一根琴弦必須要抬起手指,不能手指不放一路滑下來。(3)在進(jìn)入吉他應(yīng)用界面以后,可以看到屏幕最上方有一行字母,分別是Am,C,Em,F(xiàn),G,這些字母是吉他的5個最常用到的和弦,不同的和弦所對應(yīng)的吉他的6根琴弦的聲音是不一樣的,點擊某個和弦之后,它的背景顏色會加深,示意用戶當(dāng)前和弦是什么。這樣用戶就可以根據(jù)書上或者網(wǎng)絡(luò)上的吉他譜子來選擇吉他和弦,然后撥動相應(yīng)的吉他琴弦來演奏某一首歌曲了。也可以自己隨意即興的彈奏,或者是給歌曲伴奏都行。這就是本系統(tǒng)的設(shè)計目標(biāo)。3.2系統(tǒng)功能需求(1)用戶登錄模塊用戶通過點擊程序圖標(biāo),進(jìn)入登陸模塊,系統(tǒng)要求用戶輸入登錄名稱和登陸密碼,兩者只要一個出現(xiàn)錯誤就不可以進(jìn)入程序,否則將不能進(jìn)入程序。此模塊的意義在于讓不是本人的用戶無法訪問該應(yīng)用,起到一個保護(hù)作用。(2)琴弦控制模塊用戶輸入正確的用戶名和密碼后進(jìn)入到程序,會在屏幕看到一個模擬吉他琴箱的局部圖片,上面有六根琴弦。用戶可以隨意觸碰任意的琴弦,就可以發(fā)出對應(yīng)琴弦的聲音。(3)和弦控制模塊在屏幕的最上端,用戶可以一次看到有Am,C,Em,F(xiàn),G五個吉他的常用和弦,每個和弦對應(yīng)的六根琴弦發(fā)聲都不一樣,用戶可以根據(jù)樂曲的需要不停的轉(zhuǎn)換所需要的和弦,這樣就可以為一首歌曲伴奏了。3.3系統(tǒng)非功能需求(1)性能因為本系統(tǒng)是基于吉他模擬來進(jìn)行開發(fā)的,所以對于操作人員要有基本的樂譜識別能力,和對吉他的基本操作能力。當(dāng)然這都不是絕對的說法,用戶也可以自娛自樂,隨意觸碰琴弦,隨機(jī)的變換節(jié)奏,也有可能會有不一樣的體驗哦。(2)成本本次設(shè)計是純軟件設(shè)計開發(fā),在有電腦和網(wǎng)絡(luò)的前提下,只需要去網(wǎng)站下載所需要的開發(fā)軟件,所以成本除了時間成本外基本是不需要任何額外的花銷了。3.4系統(tǒng)開發(fā)環(huán)境(1)EclipseEclipse是一個開放源代碼的、基于Java的可以擴(kuò)展的開發(fā)平臺。對于Eclipse來說,它只是一個框架和一組服務(wù),Eclipse自身帶有一個完整的插件集,包括Java開發(fā)工具(JavaDevelopmentTools,JDT)。最初主要用來Java語言開發(fā),但是目前亦有人通過插件使其作為其他計算機(jī)語言比如C++和Python的開發(fā)工具。Eclipse的本身只是一個框架服務(wù)平臺,但Eclipse在龐大插件的支持下,就比其他集成開發(fā)環(huán)境的軟件只有相對固定的功能要更具有優(yōu)勢,更有普遍性。Eclipse主要由三個項目構(gòu)成:Eclipse項目、Eclipse工具項目和Eclipse技術(shù)項目。EclipsePlatform、JDT、CDT和PDE.JDT支持Java開發(fā)、CDT支持C開發(fā)、PDE用來支持插件開發(fā),EclipsePlatform就是一個可擴(kuò)展的開源的集成開發(fā)環(huán)境,提供了一個通用的開發(fā)軟件平臺。EclipsePlatform的一大優(yōu)勢是:它不需要分辨一個工具的功能結(jié)束地點,和另一個工具的開始地點,因為EclipsePlatform是可以讓工具創(chuàng)造者獨立開發(fā)和與別人的工具兼容集成的。(2)ADTAndroid開發(fā)工具(ADT)是一個為EclipseIDE的,旨在為您提供一個強(qiáng)大的,集成的環(huán)境中構(gòu)建Android應(yīng)用程序的插件。ADT的擴(kuò)展Eclipse的功能,讓您快速建立新的Android項目,創(chuàng)建一個應(yīng)用程序的用戶界面,添加基于Android框架API的組件,使用AndroidSDK工具調(diào)試你的應(yīng)用程序,甚至出口簽署(或符號)。APK文件為了分發(fā)您的應(yīng)用程序。強(qiáng)烈建議在Eclipse開發(fā)與ADT是最快的方式上手。引導(dǎo)項目設(shè)置與提供,以及工具的集成,自定義的XML編輯器,調(diào)試輸出窗格,ADT的為您提供了令人難以置信的提高,在開發(fā)Android應(yīng)用程序。ADT是一個EclipseIDE的插件。才可以安裝或使用ADT,你必須有一個兼容版本的Eclipse開發(fā)計算機(jī)上安裝。檢查系統(tǒng)需求的Eclipse版本是兼容的AndroidSDK的文檔。3.5系統(tǒng)可行性分析3.5.1技術(shù)可行性本系統(tǒng)是在android上進(jìn)行開發(fā)和研制的,采用java作為基本開發(fā)語言。數(shù)據(jù)庫采用SQLite基本數(shù)據(jù)庫,配置文件采用標(biāo)準(zhǔn)的xml配置文件進(jìn)行配置開發(fā),清楚,簡單,容易維護(hù),可擴(kuò)展性良好,在android的平臺上有較不錯的適配性能。3.5.2經(jīng)濟(jì)可行性縱觀目前國內(nèi)的移動平臺市場,采用android最為手機(jī)操作系統(tǒng)的廠家非常的多,一些國際知名的品牌手機(jī),都采用android作為手機(jī)的操作系統(tǒng),例如三星,多普達(dá),摩托羅拉,就連諾基亞目前也有了android作為操作系統(tǒng)的手機(jī),可見android的份額是可想而知的。Android這么廣闊的被應(yīng)用還有個優(yōu)點就是開放性非常的棒,所有各個廠家可以根據(jù)自身的特性來打造自己想要的個性。 以上這些足已看出android操作系統(tǒng)的經(jīng)濟(jì)價值和市場的發(fā)展性。 大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)第4章系統(tǒng)設(shè)計4.1系統(tǒng)設(shè)計指導(dǎo)原則(1)先進(jìn)性利用現(xiàn)有的主流語言開發(fā),Google之所有選擇Java作為應(yīng)用程序開發(fā)語言,主要考慮的一點是目前Java語言的學(xué)習(xí)者越來越多,就我身邊的很多人就可以看出,本來是信管專業(yè)都跑去學(xué)習(xí)Java了,可見Java開發(fā)者多。由于開發(fā)人員多了,再加上android的開源性,只要你想寫誰都可以寫程序,直接上傳網(wǎng)絡(luò),所以應(yīng)用程序開發(fā)速度非??臁_@樣就使得android有一個非常好的競爭環(huán)境,這就使得開發(fā)人員、Android應(yīng)用提供商不得不將將更多的精力放在用戶體驗以及內(nèi)容提供方面,來更好的去追求客戶的使用,而不是將時間耗在如何去實現(xiàn)方面。(2)可靠性及安全性此應(yīng)用軟件采用android系統(tǒng)為基礎(chǔ)進(jìn)行開發(fā)??v觀現(xiàn)在市場上流行的手機(jī)來開,大部分都是android手機(jī)?,F(xiàn)在的系統(tǒng)越做越大,隨之而來的系統(tǒng)的可靠性和安全性就會越來越低。Android雖然是在Linuxkernel之上運行的,但實現(xiàn)了包括安全、程序管理、驅(qū)動程序模型在內(nèi)的多種模塊。再從進(jìn)程問題通信機(jī)制來說,binder類通過守護(hù)進(jìn)程ServiceManager管理系統(tǒng)中的服務(wù),負(fù)責(zé)進(jìn)程之間的數(shù)據(jù)交換。Android在管理程序端和用戶端是分開的,這就保障了數(shù)據(jù)庫的可靠性和安全性。在上傳文件過程中密鑰都是隨機(jī)產(chǎn)生的,有效保護(hù)了數(shù)據(jù)存儲的安全性。4.2體系結(jié)構(gòu)設(shè)計Android的系統(tǒng)架構(gòu)采用了分層架構(gòu)的思想。從上層到底層共包括四層,分別是應(yīng)用程序程序?qū)?、?yīng)用框架層、系統(tǒng)庫和Android運行時和Linux內(nèi)核。如圖4.1所示。圖4.1系統(tǒng)結(jié)構(gòu)圖每層功能簡要介紹如下:(1)應(yīng)用程序?qū)舆@一層包括一些重要的程序包,比如電話,短信,瀏覽器,日歷,聯(lián)系人等等。當(dāng)然,開發(fā)設(shè)計人員也可以編寫自己的程序,這些程序互相不受干擾,和平共處。(2)應(yīng)用程序框架層這一層是Android應(yīng)用開發(fā)的基礎(chǔ),開發(fā)工作人員基本都是在這一層進(jìn)行設(shè)計。這一層主要包括活動管理器、視圖系統(tǒng)、窗口管理器、包管理器、電話管理器、資源管理器、位置管理器、通知管理器和XMPP服務(wù)等。在Android平臺上,核心應(yīng)用軟件用到的API框架可以被設(shè)計開發(fā)者完完全全的訪問。而且,每一個應(yīng)用軟件都可以發(fā)布自己的功能模塊,且這些發(fā)布樂的功能模塊也可以被其他應(yīng)用軟件使用。在這樣的制度下,平臺自身的種種應(yīng)用程序組件就可以便捷的被使用者更換。(3)系統(tǒng)庫和Android運行時系統(tǒng)庫包括九個子系統(tǒng),分別是圖層管理、媒體庫、SQLite、OpenGLEState、FreeType、WebKit、SGL、SSL和libc。Android運行時包含核心庫和Dalvik虛擬機(jī),核心庫既兼容了大部分Java語言所需要調(diào)用的功能函數(shù),又包括了Android的核心庫,比如android.os、、android.media等等。Dalvik虛擬機(jī)是一種基于寄存器的java虛擬機(jī),主要任務(wù)是對生命周期的管理、堆棧的管理、線程的管理、安全和異常的管理以及垃圾回收等。(4)Linux內(nèi)核Android最重要的系統(tǒng)服務(wù)主要靠Linux2.6內(nèi)核,如安全性、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)協(xié)議棧和驅(qū)動模型。Linux內(nèi)核也是作為硬件與軟件棧的抽象層。驅(qū)動:顯示驅(qū)動、攝像頭驅(qū)動、鍵盤驅(qū)動、WiFi驅(qū)動、Audio驅(qū)動、flash內(nèi)存驅(qū)動、Binder(IPC)驅(qū)動、電源管理等??偨Y(jié):Android的系統(tǒng)架構(gòu)采用分層架構(gòu)的思想,架構(gòu)清晰,層次分明,協(xié)同工作。Android的系統(tǒng)架構(gòu)不僅從宏觀上認(rèn)識了android系統(tǒng),同時,也給我們的學(xué)習(xí)與實踐指明了方向。若是從事android應(yīng)用開發(fā),那應(yīng)該研究android的應(yīng)用框架層和應(yīng)用程序?qū)?;若是從事android系統(tǒng)開發(fā),那應(yīng)該研究android的系統(tǒng)庫和android運行時;若是從事android驅(qū)動開發(fā),那應(yīng)該研究android的Linux內(nèi)核。總之,找準(zhǔn)切入點,實踐出真知。4.3功能設(shè)計4.3.1整體功能結(jié)構(gòu) 從系統(tǒng)設(shè)計的原則是把軟件需求轉(zhuǎn)換成用軟件系統(tǒng)表示的過程。通過對目標(biāo)系統(tǒng)的分析和研究,做出了android吉他的總體規(guī)劃,這是我們?nèi)骈_發(fā)系統(tǒng)的重要基礎(chǔ)。在對android單機(jī)應(yīng)用做出仔細(xì)研究基礎(chǔ)之上,制定出android吉他總體規(guī)劃。從數(shù)據(jù)流程圖出發(fā),對數(shù)據(jù)流程圖進(jìn)行分析,得出的層次化的模塊結(jié)構(gòu)圖.Android吉他項目手機(jī)軟件功能模塊圖如圖4.2所示。圖4.2功能設(shè)計4.3.2功能模塊設(shè)計(1)用戶登錄模塊如圖4.3所示。圖4.3登錄模塊(2)吉他琴弦撥動模塊如圖4.4所示。4.4琴弦撥動模塊(3)吉他和弦轉(zhuǎn)換模塊如圖4.5所示。圖4.5和弦轉(zhuǎn)換模塊4.4界面設(shè)計(1)登陸界面設(shè)計此界面較干凈簡潔,如圖4.6所示。圖4.6登陸界面(2)吉他樂器界面盡量設(shè)計的簡單明了易懂,讓不了解吉他的人也能根據(jù)界面看懂個大概。如圖4.7所示。圖4.7吉他樂器界面第5章系統(tǒng)實現(xiàn)5.1環(huán)境配置在程序開發(fā)的階段,首先我們要確定基于android吉他開發(fā)的項目工程名稱為GT,其次我們也得需要確定程序開發(fā)的系統(tǒng)版本號是多少,在這里我們就把開發(fā)版本號碼定為4.4。然后我們在根據(jù)模塊對程序進(jìn)行設(shè)計內(nèi)容。建立工程文件如下圖5.1所示。圖5.1工程文件為了能夠讓項目模塊化結(jié)構(gòu)化更加清晰,GT項目工程設(shè)置了不一樣包命名空間,它們分別是用來存放用戶登陸界面、對數(shù)據(jù)文件操作、吉他項目主界面功能實現(xiàn)代碼文件,源代碼文件的名稱以及說明如表5.1所示。表5.1工程文件用途說明包名稱說明備注com.example.gt項目主要的Activity無com.example.filemanager開源對文件的操作開源com.example.sql對數(shù)據(jù)庫的操作開源Android的資源文件保存在/res的子目錄中。其中/res/layout目錄中保存的是登陸界面和吉他操作界面的XML文件,/res/drawable-hdpi/目錄中保存的是圖像文件,/res/values目錄中保存的是自定義的文件顯示內(nèi)容和按鈕上文件,/res/raw目錄中存放的是項目中用到的所有聲音資源文件,包括吉他發(fā)聲的主要資源文件。所有的程序資源在應(yīng)用程序開發(fā)的時候都包含在這些文件當(dāng)中,供程序調(diào)用,具體每個資源文件的用途可以參考表5.2所示。表5.2資源文件用途資源目錄文件說明drawable*.png工程里所用的圖片layout*.xml頁面的布局文件valuesstrings.xml保存字符串的XML文件5.2功能實現(xiàn)5.2.1主流程圖實現(xiàn)主流程圖是從進(jìn)入程序到結(jié)束程序的一個全過程,點擊軟件后先輸入用戶名密碼,匹配成功后進(jìn)入到主程序界面進(jìn)行體驗,最后結(jié)束。具體如圖5.2所示。圖5.2主流程圖5.2.2登錄頁面實現(xiàn) 首先用戶在系統(tǒng)登錄頁面中選擇角色,輸入用戶名、密碼,確認(rèn)登陸。用戶成功登錄系統(tǒng)后,才能進(jìn)入吉他系統(tǒng)的功能頁面,當(dāng)然也可以就此退出。登錄流程圖如圖5.3。圖5.3登陸流程圖5.2.3吉他和弦轉(zhuǎn)換功能實現(xiàn)在成功登陸吉他項目之后,就跳轉(zhuǎn)到了吉他軟件的主界面了,在用戶使用過程中判斷使用者切換到了哪一個和弦,就轉(zhuǎn)換為對應(yīng)和弦。流程圖如下圖5.4所示。圖5.4和弦轉(zhuǎn)換流程圖5.2.4吉他琴弦撥動功能實現(xiàn)在使用過程中會判斷使用者是否有觸碰琴弦,觸動了哪個琴弦,哪個琴弦發(fā)出相應(yīng)的聲音,流程圖如下圖5.5所示。圖5.5撥弦功能流程圖大連東軟信息學(xué)院畢業(yè)設(shè)計(論文)第6章系統(tǒng)測試android吉他項目是在手機(jī)端進(jìn)行的系統(tǒng)開發(fā),所以本次主要針對手機(jī)系統(tǒng)版本,和手機(jī)型號來進(jìn)行android項目的功能測試。主要目的是為了能夠讓android吉他項目能夠在更多的操作系統(tǒng)版本上和更多手機(jī)型號上表現(xiàn)出良好的性能來進(jìn)行的。6.1測試概述白盒測試又叫做透明盒測試、結(jié)構(gòu)測試、基于代碼的測試或邏輯驅(qū)動測試。白盒測試是一種測試用例設(shè)計方法,其實被測試的軟件就叫做盒子,之所以叫白,是因為軟件是可視的,你明白軟件的構(gòu)成,框架,以及盒子里面是如何進(jìn)行運作的。用"白盒"法程序內(nèi)部的邏輯結(jié)構(gòu)都需要全面了解、需要測試所有邏輯路徑。"白盒"法是窮舉路徑測試。在使用這一方案時,檢測者必須從測試程序的邏輯著手,測試程序的內(nèi)部結(jié)構(gòu),然后得到測試結(jié)果。我們需要用什么方法來測試軟件呢?常用的軟件測試方法有兩大類:一種是靜態(tài)測試方法,還有一種是動態(tài)測試方法。這當(dāng)中靜態(tài)的測試方法主要是以人工的模擬方法進(jìn)行軟件測試和分析,而不需要在計算機(jī)上進(jìn)行實際的測試程序;而軟件動態(tài)的測試是通過先輸入一些按照一定的測試準(zhǔn)則構(gòu)造的實例數(shù)據(jù)來動態(tài)運行程序,而達(dá)到發(fā)現(xiàn)程序錯誤的過程。在動態(tài)分析技術(shù)中,最重要的技術(shù)是路徑和分支測試。黑盒測試只有采用窮舉輸入測試,把一切可能的操作都進(jìn)行測試,就此查出程序中可能存在的錯誤。但事實上,我們想要進(jìn)行全部完全的測試是不可能的,畢竟情況是無限多的,我們不僅需要測試一些合法的操作輸入,而且還需要對某些不合法操作但有可能輸入的情況進(jìn)行測試。這就需要我們進(jìn)行相對有針對性的測試了,通過進(jìn)行制定測試案例來指導(dǎo)測試的進(jìn)行,保證對軟件的測試有序的,按步驟,有計劃的進(jìn)行。黑盒測試一定要有足夠的基數(shù),才能對測試的結(jié)果保質(zhì)保量。把測試的行為詳細(xì)的分化為幾部分就是測試用例法。黑盒測試用例設(shè)計方法有以下幾種:等價類劃分法、邊界值分析法、錯誤推測法、因果圖法、判定表驅(qū)動法、正交試驗設(shè)計法、功能圖法、場景法等。通過把程序的輸入域把程序分為幾個子集,再選取每個子集中一些代表性的數(shù)據(jù)當(dāng)作測試用例。這些代表性數(shù)據(jù)的測試結(jié)果均可作為它這一類中的其他數(shù)據(jù)的結(jié)果。這就是等價類劃分方法,該方法是一種重要的,常用的黑盒測試用例設(shè)計方法。6.1.1登錄頁面單元測試方案:登錄者選擇自己的角色(用戶),然后輸入相關(guān)信息,系統(tǒng)對輸入信息進(jìn)行驗證,確保合法用戶和管理員訪問系統(tǒng)。用戶登陸信息保存在項目的assets目錄下的login.db。也可以自己進(jìn)行用戶名密碼的更改。6.1.2吉他功能頁面單元測試方案:用戶登陸成功后會跳轉(zhuǎn)到吉他的功能頁面。進(jìn)入功能頁面看能否看到背景圖片,看到圖片后點擊琴弦看是否會發(fā)出對應(yīng)聲音。之后再點擊屏幕最上方的和弦部分,看和弦背景是否顏色變深,變深后在隨意點擊琴弦,看是否聲音和之前有所不同。6.1.3功能頁面測試意義軟件測試的意義在于查找是否有bug,以發(fā)現(xiàn)軟件的缺陷為目的,運行軟件是否有問題,將軟件運行可能所產(chǎn)生的危險性比例降低到允許的范圍以內(nèi),為的是發(fā)現(xiàn)軟件的不足和缺憾而執(zhí)行程序的一個過程。軟件測試的意義大體上分為以下幾項:(1)檢驗了代碼中對象之間的相互作用。(2)檢驗了所有的組件是否正確的集成。(3)檢驗了所有用戶的需求是否正確的實現(xiàn)。(4)確保了軟件產(chǎn)品中的問題在分發(fā)之前被準(zhǔn)確的定位。軟件測試在最大程度上保證了軟件的產(chǎn)品的質(zhì)量,極大地提高了開發(fā)的效率。6.2測試用例android吉他系統(tǒng)的測試采用了白盒測試、黑盒測試兩種方法的各自有點,但主要使用的是黑盒測試方法。在測試的過程中采用了“無窮枚舉測試”,“保證測試用例的完整性和有效性”原則。我們通過測試希望達(dá)到以下測試目的:1.功能檢查:檢查功能是否完整,是否遺漏或?qū)崿F(xiàn)不了應(yīng)該實現(xiàn)的功能等。2.性能檢查:檢查系統(tǒng)是否能有效的完成聲音操作。3.初始化、終止檢查:強(qiáng)行的關(guān)閉和啟動程序看看是否健壯。測試內(nèi)容如下:(1)啟動Android模擬器在工程名上右擊,選擇“RunAs”,然后選擇“AndroidApplication”,運行結(jié)果如圖6.1所示。圖6.1Android虛擬機(jī)啟動是否啟動是否達(dá)到預(yù)期效果是是(2)啟動程序首先展示在我們眼前的是“登陸”界面在系統(tǒng)的輸入框架里填寫用戶名字和密碼并且選擇“登陸”按鈕,過程如圖6.2所示。圖6.2登陸頁面啟動登陸界面運行成功達(dá)到預(yù)期效果測試結(jié)果成功達(dá)到(3)運行測試軟件功能在項目中進(jìn)行和弦轉(zhuǎn)換,點擊琴弦測試發(fā)生,如圖6.3所示。圖6.3琴弦演奏琴弦是否運行成功是否可以奔潰是否可以控制琴弦是否發(fā)音正常是否達(dá)到預(yù)期效果測試結(jié)果是否是是是經(jīng)過對android吉他系統(tǒng)的測試,測試的內(nèi)容都已經(jīng)通過,實現(xiàn)了基本要求,系統(tǒng)可以正常運行。第7章結(jié)論本人一直就對軟件,對代碼有著強(qiáng)烈的好奇心,讓我一心想要設(shè)計一款自己的軟件,于是我選擇了這次的畢業(yè)的設(shè)計。從最開始的一無所知,到慢慢通過學(xué)習(xí)了解了Java的類、對象、構(gòu)造方法、繼承、接口等等。然后就從第一行代碼,一點點地寫,不斷的修改完善,直到整個程序的完成?,F(xiàn)在回過頭來再看,這一切的付出都是值得的,這半年的畢業(yè)設(shè)計不僅僅讓我更加了解的android程序的編寫,更重要的我想是通過這樣的經(jīng)歷讓我學(xué)會了一種解決問題的態(tài)度,如何從最開始的茫然與無從下手,到通過找資料學(xué)習(xí),慢慢的解決問題。這將讓我受用一生。另外本系統(tǒng)目前各方面運行不錯,但是我個人認(rèn)為還是有很多的缺陷,比如說應(yīng)用的界面就過于簡單和單調(diào),視覺效果不夠強(qiáng)烈,而且功能也偏少。但可能是這次的時間和精力確實有限,而且個人實力也比較不足,所以我希望之后能把這個程序再好好的完善,讓它能更好的適應(yīng)這個市場。還有做完本次設(shè)計后,讓我更加看好了智能
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年度智慧物流平臺股權(quán)投資合同協(xié)議
- 2025年度無社保派遣員工勞動合同
- 2025年度電子產(chǎn)品銷售兼職傭金結(jié)算合同
- 二零二五年度貓咪寵物美容學(xué)院加盟買賣協(xié)議
- 《物流系統(tǒng)分析》課件 6.3.1單節(jié)點選址模型1
- 高中家長會:家校攜手·共創(chuàng)明天課件-高一上學(xué)期家長會
- 常年聘請法律顧問的合同
- 2025年遼寧貨運從業(yè)資格證試題庫及答案
- 金秋助學(xué)發(fā)言稿
- 智能家居產(chǎn)品市場占有率表格
- 科普版小學(xué)英語六年級下冊全冊教案
- 腦梗合并心衰護(hù)理查房
- 婦聯(lián)普法知識競賽參考試題庫300題(含答案)
- T-NAHIEM 101-2023 急診科建設(shè)與設(shè)備配置標(biāo)準(zhǔn)
- 【綠色家園你我共建】約會春天擁抱綠色-2024年3月12日植樹節(jié)主題班會(小學(xué)通用版)
- 解分式方程50題八年級數(shù)學(xué)上冊
- 溶液鍍膜法完整版本
- 消化道出血應(yīng)急預(yù)案
- 【溫州眼鏡出口遭遇技術(shù)貿(mào)易壁壘的現(xiàn)狀及對策(定量論文)15000字】
- AI技術(shù)在保險行業(yè)的應(yīng)用
- 文華財經(jīng)“麥語言”函數(shù)手冊
評論
0/150
提交評論