版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
卻京信息工經(jīng)天濱江學(xué)院《移動(dòng)通信程序設(shè)計(jì)》課程設(shè)計(jì)二0一四年五月二十九日目錄 1.1Android背景 3 2.1開發(fā)包及其工具的介紹 42.2Android開發(fā)平臺(tái)搭建 4 42.2.2軟件安裝 4三、軟件功能規(guī)劃 3.1軟件功能 52.2界面設(shè)計(jì) 4.1記事本組件的設(shè)計(jì) 4.3記事本存儲(chǔ)實(shí)現(xiàn) 6 64.3.2數(shù)據(jù)存儲(chǔ)之files 64.3.3數(shù)據(jù)存儲(chǔ)之network 7 84.3.5數(shù)據(jù)存儲(chǔ)之ContentProviders 5.3刪除記事 5.4程序執(zhí)行流程 六、程序截圖 竇同慶Android是基于Linux開放性內(nèi)核的操作系統(tǒng),是Google公司在2007年11月5日公布繼續(xù)進(jìn)行對(duì)Android系統(tǒng)開發(fā)運(yùn)營,它采用了軟件堆層(softwarestack,又名軟件疊層)的開發(fā),部分程序以Java編寫。2011年初數(shù)據(jù)顯示,僅正式上市兩年的操作系統(tǒng)Android已Android平臺(tái)首先就是其開放性,開發(fā)的平臺(tái)允許任何移動(dòng)終端廠商加入到Android聯(lián)盟中運(yùn)營商的制約減少。隨著EDGE、HSDPA這些2G至3G移動(dòng)網(wǎng)絡(luò)的逐步過渡和提升,手機(jī)風(fēng)格手機(jī)一下改用蘋果iPhone,同時(shí)還可將Symbian中優(yōu)秀的軟件帶到iPhone上使用、聯(lián)留給Android難題之一。無縫結(jié)合的Google應(yīng)用:如今叱咤互聯(lián)網(wǎng)的Google已經(jīng)走過10年度歷史。從搜索巨人到全面的互聯(lián)網(wǎng)滲透,Google服務(wù)如地圖、郵件、搜索連接用戶和互聯(lián)網(wǎng)的重要紐帶,而Android平臺(tái)手機(jī)將無縫結(jié)合這些優(yōu)秀的Google服務(wù)。1.2可行性分析(1)技術(shù)可行性-----本項(xiàng)目?jī)H需要一臺(tái)裝有Eclipse及配置好Android開發(fā)環(huán)境的計(jì)算機(jī)即可,對(duì)計(jì)算機(jī)本身有一定的要求,它可以使用windowsxp及其以上版本,macos,linux等操作系統(tǒng)。(2)經(jīng)濟(jì)可行性-----由于本軟件開發(fā)只有一個(gè)單個(gè)人,一臺(tái)電腦就行,基本不需要太大的成本.在經(jīng)濟(jì)上完全可行。(3)操作可行性-----界面設(shè)計(jì)時(shí)充分考慮用戶的習(xí)慣以及手機(jī)方面的局限性,程序必須要很簡(jiǎn)單;本程序只涉及到開發(fā)環(huán)境配置,安卓組件的熟悉,以及安卓平臺(tái)上的數(shù)據(jù)存儲(chǔ)。并沒有太大的難度,所以,該項(xiàng)目完全有可操作性.Android以java作為開發(fā)語言,jdk是進(jìn)行java開發(fā)時(shí)必需的開發(fā)包,Eclipse是一款非常優(yōu)秀的開源IDE,在大量插件的配合下,完全可以滿足從企業(yè)級(jí)java應(yīng)用到手機(jī)終端java游戲的開發(fā)。Google官方也提供了基于Eclipse的Android開發(fā)插件ADT,所以本軟件開發(fā)選擇Eclipse作為開發(fā)IDE。進(jìn)入/javase/downloads/index.jsp選擇DownloadJDK只下載JDK,無需下載jre。進(jìn)入/downloads我們選擇第一個(gè),即EclipseIDEforjavaEE說明:AndroidSDK兩種下載版本,一種是包含具體版本的SDK的,一種是只有升級(jí)工具,而不包含具體的SDK版本。完全版下載(Androidsdk2.1r01)。(1)安裝JDK安裝完成即可。(2)解壓EclipseEclipse無需安裝,解壓后,直接打開就行。(3)解壓AndroidSDK這個(gè)也無需安裝,解壓后供后面使。(4)配置Eclipse打開Eclipse,,在菜單欄上選擇help->InstallNewSoftWare點(diǎn)擊Add按鈕,出現(xiàn)如下界面,輸入網(wǎng)址:/android/eclipse/(如果出錯(cuò),請(qǐng)將https改成http),名稱:Android(這里可以自定義),點(diǎn)擊OK,點(diǎn)擊Next按鈕,點(diǎn)擊Next按鈕,出現(xiàn)如下界面:選擇Iacceptthetermsofthelicenseagreements,點(diǎn)擊Next,進(jìn)入安裝插件界面安裝完成后,點(diǎn)擊Yes按鈕,重啟Eclips。點(diǎn)擊菜單window->preferences選擇你的AndroidSDK解壓后的目錄,選錯(cuò)了就會(huì)報(bào)錯(cuò),這個(gè)是升級(jí)工具,目前還沒有一個(gè)版本的SDK升級(jí)SDK版本,選擇菜單window>Androidsdkandavdmanager選擇updateall按鈕,出現(xiàn)如下界面選擇左邊的某一項(xiàng),點(diǎn)擊accept表示安裝,點(diǎn)擊reject表示不安裝,我這里只選了SDK2.1和samplesforapi7,自己可以任意自定義,確定后,選擇install按鈕,進(jìn)入安裝界面:安裝完成。(6)新建AVD(Androidvituraldevice)和上面一樣,進(jìn)入Androidsdkandavdmanager,選中VituralDevices在點(diǎn)擊New按鈕顯示創(chuàng)建AVD完畢。選擇菜單file->new->other進(jìn)入如下界面:選擇新建AndroidProject項(xiàng)目,點(diǎn)擊Next按鈕,進(jìn)入如下界面名稱自定義,應(yīng)用程序名自定義,報(bào)名必須包含一個(gè)點(diǎn)以上,minSDKversion里面必須輸入整數(shù)(8)配置運(yùn)行右鍵項(xiàng)目->Runas->RunConfiguration該界面,點(diǎn)擊Browse按鈕,選擇你要運(yùn)行的項(xiàng)目選擇Target切換到以下界面該界面選擇運(yùn)行的AVD,將AVD前面的方框設(shè)置為選擇狀(9)測(cè)試項(xiàng)目運(yùn)行右鍵項(xiàng)目名稱->runas->AndroidApplication即可啟動(dòng)運(yùn)行該Android程3軟件功能規(guī)劃能夠提示用戶是否有已寫記事本,能夠進(jìn)行記事本的標(biāo)題填寫和內(nèi)容填寫,確定后保3.2界面設(shè)計(jì)進(jìn)入程序提示“您還沒有開始寫日記呢!點(diǎn)擊下邊的Menu按鈕開始寫日記吧!”,點(diǎn)擊menu菜單后進(jìn)入標(biāo)題和內(nèi)容的填寫界面。4程序設(shè)計(jì)本項(xiàng)目涉及到以下組件:4.2記事本邏輯設(shè)計(jì)(1)添加新記事如果當(dāng)前沒有記事,點(diǎn)擊“menu”后只有一個(gè)菜單選項(xiàng)“添加新記事”,寫完記事之后,點(diǎn)擊“確定”進(jìn)行保存。(2)編輯內(nèi)容選中要編輯的那一個(gè)記事,然后點(diǎn)擊“menu”菜單,會(huì)出現(xiàn)三個(gè)選項(xiàng)“新建記事”,“編輯內(nèi)容”,“刪除當(dāng)前記事”,點(diǎn)擊“編輯內(nèi)容”對(duì)被選中的記事進(jìn)行編輯,然后點(diǎn)擊“確定”加以保存。(3)刪除記事點(diǎn)擊上下鍵,選中要?jiǎng)h除的記事,然后點(diǎn)擊“menu”菜單,然后點(diǎn)擊“刪除當(dāng)前記事”,對(duì)選中的記事加以刪除。4.3記事本存儲(chǔ)實(shí)現(xiàn)Android中一共提供了5種數(shù)據(jù)存儲(chǔ)方式,但是由于存儲(chǔ)的這些數(shù)據(jù)都是其應(yīng)用程序私有的,所以如果需要在其他應(yīng)用程序中使用這些數(shù)據(jù),就要使用Android提供的ContentContentProviders:Android提供的一個(gè)特殊的存儲(chǔ)數(shù)據(jù)的類型,它提供了一套標(biāo)準(zhǔn)的接口來獲取,操作數(shù)據(jù)。SharedPreference:用來存儲(chǔ)“key-valuepaires”格式的數(shù)據(jù),它是一個(gè)輕量級(jí)的鍵值存儲(chǔ)機(jī)制,只可以存儲(chǔ)基本數(shù)據(jù)類型。Files:它通過FileInputStream和FileOutputStream對(duì)文件進(jìn)行操作,但是在Android中,文件是一個(gè)應(yīng)用程序私有的,一個(gè)應(yīng)用程序無法讀寫其他應(yīng)用程序的文件。SQLite:Android提供的一個(gè)標(biāo)準(zhǔn)的數(shù)據(jù)庫,支持SQL語句。Network:通過網(wǎng)絡(luò)來存儲(chǔ)和獲得數(shù)據(jù)。4.3.1數(shù)據(jù)存儲(chǔ)之SharedPreferences方法來保存數(shù)據(jù)。4.3.2數(shù)據(jù)存儲(chǔ)之Files我們可以通過自定義的save()方法來保存數(shù)據(jù),同時(shí)也可以通過load()方法來獲取文件了Propertiesproperties/*將數(shù)據(jù)打包成Properties*/properties.put("bmusic",String.valueOf(mbM{FileOutputStreamstream=this.o/*將打包好的數(shù)據(jù)寫入文件中*/properties.store(stream,}jjj}}/*裝載、讀取數(shù)據(jù)*/{/*構(gòu)建Properties對(duì)對(duì)象*/Propertiesproperties{/*開發(fā)文件*/FileInputStreamstream=this.op/*讀取文件內(nèi)容*/properties.load(stre入catch(FileNotFoundj人j}/*取得數(shù)據(jù)*/mbMusic=Boolean.valueOf(properties.get("bmusic")}{/*定義我們要訪問的地址url*//*打開這個(gè)url連接*/URLConnectionucon=uri.openConn/*從上面的鏈接中取得InputStream*/InputStreamis=uconBufferedInputStreambis=newBuffeByteArrayBufferbaf=newByteA/*一直讀到文件結(jié)束*/while((current=bis.read了baf.append((byte)curre}myString=newString(baf.toBy}{}<uses-permissiionAndroidname="Android.permission.INTERNET">享數(shù)據(jù).mSQLiteDatabase=this.openOrCreateDatabase(DATABASE_NAME,MOD/*刪除數(shù)據(jù)庫*/{}/*刪除一個(gè)表*/publicvoidDeleteTa{mSQLiteDatabase.execSQL("DROPTABLE"+TABLE_NAME);}/*更新一條數(shù)據(jù)*/jcv.put(TABLE_DATA,"修改后的數(shù)據(jù)"+miCount);/*更新數(shù)據(jù)*/Integer.toString(miC}/*向表中添加一條數(shù)據(jù)*/了cv.put(TABLE_DATA,"測(cè)試數(shù)據(jù)庫數(shù)據(jù)"+miCount);/*插入數(shù)據(jù)*/mSQLiteDatabase.insert(TABLE_NAM}/*從表中刪除指定的一條數(shù)據(jù)*/publicvoidDeleteDj/*刪除數(shù)據(jù)*/mSQLiteDatabase.execSQL("DELETEFROM"+TABLE_NAME+"WHERE_id="if(miCount<0){}}/*更行試圖顯示*/{//獲取數(shù)據(jù)庫Phones的CursorCursorcur=mSQLiteDatabase.query(TABLE_NAME,newString[]{TTABLE_NUM,TABLE_DATA},null,nul{ListAdapteradapter=newSimpleCursorAda//定義List中每一行的顯示模板//表示每一行包含兩個(gè)數(shù)據(jù)項(xiàng)//數(shù)據(jù)庫的Cursor對(duì)象//從數(shù)據(jù)庫的TABLE_NUM和TABLE_DATA兩列中取數(shù)據(jù)newString[]{TABLE_NUM,TABLE_DATA},//與NAME和NUMBER對(duì)應(yīng)的Views/*將adapter添加到m_ListView中*/m_ListView.setAdapter(}ContentProviders:Android提供的一個(gè)特殊的存儲(chǔ)數(shù)據(jù)的類型,它提供了一套標(biāo)準(zhǔn)的接口來獲取,操作數(shù)據(jù)。查詢數(shù)據(jù):可以使用ContentProvider.query0或者Activity.managedQuery(方法。修改數(shù)據(jù):通過ContentResolver.update()方法可以用來修改數(shù)據(jù)。添加數(shù)據(jù):通過ContentResolver.insert(方法來增加一條數(shù)據(jù)。刪除數(shù)據(jù):通過ContentResolver.delete()方法來刪除一條記錄。5程序開發(fā)publicbooleanonOptionsItemSelected(MenuItemitem){//插入一條數(shù)據(jù)caseMENU_ITEM_INSERIntentintent0=newIntent(this,ActivityDiaryEditor.class);intent0.setAction(ActivityDiaryEditor.INintent0.setData(getInt//編輯當(dāng)前數(shù)據(jù)內(nèi)容Intentintent=newIntent(this,ActivityDintent.setData(item.getIintent.setAction(ActivityDiaryEditor.//刪除當(dāng)前數(shù)據(jù)Uriuri=ContentUris.withAppendedId(getIntent().ggetContentResolver().delet}j5.2編輯內(nèi)容mTitleText=(EditText)findViewById(mBodyText=(EditText)findViewById(RconfirmButton=(Button)findViewif(EDIT_DIARY_ACTION.equals(action)){//編輯記事本mCursor=managedQuery(mUri,PROJECTION,null,setResult(RESULT_OK,(newIntent()).ssetTitle("編輯記事");}elseif(INSERT_DIARY_ACTION.eqsetTitle("新建記事");rgetContentResolver().insert(Diary.DiaryColumnsStringbody=mBodyText.getText().toString);ContentValuesvalues=newvalues.put(Diary.DiaryColumns.TITgetContentResolver().up}privatevoidrenderLiCursorcursor=managedQuery(getIntent().getData(),PROJECTION,null,null,DiaryColumns.DEFAULT_SORTR.layout.diary_row,cursor,newString[]{DiaryColumns.TITLE,DiaryColumns.CREATED},newint[]{R.id.text1,}5.4程序執(zhí)行流程importAndroid.app.Activity;importAndroid.os.Bundle;importAndroid.widget.Button;EditTexteditTextl=EditTexteditText2=null;publicvoidonCreate(BundlesavedInstaneditTextl=(EditText)findeditText2=(EditText)findVbuttonl=(Button)findViewById(R.id.butbuttonl.setOnClickListener(newView.OnClickListener(){service=newFileServicej了了}}packagecom.zxl.serv}publicvoidsave(Stringfilename}}<?xmlversion="1.0"enc<LinearLayoutxmlns:Android="http://schemas.AAndroid:orientation="vAndroid:layout_width="fillAndroid:layout_height="fillAndroid:background="@drawabl>Android:layout_width="wrap_Android:layout_height="wrapAndroid:text="@strinAndroid:layout_gravity="center_hoAndroid:paddingTop="20dip"Android:textColor="#FFaa00">Android:layout_width="wrap_Android:text="@string/Android:textColor="#>Android:layout_height="wrap_>Android:layout_width="fillAndroid:layou
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 遼寧省2025秋九年級(jí)英語全冊(cè)Unit5Whataretheshirtsmadeof易錯(cuò)考點(diǎn)專練課件新版人教新目標(biāo)版
- 2025年氦氖激光血管內(nèi)照射治療儀項(xiàng)目合作計(jì)劃書
- 2025年食品級(jí)纖維素醚項(xiàng)目建議書
- 護(hù)士婦產(chǎn)科護(hù)理要點(diǎn)
- 小學(xué)護(hù)理媽媽:兒童意外傷害處理
- 腎絞痛護(hù)理效果評(píng)價(jià)
- 員工壓力管理
- 老年透析患者的透析健康教育
- 智慧護(hù)理與創(chuàng)新發(fā)展
- 護(hù)理創(chuàng)新管理對(duì)護(hù)患關(guān)系的影響
- 利用EXCEL畫風(fēng)機(jī)特性曲線-模版
- 基層銷售人員入職培訓(xùn)課程完整版課件
- 2023年郴州職業(yè)技術(shù)學(xué)院?jiǎn)握新殬I(yè)適應(yīng)性測(cè)試題庫及答案解析word版
- 西南大學(xué)PPT 04 實(shí)用版答辯模板
- D500-D505 2016年合訂本防雷與接地圖集
- 顱腦損傷的重癥監(jiān)護(hù)
- 《史記》上冊(cè)注音版
- JJF 1985-2022直流電焊機(jī)焊接電源校準(zhǔn)規(guī)范
- GB/T 19867.2-2008氣焊焊接工藝規(guī)程
- 國家開放大學(xué)《刑法學(xué)(1)》形成性考核作業(yè)1-4參考答案
- 商戶類型POS機(jī)代碼
評(píng)論
0/150
提交評(píng)論