安卓課程設(shè)計_第1頁
安卓課程設(shè)計_第2頁
安卓課程設(shè)計_第3頁
安卓課程設(shè)計_第4頁
安卓課程設(shè)計_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

摘要:隨著智能的快速普及,智能操作系統(tǒng)市場風生水起。在如今這個智能系統(tǒng)群雄紛爭的時候,2023年Google推出了一款名為Android的開源智能操作系統(tǒng),它采用Linux內(nèi)核,開放聯(lián)盟(OHA)成員可以任意使用和修改SDK包,系統(tǒng)的開源性使其具有良好的拓展性。這款軟件包括了操作系統(tǒng)、用戶界面和應(yīng)用程序,即智能工作所需要的全部軟件。Android的最大特點是其開放性體系架構(gòu),不僅具有非常好的開發(fā)、調(diào)試環(huán)境,而且還支持各種可擴展的用戶體驗,包括豐富的圖形組件、多媒體支持功能以及強大的瀏覽器。因此,對于軟件從業(yè)人員來說,Android平臺具有無限的吸引力。通過這學期學習的Android應(yīng)用開發(fā)這門課程,對IT行業(yè)智能的前景產(chǎn)生了濃厚的興趣。本文就在分析討論Android軟件開發(fā)技術(shù)原理的根底上,開發(fā)出基于Android平臺的音樂播放器。關(guān)鍵詞:安卓開發(fā);音樂播放器;智能平臺MusicPlayerStudentname:GuanXinxinAdvisor:XIEXiaoweiAbstract:Withtherapidproliferationofsmartphones,smartphoneoperatingsystemmarkethasspringup.Intheintelligentmobilephonesystemwhendisputeswarlords,2023GoogleintroducedasmartphonecalledtheAndroidopensourceoperatingsystem,whichusesLinuxkemel.OpenHandsetAlliance(OHA)memberscanbefreetouseandmodifytheSDKpackage,thesystemhasagoodopen-sourcenatureoftheexpansionofsoftwareincludestheoperatingsystem,userinterfaceandapplicationsthatneedtoworksmartphonesallthesoftware.Android’sbiggestfeatureisopenarchitecture,nottheonlygooddevelopmentanddebuggingenvironment,butalsosupportsavarietyofscalableuserexperience.Thereforeforsoftwareprofessionals,Androidplatformhasunlimitedappeal.ThroughtheAndroidapplicationcoursethisterm,IhavestronginterestintheintelligentmobilephoneITindustry.Inthispaper,theanalysisanddiscussionAndroidmobilephonesoftwaredevelopmenttechnologyonthebasisoftheprinciple,amusicplayerbasedonAndroidplatformwasdeveloped.Keywords:Android;musicplayer;smartphoneplatform1緒論1.1背景及意義隨著計算機的廣泛運用,市場的迅速開展,各種音頻視頻資源也在網(wǎng)上廣為流傳,這些資源看似平常,但已經(jīng)漸漸成為人們生活中必不可少的一局部了。于是音樂播放器頁緊跟著開展起來,但是很多播放器的功能過于龐大,對用戶的造成了很多資源浪費,比方CPU,內(nèi)存等的占用率過高,在用戶需要多任務(wù)操作時受到了不小的影響,帶來了許多不便,所以我設(shè)計的音樂播放器功能有能播放常見音頻文件,如MP3,WAV等,擁有播放菜單,可以實現(xiàn)換膚,功能不多,但是可以滿足大局部用戶的需求。1.2主要技術(shù)簡介Java是由SunMicrosystems公司于1995年5月推出的Java程序設(shè)計語言和Java平臺的總稱[5]。Java語言是Android開發(fā)人員所選的工具。Android運行時使用自己的虛擬機Dalvik,這并不是多數(shù)程序開發(fā)人員使用的普通Java虛擬機。Dalvik支持Java編程語言的大局部功能—但并不是全部[6]。AndroidStudio是一個Android開發(fā)環(huán)境,基于IntelliJIDEA.類似EclipseADT,AndroidStudio提供了集成的Android開發(fā)工具用于開發(fā)和調(diào)試。1.3運行環(huán)境操作系統(tǒng):Windows7支持環(huán)境:Android4.0版本開發(fā)環(huán)境:AndroidStudio2.0、SDK2工程設(shè)計2.1可行性分析本系統(tǒng)采用Android框架,可以在eclipse中安裝Android開發(fā)插件,使用Android模擬器也可以使用任意Android終端。模擬器和真正的Android沒有太大區(qū)別,人們對操作早已熟悉。2.2流程圖播放器工作流程圖如圖1.1所示。圖1.1音樂播放器流程圖2.3工程功能讀取歌單:將內(nèi)存卡中的MP3音樂讀取出來并顯示到列表當中1.通過MediaStore從數(shù)據(jù)庫中獲取所有音樂數(shù)據(jù);2.由于MediaStore所掃描到的數(shù)據(jù)存到了定義好的數(shù)據(jù)表格,所以我們用cursor直接將里面的信息讀出來并存進Data里進行封裝;3.定義一個List集合,把Data對象添加到List集合當中;4.通過定義一個ListViewAdapter,調(diào)用setAdpter方法,將數(shù)據(jù)顯示到列表當中。換膚:實現(xiàn)換膚功能,各種風格的皮膚照片顯示:專輯照片的實現(xiàn),類似于QQ音樂的專輯照片顯示監(jiān)聽:監(jiān)聽,接入時暫停歌曲播放2.4功能的測試與實現(xiàn)音樂播放器在模擬器運行情況如圖2.1.圖2.1主界面圖2.2換膚功能界面如圖圖2.3讀取數(shù)據(jù)庫中的音樂媒體文件如圖圖2.4專輯照片的實現(xiàn)3工程測試3.1測試功能實現(xiàn)結(jié)果通過相關(guān)的系統(tǒng)功能測試說明,該音樂播放器能播放MP3格式的音樂文件,能正確地響應(yīng)用戶對其根本功能的控制,根本滿足了音樂播放器的需求。3.2測試過程與總結(jié)依據(jù)傳統(tǒng)的方法,將系統(tǒng)測試作為軟件開發(fā)的一個階段,系統(tǒng)測試執(zhí)行工作將在系統(tǒng)開發(fā)完成后開展,很明顯這樣做不利于BUG的及時暴露。有些缺陷可能會埋藏至后期發(fā)現(xiàn),這是的修復本錢將大大提高。我們依據(jù)“全過程測試〞的測試理念,在本系統(tǒng)中我們將軟件開發(fā)和軟件測試緊密地結(jié)合在一起,要求充分關(guān)注開發(fā)過程,對開發(fā)過程的各種變化及時做出響應(yīng)。例如開發(fā)進度的調(diào)整可能會引起測試進度及測試策略的調(diào)整,需求的變更會影響到測試的執(zhí)行等。實踐證明這種做法起到了預(yù)期的效果,程序的實踐結(jié)果也符合了群眾的需求。參考文獻[1]史斌星,史佳.Java根底編程貫穿教程[M].北京:清華大學出版社,2003.[2]馬海軍,楊繼萍.Java2實用教程[M].北京:清華大學出版社,2004.[3]余志龍,陳小鳳,鄭名杰.AndroidSDK開發(fā)范例大全[M].北京:人民郵電出版社2023.附錄TestActivity.javapackagecom.suntek.contact;importandroid.app.Activity;importandroid.content.ContentResolver;importandroid.content.ContentUris;importandroid.content.ContentValues;importandroid.database.Cursor;import.Uri;importandroid.os.Bundle;importvider.ContactsContract;importvider.ContactsContract.CommonDataKinds.Phone;importvider.ContactsContract.CommonDataKinds.StructuredName;importvider.ContactsContract.Data;importvider.ContactsContract.RawContacts;importandroid.util.Log;importandroid.view.View;importandroid.view.View.OnClickListener;publicclassTestActivityextendsActivityimplementsOnClickListener{ @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); queryContacts(); } privatevoidqueryContacts(){ ContentResolvercr=getContentResolver(); Cursorcursor=cr.query(ContactsContract.Contacts.CONTENT_URI,null, null,null,null); if(cursor.getCount()>0){ while(cursor.moveToNext()){ StringrawContactId=""; Stringid=cursor.getString(cursor .getColumnIndex(ContactsContract.Contacts._ID)); Log.v("contactID",id); CursorrawContactCur=cr.query(RawContacts.CONTENT_URI,null, RawContacts._ID+"=?",newString[]{id},null); if(rawContactCur.moveToFirst()){ rawContactId=rawContactCur.getString(rawContactCur .getColumnIndex(RawContacts._ID)); Log.v("rawContactID",rawContactId); } rawContactCur.close(); if(Integer .parseInt(cursor.getString(cursor .getColumnIndex(ContactsContract.Contacts.HAS_PHONE_NUMBER)))>0) CursorphoneCur=cr .query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, +"=?", newString[]{rawContactId},null); phoneUri=Uri.parse("content://com.android.contacts/data/phones"); while(phoneCur.moveToNext()){ Stringnumber=phoneCur .getString(phoneCur .getColumnIndex(ContactsContract.CommonDataKinds.Phone.NUMBER)); Log.v("number",number); Stringtype=phoneCur .getString(phoneCur .getColumnIndex(ContactsContract.CommonDataKinds.Phone.TYPE)); Log.v("type",type); } phoneCur.close(); } } cursor.close(); } } publicvoidaddContact(Stringname,StringphoneNum){ ContentValuesvalues=newContentValues(); UrirawContactUri=getContentResolver().insert( RawContacts.CONTENT_URI,values); longrawContactId=ContentUris.parseId(rawContactUri); if(name!=""){ values.clear(); values.put(Data.RAW_CONTACT_ID,rawContactId); values.put(Data.MIMETYPE,StructuredName.CONTENT_ITEM_TYPE); values.put(StructuredName.GIVEN_NAME,name); getContentResolver().insert(ContactsContract.Data.CONTENT_URI, values); } if(phoneNum!=""){ values.clear(); values.put(Data.RAW_CONTACT_ID,rawContactId); values.put(Data.MIMETYPE,Phone.CONTENT_ITEM_TYPE); values.put(Phone.NUMBER,phoneNum); values.put(Phone.TYPE,Phone.TYPE_MOBILE); getContentResolver().insert(ContactsCont

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論