版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、專業(yè)工程綜合實(shí)訓(xùn)設(shè)計(jì)報(bào)告81目 錄第一章 緒論11.1課題的背景及意義11.2系統(tǒng)框架1第二章 系統(tǒng)分析32.1 系統(tǒng)可行性分析32.1.1 功能可行性分析32.1.2 運(yùn)行環(huán)境可行性分析32.2 開發(fā)環(huán)境簡(jiǎn)介32.2.1 java development kit(jdk)介紹32.2.2 android sdk 介紹32.2.3 eclipse開發(fā)工具介紹42.2.4 android development tools(adt)介紹4第三章 android開發(fā)常用到的技術(shù)及環(huán)境搭建43.1 android開發(fā)常用到的技術(shù)43.1.1 activity43.1.2 service63.1.3
2、content provider 內(nèi)容提供者63.1.4 intent 信使63.2環(huán)境搭建63.2.1安裝jdk63.2.2安裝eclipse73.2.3 android sdk安裝73.2.4 adt安裝7第四章 手機(jī)計(jì)步器的設(shè)計(jì)與實(shí)現(xiàn)84.1計(jì)步器功能的設(shè)計(jì)84.2計(jì)步器功能的實(shí)現(xiàn)104.2.1 計(jì)步開始及暫停104.2.2 復(fù)位鍵114.2.3設(shè)置步長(zhǎng)114.2.4設(shè)置體重114.2.5歷史記錄的查看及刪除12第五章 計(jì)步器的界面效果165.1用戶界面165.2設(shè)置界面175.3歷史界面205.4日歷選擇界面215.5用戶離開界面22第六章 系統(tǒng)測(cè)試與分析236.1 測(cè)試過程236.2
3、 測(cè)試分析36結(jié) 論36參考文獻(xiàn)37第一章 緒論1.1課題的背景及意義當(dāng)今社會(huì),手機(jī)已經(jīng)成為人們工作生活中必不可少的一項(xiàng)通訊和娛樂工具,隨著手機(jī)的不斷更新,手機(jī)的各種高層服務(wù)和應(yīng)用層出不窮?,F(xiàn)在智能手機(jī)可謂是爆發(fā)式增長(zhǎng),與此同時(shí)傳統(tǒng)手機(jī)在不斷地消失,諾基亞就是在這樣的環(huán)境中受到了重創(chuàng)?,F(xiàn)在主要有三個(gè)使用率和關(guān)注度最高的手機(jī)平臺(tái),分別是:android,ios和windows phone平臺(tái),在這三個(gè)平臺(tái)中android的占有率最高。自2007年11月google公司發(fā)布android系統(tǒng)以來,短短幾年時(shí)間,android已經(jīng)占據(jù)了智能手機(jī)市場(chǎng)的半壁江山,成為目前最為炙手可熱的智能手機(jī)操作系統(tǒng)。
4、android走進(jìn)了越來越多人的生活,成為他們獲取信息的主要平臺(tái)。android平臺(tái)對(duì)于google和用戶的意義不在于手機(jī)本身,而在于為了推動(dòng)移動(dòng)互聯(lián)網(wǎng)產(chǎn)業(yè)鏈的迅速成型。具有開源性的android手機(jī)平臺(tái)與之前symbian、windows mobile等操作系統(tǒng)不同,它們收取高額的授權(quán)費(fèi)用,而android不需要,這樣使得應(yīng)用開發(fā)成本大大降低;也正是由于它的源代碼是開放的,使得開發(fā)者可以隨心所欲的開發(fā)應(yīng)用。同時(shí),手機(jī)生產(chǎn)商和軟件開發(fā)商也能夠在這里得到利潤(rùn),手機(jī)軟件得到有效的維護(hù)協(xié)調(diào)發(fā)展。這正是google發(fā)布android平臺(tái)的意義,也是android平臺(tái)的使命所在。同時(shí)目前搭載androi
5、d平臺(tái)的應(yīng)用有很多,但針對(duì)傳感器而開發(fā)的應(yīng)用市場(chǎng)上還不多見。本應(yīng)用正是針對(duì)android手機(jī)內(nèi)置的加速度傳感器而特別設(shè)計(jì)的應(yīng)用。所以鑒于移動(dòng)端應(yīng)用開發(fā)是目前軟件開發(fā)行業(yè)正在興起并會(huì)越來越炙手可熱的一個(gè)分支,并且針對(duì)傳感器的開發(fā)相對(duì)空白我選擇了研究此課題。1.2系統(tǒng)框架在設(shè)計(jì)一款軟件時(shí)一般都會(huì)把它分成幾個(gè)模塊,在模塊的基礎(chǔ)上還會(huì)再分小模塊,這樣就達(dá)到了軟件模塊化設(shè)計(jì)的要求,然后再對(duì)各個(gè)小模塊進(jìn)行詳細(xì)設(shè)計(jì)和編寫,采用模塊化的管理方式可以使軟件結(jié)構(gòu)更清晰,也使得軟件的管理更有秩序,使別人容易理解和閱讀,但是這些模塊也要根據(jù)別的模塊來設(shè)計(jì)和約束,不能隨便設(shè)計(jì)脫離框架,設(shè)計(jì)完成后需要把每個(gè)設(shè)計(jì)完成的模塊
6、根據(jù)總體框架結(jié)合起來。根據(jù)本軟件的功能需求,將本軟件分為以下幾個(gè)功能模塊,如圖 1-1所示:主界面步數(shù)公里暫停/開始卡路里設(shè)置走過的總步數(shù)走過的總長(zhǎng)度開始/暫停運(yùn)動(dòng)運(yùn)動(dòng)所消耗的能量復(fù)位所有數(shù)據(jù)清零選擇日期日期步長(zhǎng)體重設(shè)置用戶步長(zhǎng)設(shè)置用戶體重結(jié)束關(guān)閉應(yīng)用軟件歷史查看歷史記錄刪除歷史記錄保存保存記錄圖1-1 整體框架圖第二章 系統(tǒng)分析2.1 系統(tǒng)可行性分析可行性分析(feasibility analysis)也稱為可行性研究,是在系統(tǒng)調(diào)查的基礎(chǔ)上,針對(duì)剛剛開發(fā)打算進(jìn)一步應(yīng)用的系統(tǒng)的必要性和可能性的分析和研究。可行性研究的目的主要在于,用最小的代價(jià)在盡可能短的時(shí)間內(nèi)確定問題是否能夠解決。1
7、該階段通過對(duì)系統(tǒng)總目標(biāo)的初步調(diào)研與分析,提出可行性方案并進(jìn)行論證。2.1.1 功能可行性分析1、計(jì)步功能:根據(jù)用戶設(shè)置的步長(zhǎng)和體重,估算用戶步行運(yùn)動(dòng)所消耗的熱量。當(dāng)距離發(fā)生改變時(shí)在前臺(tái)界面上刷新用戶步行的步數(shù)、距離、和消耗的卡路里;該計(jì)步功能還實(shí)現(xiàn)了notification后臺(tái)運(yùn)行的功能。 2、設(shè)置參數(shù)功能:設(shè)置用戶的步長(zhǎng)、體重2個(gè)參數(shù)信息。通過設(shè)置體重可以估算出不同體重的人運(yùn)動(dòng)所消耗的卡路里量。 3、退出系統(tǒng)功能:當(dāng)用戶想終止計(jì)步軟件時(shí),可以點(diǎn)擊退出菜單后退出本系統(tǒng)。 4、歷史記錄功能: 用戶可以查看以往的歷史記錄。 5、保存功能: 有戶可以保存當(dāng)天的運(yùn)動(dòng)量,以便之后查看。2.1.2 運(yùn)行環(huán)
8、境可行性分析本軟件是在windows 7 操作系統(tǒng)中,利用eclipse 開發(fā)工具搭載android sdk工具包,結(jié)合android手機(jī)自帶的sqlite數(shù)據(jù)庫(kù)進(jìn)行開發(fā)。2.2 開發(fā)環(huán)境簡(jiǎn)介2.2.1 java development kit(jdk)介紹jdk是java語(yǔ)言的軟件開發(fā)工具包。本應(yīng)用用的是jdk的j2me版,它主要用于移動(dòng)設(shè)備、嵌入式設(shè)備上的java應(yīng)用程序。沒有jdk的話,無(wú)法編譯java程序,所以這是開發(fā)java程序必須安裝的工具。2.2.2 android sdk 介紹sdk(software development kit)軟件開發(fā)工具包。被軟件開發(fā)工程師用于為特定的
9、軟件包、軟件框架、硬件平臺(tái)、操作系統(tǒng)等建立應(yīng)用軟件的開發(fā)工具的集合。因此,android sdk指的是android專屬的軟件開發(fā)工具包。2.2.3 eclipse開發(fā)工具介紹eclipse是一個(gè)開放源代碼的、基于插件的可擴(kuò)展性平臺(tái)。也可以說它只是一個(gè)框架和一組服務(wù),用于通過插件組件構(gòu)建開發(fā)環(huán)境。eclipse附帶了一些標(biāo)準(zhǔn)的插件集,包括java開發(fā)工具(jdk)。本次應(yīng)用就是將eclipse當(dāng)作java集成開發(fā)環(huán)境來使用,但是它的作用并不僅僅如此。由于eclipse中的每樣?xùn)|西都是插件,所以只要有插件就可以使用它,因而不僅僅是java語(yǔ)言,c/c+、php等語(yǔ)言也可以使用eclipse。2.
10、2.4 android development tools(adt)介紹目前android開發(fā)所用的開發(fā)工具是eclipse,在eclipse編譯ide環(huán)境中,安裝adt,為android開發(fā)提供開發(fā)工具的升級(jí)或者變更,簡(jiǎn)單理解為在eclipse下開發(fā)工具的升級(jí)下載工具。adt擴(kuò)展了eclipse的功能,讓我們能快速建立新的android項(xiàng)目、創(chuàng)建應(yīng)用程序的用戶界面。它可以幫助eclipse找到android sdk,再加上android框架的api組件調(diào)試使用android sdk工具,以便apk分發(fā)給應(yīng)用程序。同時(shí)大大減輕了android應(yīng)用程序的開發(fā)工作量,工具集成xml編輯器,將給開發(fā)
11、者一個(gè)令人難以置信的開發(fā)android應(yīng)用環(huán)境。當(dāng)然如果你不用eclipse作為你的開發(fā)工具,你就不需要下載adt, 只下載sdk即可開發(fā)。2第三章 android開發(fā)常用到的技術(shù)及環(huán)境搭建3.1 android開發(fā)常用到的技術(shù)3.1.1 activityactivity是android應(yīng)用程序開發(fā)中最重要的組件。一個(gè)activity提供一個(gè)屏幕,用戶可以用來交互以完成某項(xiàng)任務(wù),例如點(diǎn)擊、拍照、撥號(hào)等。它是用戶與應(yīng)用交互的直接且最重要的組件。activity生命周期可以用幾個(gè)函數(shù)說明:oncreate():activity開始創(chuàng)建時(shí)調(diào)用;onstart():在activity開始執(zhí)行時(shí)調(diào)用,這
12、時(shí)activity已經(jīng)可見;onresume():在activity獲得用戶焦點(diǎn)時(shí)調(diào)用,此時(shí)activity可以和用戶交;onpause():在activity被暫停時(shí)調(diào)用,失去用戶焦點(diǎn),但沒有被摧毀;onstop():在activity被停止時(shí)調(diào)用,此時(shí)activity已經(jīng)不可見,但仍然沒有被摧毀;onrestart():在activity被重新啟動(dòng)時(shí)調(diào)用;ondestory():在activity被徹底摧毀時(shí)調(diào)用。下面用一張圖來解釋activity的生命周期在各函數(shù)之間的跳轉(zhuǎn)。如圖3-1:圖3-1 activity的生命周期圖3.1.2 service一個(gè)service是一段長(zhǎng)生命周期的,
13、沒有用戶界面的程序,可以用來開發(fā)如監(jiān)控類程序。一個(gè)很好的例子就是用手機(jī)在播放音樂時(shí),用戶可以進(jìn)行其它應(yīng)用的活動(dòng)而此時(shí)并沒有播放音樂的界面,但是音樂在后臺(tái)播放并不受影響,這就是service的功勞。還有就是鬧鐘提醒,當(dāng)你設(shè)置好鬧鐘后并不需要一直顯示在鬧鐘那個(gè)界面,甚至手機(jī)也可以關(guān)掉但是只要時(shí)間到了,鬧鐘依然可以提醒,這也是service的作用。3.1.3 content provider 內(nèi)容提供者android平臺(tái)提供了content provider,它是一個(gè)應(yīng)用程序的指定數(shù)據(jù)集提供數(shù)據(jù)給其他應(yīng)用程序。這些數(shù)據(jù)可以存儲(chǔ)在文件系統(tǒng)中、在一個(gè)sqlite數(shù)據(jù)庫(kù)、或以任何其他合理的方式。本文用到了
14、文件存儲(chǔ)和shared preferences的存儲(chǔ)方式。文件存儲(chǔ)大家都很熟悉,就是以文件為操作對(duì)象,向文件中寫入或讀取數(shù)據(jù)。shared preferences可以將數(shù)據(jù)保存到應(yīng)用程序的私有存儲(chǔ)區(qū),這些存儲(chǔ)區(qū)中的數(shù)據(jù)只能被寫入這些數(shù)據(jù)的軟件讀取。它的本質(zhì)是基于xml文件存儲(chǔ)key-value鍵值對(duì)數(shù)據(jù),通常用來存儲(chǔ)一些簡(jiǎn)單的配置信息。例如:登陸時(shí)用到的用戶名和密碼。3.1.4 intent 信使intent 也是android開發(fā)者比較重要的一部分,它主要用來解決android應(yīng)用的各項(xiàng)組件之間的通訊,被稱為android應(yīng)用中的信使。intent負(fù)責(zé)對(duì)應(yīng)用中一次操作的動(dòng)作、動(dòng)作涉及數(shù)據(jù)、附
15、加數(shù)據(jù)進(jìn)行描述,android則根據(jù)此intent的描述,負(fù)責(zé)找到對(duì)應(yīng)的組件,將 intent傳遞給調(diào)用的組件,并完成組件的調(diào)用。所以它常被用來啟動(dòng)一個(gè)activity或service,3例如當(dāng)從一個(gè)activity啟動(dòng)另一個(gè)activity時(shí),可以這樣操作,intent intent=new intent();intent.setclass(startactivity.this,secondactivity.class);this.startactivity(intent)。3.2環(huán)境搭建首先要有一臺(tái)安裝有windows系統(tǒng)的計(jì)算機(jī),接下來就是安裝過程。3.2.1安裝jdk下載jdk,在這里
16、1. 我的電腦>屬性>環(huán)境變量>系統(tǒng)變量;2. java_home值為:d:program filesjdk(你安裝jdk的目錄);3. classpath 值為:;%java_home%libtools.jar;%java_home%libdt.jar;%java_homebin;4. path:在開始追加%java_homebin;如果安裝成功,打開cmd窗口,輸入java-version會(huì)出現(xiàn)如圖3-1顯示的信息:圖 3-1 jdk安裝成功提示信息3.2.2安裝eclipse下載eclipse,這里是網(wǎng)址/downloads/解
17、壓后即可使用。3.2.3 android sdk安裝在android developers下載最新版本的壓縮包,下載完成后解壓到任意路徑,運(yùn)行sdk setup.exe。選定你要安裝的內(nèi)容。這里也需要配置環(huán)境變量,在用戶變量中新建path值為:android sdk中的tools絕對(duì)路徑。53.2.4 adt安裝打開eclipse ide,點(diǎn)擊菜單中的“help”然后點(diǎn)擊“install new software”,再點(diǎn)擊add.按鈕,這時(shí)會(huì)彈出一個(gè)對(duì)話框要求輸入,name和location:name項(xiàng)可以自己隨便填取,location輸入http:/dl- with后的下拉列表中選擇我們剛才
18、添加的adt,我們會(huì)看到下面出有developer tools,展開它會(huì)有android ddms和android development tool,選定他們。然后按要求一步一步next,完成之后,這個(gè)過程可能會(huì)很慢。這取決于網(wǎng)絡(luò)環(huán)境。最后選擇window->preferences.在左邊的面板選擇android,然后再右側(cè)點(diǎn)擊browse,并選中sdk路徑。點(diǎn)擊apply,到此就配置完成了6。第四章 手機(jī)計(jì)步器的設(shè)計(jì)與實(shí)現(xiàn)4.1計(jì)步器功能的設(shè)計(jì)軟件采用最主流的android軟件應(yīng)用開發(fā)風(fēng)格,并使用android的原生組件進(jìn)行開發(fā),界面友好,簡(jiǎn)潔易懂,組建布局具有誘導(dǎo)性,用戶使用極其方便
19、快捷。1、主界面操作流程見圖4-1: 開始計(jì)步計(jì)步暫停計(jì)步清零開始圖4-1 圖為主界面操作流程圖2、設(shè)置界面操作流程見圖4-2:主界面設(shè)置體重步長(zhǎng)圖4-2 圖為設(shè)置界面操作流程圖 3、日歷選擇界面操作流程見圖4-3:主界面日歷選擇日歷圖4-3 日歷選擇界面操作流程圖4、歷史界面操作流程見圖4-4:主界面歷史查看選擇范圍刪除圖4-4 歷史界面操作流程圖5、復(fù)位界面操作流程見圖4-5:主界面復(fù)位清空數(shù)據(jù)圖4-5 復(fù)位界面操作流程圖6、關(guān)閉程序界面操作流程見圖4-6:主界面關(guān)閉結(jié)束程序圖4-6 關(guān)閉程序界面操作流程圖4.2計(jì)步器功能的實(shí)現(xiàn)計(jì)步器的主要功能有:計(jì)步開始/暫停,設(shè)置,顯示運(yùn)動(dòng)所消耗的卡路
20、里,走過長(zhǎng)度。本軟件是一個(gè)結(jié)合手機(jī)用戶特別是智能手機(jī)用戶常用功能的一個(gè)軟件平臺(tái),本軟件可以通過界面快速獲取運(yùn)動(dòng)的情況,獲取信息后可以對(duì)這些信息進(jìn)行個(gè)性化處理以方便用戶直觀的感受運(yùn)動(dòng)量。4.2.1 計(jì)步開始及暫停首先對(duì)暫停/ 開始鍵做一個(gè)監(jiān)聽start_pause_button.setonclicklistener(new view.onclicklistener()同時(shí)還要對(duì)此時(shí)狀態(tài)做一個(gè)判斷start_pause_button.settext(misrunning ? r.string.pause : r.string.resume);若初始狀態(tài)為記錄則顯示暫停,若初始狀態(tài)為非記錄狀態(tài)則顯示
21、開始。4.2.2 復(fù)位鍵對(duì)清零按鈕做一個(gè)view即:resetbutton = (button) findviewbyid(r.id.reset_button);實(shí)現(xiàn)清零的語(yǔ)句很簡(jiǎn)單,對(duì)“開始”鍵做一個(gè)監(jiān)聽,當(dāng)用戶點(diǎn)擊“開始”鍵時(shí),即:resetbutton.setonclicklistener(new view.onclicklistener()7執(zhí)行一下命令:public void onclick(view v)resetvalues(true);這樣記錄數(shù)據(jù)清零的按鈕就完成了。4.2.3設(shè)置步長(zhǎng)對(duì)于設(shè)置步長(zhǎng),首先要獲取用戶所輸入的步長(zhǎng)信息:return float.valueof(mse
22、ttings.getstring("step_length", "70")若用戶未對(duì)步長(zhǎng)信息進(jìn)行編輯,則默認(rèn)為70.在distancenotifier中使用msteplength來計(jì)算走過的距離:mdistance = mdistance + (float) (msteplength / 100000.0);notifylistener();4.2.4設(shè)置體重對(duì)于設(shè)置體重,首先要獲取用戶所輸入的體重信息:return float.valueof(msettings.getstring("body_weight", "50&q
23、uot;若用戶未對(duì)步長(zhǎng)信息進(jìn)行編輯,則默認(rèn)為50. 在caloriesnotifier中使用mbodyweight來計(jì)算用戶因運(yùn)動(dòng)所消耗的卡路里:mcalories += (mbodyweight * (misrunning ? metric_running_factor : metric_walking_factor) * msteplength / 100000.0;notifylistener();4.2.5歷史記錄的查看及刪除public class view1 extends activity/使用actionbaractivity出現(xiàn)閃退不能運(yùn)行, 可以使用 activitypri
24、vate listview list;private button btnback,btnforward;private int myear,mmonth,mday;private textview tvtitle;string from;string today;int to;int _id;simplecursoradapter madapter;database db;cursor cur;overrideprotected void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate);setcon
25、tentview(r.layout.view1);db=new database(this);db.creattable_amount();list=(listview)findviewbyid(r.id.listview1);calendar c = calendar. getinstance(timezone.gettimezone("gmt+08:00");myear = c.get(calendar.year); mmonth = c.get(calendar.month)+1; mday=c.get(calendar.day_of_month); if(mmont
26、h<10)today = myear + "-" + "0"+mmonth; else today=myear+"-"+mmonth; cur=db.getamount(today);from=new string"date","distance"to=new intr.id.textview1,r.id.textview2;cur=db.getamount(today);madapter = new simplecursoradapter(this, r.layout.items, cu
27、r,from, to);list.setadapter(madapter);list.setonitemlongclicklistener(new onitemlongclicklistener() overridepublic boolean onitemlongclick(adapterview<?> vparent, android.view.view view,int position, long id) / todo auto-generated method stub_id=(int)id;new alertdialog.builder(view1.this).sett
28、itle("提示").setmessage("確定刪除該細(xì)節(jié)?").seticon(r.drawable.ic_launcher).setpositivebutton("確定",new dialoginterface.onclicklistener() public void onclick(dialoginterface dialog, int whichbutton) /log.v("",""+_id); db.delamount(_id); madapter.changecursor(cu
29、r); (simplecursoradapter) madapter).notifydatasetchanged();finish(); system.out.println("ok"); list.setadapter(madapter);).setnegativebutton("取消",new dialoginterface.onclicklistener() public void onclick(dialoginterface dialog, int whichbutton) ).show();return false;);tvtitle=(te
30、xtview)findviewbyid(r.id.tvtitle);tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+myear+"-"+(mmonth+1)+"-"+"01");/if(mmonth=12) tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+(myear+1)+"-&
31、quot;+1+"-"+"01"); else if(mmonth>12) mmonth=1; myear=myear+1; tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+myear+"-"+(mmonth+1)+"-"+"01"); /btnback=(button)findviewbyid(r.id.btnback);btnforward=(button)fin
32、dviewbyid(r.id.btnforward);buttonlistener buttonlistener =new buttonlistener();btnback.setonclicklistener(buttonlistener);btnforward.setonclicklistener(buttonlistener);class buttonlistener implements onclicklistener public void onclick(android.view.view v) switch(v.getid() case r.id.btnback:leftview
33、(); break; case r.id.btnforward:rightview(); break; private void rightview() calendar c = calendar. getinstance(timezone.gettimezone("gmt+08:00");mmonth +;tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+myear+"-"+(mmonth+1)+"-"+&quo
34、t;01");if(mmonth=12)tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+(myear+1)+"-"+1+"-"+"01");else if(mmonth>12) mmonth=1; myear=myear+1;tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+m
35、year+"-"+(mmonth+1)+"-"+"01"); if(mmonth<10) today = myear + "-" + "0"+mmonth; else today=myear+"-"+mmonth; cur=db.getamount(today);madapter.changecursor(cur);(simplecursoradapter) madapter).notifydatasetchanged();private void leftview()
36、 mmonth=mmonth-1;if(mmonth<1) mmonth=12; myear=myear-1;tvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+(myear+1)+"-"+"1"+"-"+"01"); else if(mmonth>=12) mmonth=1; myear=myear+1;tvtitle.settext(myear+"-"+mmon
37、th+"-"+"01"+"-"+(myear+1)+"-"+"1"+"-"+"01"); elsetvtitle.settext(myear+"-"+mmonth+"-"+"01"+"-"+myear+"-"+(mmonth+1)+"-"+"01"); if(mmonth<10) today = myear +
38、"-" + "0"+mmonth; else today=myear+"-"+mmonth; cur=db.getamount(today); madapter.changecursor(cur);(simplecursoradapter) madapter).notifydatasetchanged();第五章 計(jì)步器的界面效果5.1用戶界面圖 5-1 用戶主界面5.2設(shè)置界面圖5-2 設(shè)置體重界面圖5-3 設(shè)置步長(zhǎng)界面5.3歷史界面圖5-4 記錄歷史界面5.4日歷選擇界面圖5-5 日期選擇界面5.5用戶離開界面圖5-6 用戶離開界
39、面第六章 系統(tǒng)測(cè)試與分析6.1 測(cè)試過程1) 點(diǎn)擊應(yīng)用圖標(biāo),如圖 6-1所示:圖6-1 圖為計(jì)步器主界面2) 計(jì)步器主界面開始記錄數(shù)據(jù),如圖 6-2所示:圖6-2 圖為計(jì)步器主界面3) 在主界面點(diǎn)擊暫停,如圖 6-3所示:圖6-3 圖為停止計(jì)步界面4) 繼續(xù)運(yùn)動(dòng)觀察主界面數(shù)據(jù)是否有變化,如圖 6-4所示:圖6-4 圖為停止計(jì)步后仍在運(yùn)動(dòng)界面5) 進(jìn)入體重設(shè)置界面,如圖 6-5所示:圖6-5 圖為體重設(shè)置界面6) 進(jìn)入步長(zhǎng)設(shè)置界面,如圖 6-6所示:圖6-6 圖為步長(zhǎng)設(shè)置界面7) 選擇日期界面,如圖 6-7所示:圖6-7 圖為日期選擇界面圖6-8 圖為日期選擇后的界面8) 歷史界面,如圖 6-9
40、所示:圖6-8 圖為歷史界面9) 歷史查詢界面 如圖 6-9所示:圖6-9 圖為歷史查詢界面10) 歷史刪除界面 如圖 6-10所示:圖6-10 圖為歷史刪除界面圖6-11 圖為歷史刪除后的界面11) 退出程序界面 如圖 6-12所示:圖6-12 圖為退出程序界面6.2 測(cè)試分析本軟件中幾個(gè)模塊的功能經(jīng)過測(cè)試,均測(cè)試通過,測(cè)試結(jié)果和最初的設(shè)計(jì)基本一致,所有的功能均能正常運(yùn)行,軟件需要比較特殊的運(yùn)行環(huán)境,首先手機(jī)的重力感應(yīng)功能必須有,而且android系統(tǒng)的版本過低將不能使用。至此基于安卓平臺(tái)的手機(jī)計(jì)步器的設(shè)計(jì)基本完成。結(jié) 論經(jīng)過了數(shù)月的努力,android平臺(tái)手計(jì)步器軟件終于完成了。本軟件能實(shí)
41、現(xiàn)用戶對(duì)計(jì)步器的基本要求。方便用戶開啟關(guān)閉計(jì)步器,對(duì)運(yùn)動(dòng)情況和運(yùn)動(dòng)量可以直觀的從主界面獲取信息,設(shè)置選項(xiàng)中的智能人機(jī)交互平臺(tái)也可以明了的對(duì)用戶信息進(jìn)行編輯,不需要復(fù)雜的操作不需要學(xué)習(xí),一目了然。對(duì)于智能手機(jī)用戶來說,基于安卓平臺(tái)的手機(jī)計(jì)步器提供了一個(gè)快捷方便的平臺(tái)。為用戶提供隨時(shí)隨地的服務(wù),節(jié)省用戶不必要的資金消耗與時(shí)間消耗是本軟件設(shè)計(jì)的一個(gè)宗旨,整個(gè)框架和細(xì)節(jié)的設(shè)計(jì)都是圍繞這個(gè)宗旨進(jìn)行的,雖然整個(gè)軟件還不是很成熟,還有很多不足和需要改進(jìn)的地方,或者還有很多信息提供不到位,例如我們可以加入音樂播放模塊,是用戶在運(yùn)動(dòng)的同時(shí)享受輕松快樂的環(huán)境,這些還需要日后慢慢優(yōu)化和改善,但是最初的設(shè)計(jì)都實(shí)現(xiàn)了。
42、在現(xiàn)在的功能基礎(chǔ)上本軟件可以進(jìn)行擴(kuò)展升級(jí)。本軟件最初設(shè)計(jì)的時(shí)候就是一個(gè)可以擴(kuò)展的框架,所以為將來加入新的功能提供了很大的方便。本軟件雖然不是很強(qiáng)大,但是是我自己親手編寫的,開發(fā)一個(gè)能在時(shí)下最流行的軟件,使之順利的在平臺(tái)上運(yùn)行是一件令人興奮的事情。把自己的想法一步一步地付諸實(shí)踐,最后成為一個(gè)真實(shí)的實(shí)物,被別人使用和稱贊,此時(shí)得到的成就感是尤為強(qiáng)烈的。參考文獻(xiàn)1 高煥堂.google android應(yīng)用程序框架原理與程序設(shè)計(jì).2 e2ecloud工作室著深入淺出google androidm北京:人民郵電出版社,2009-08-1.3 android api.chm 2010-04-10.4 王家
43、林大話企業(yè)級(jí)android應(yīng)用開發(fā)實(shí)戰(zhàn)m電子工業(yè)出版社,2011,85 差沙.用android手機(jī)開發(fā)應(yīng)用.程序員.2008.6 萬(wàn)瑪,寧關(guān)永,韓相軍.嵌入式數(shù)據(jù)庫(kù)典型技術(shù)sqlite和berkeley的研究.微計(jì)算機(jī)信息,2006.7 馬越.andriod的架構(gòu)與應(yīng)用.北京:中國(guó)地質(zhì)大學(xué),2008.8 高昂,馮大祥等.google android 開發(fā)入門與實(shí)踐.北京:人民郵電出版社,2009.9 張孝祥著java就業(yè)培訓(xùn)教程m北京:清華大學(xué)出版社,2007.10 michael mcroberts著,楊繼志,郭敬譯. arduino從基礎(chǔ)到實(shí)踐m. 北京:電子工業(yè)出版社,2013.附 錄:
44、 1.啟動(dòng)界面import android.app.activity;import android.annotation.suppresslint;import android.content.intent;import android.os.bundle;import android.os.handler;import android.os.message;/import android.support.v7.app.actionbaractivity;/import android.widget.imageview;import android.widget.textview;public
45、 class welcome extends activity /actionbaractivity 可以使用 activityprivate handler mhandler = new handler();imageview imageview;textview textview;int alpha = 150;int b = 0;suppresslint( "newapi", "handlerleak" )suppresswarnings("deprecation")overrideprotected void oncreate
46、(bundle savedinstancestate) super.oncreate(savedinstancestate);setcontentview(r.layout.welcome);imageview = (imageview) this.findviewbyid(r.id.imageview1);imageview.setimagealpha(alpha);new thread(new runnable() public void run() while (b < 2) try if (b = 0) thread.sleep(1000);b = 1; else thread.
47、sleep(50);updateapp(); catch (interruptedexception e) e.printstacktrace();).start();mhandler = new handler() overridepublic void handlemessage(message msg) super.handlemessage(msg);imageview.setalpha(alpha);imageview.invalidate();public void updateapp() alpha -= 5;if (alpha <= 0) b = 2;/漸變效果結(jié)束時(shí)啟動(dòng)
48、主菜單的activityintent in = new intent(this, com.zyl11123ok.derun.view.class);startactivity(in);this.finish();mhandler.sendmessage(mhandler.obtainmessage();2.主界面代碼import java.util.calendar;import java.util.timezone;import android.app.activity;import android.app.alertdialog;import android.app.datepickerd
49、ialog;import android.app.datepickerdialog.ondatesetlistener;import android.content.componentname;import android.content.context;import android.content.dialoginterface;import android.content.intent;import android.content.serviceconnection;import android.content.sharedpreferences;import .uri;import an
50、droid.os.bundle;import android.os.handler;import android.os.ibinder;import android.os.message;import android.preference.preferencemanager;/import android.support.v7.app.actionbaractivity;/import android.util.log;import android.view.layoutinflater;import android.view.view.onclicklistener;import andro
51、id.widget.button;import android.widget.datepicker;import android.widget.edittext;import android.widget.imagebutton;import android.widget.textview;import android.widget.toast;import android.r.layout;import com.zyl11123ok.derun.r;import com.zyl.derun.database.database;public class view extends activit
52、y /使用actionbaractivit閃退不能運(yùn)行y 可以使用 activityprivate static final string tag = "delightful"private button btnreset,btncancel,btnsave,btndate,btnnext,btnac;public database db;private textview tvdate,tvcount,tvmile,tvkaluli;private button imagebutton; private sharedpreferences msettings;private
53、 settings mpedometersettings; private utils mutils; private datepickerdialog dialog; private int mstepvalue; private float mdistancevalue; private boolean misrunning; private boolean mquitting = false; private int myear; private int mmonth; private int mday; private int step_length; int acctitemid=-1;/overrideprotected void oncreate(bundle savedinstancestate) super.oncreate(savedinstancestate); log.i(tag, "activity oncreate"); mstepvalue = 0; mutils = utils.getinstance(); setcontentview(r.layout.view_plus); btnreset=(button)findviewbyid(r.id.btnreset); btncancel=(button
溫馨提示
- 1. 本站所有資源如無(wú)特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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年鉛壓延加工材合作協(xié)議書
- 2025年清理去石設(shè)備合作協(xié)議書
- 八年級(jí)英語(yǔ)下冊(cè) Unit 9 單元綜合測(cè)試卷(人教陜西版 2025年春)
- 2024-2025學(xué)年四川省南充市高坪區(qū)四年級(jí)(上)期末數(shù)學(xué)試卷
- 2025年臨滄市三方合作出資協(xié)議范文(2篇)
- 2025年產(chǎn)品購(gòu)銷買賣合同(2篇)
- 2025年產(chǎn)權(quán)交易所項(xiàng)目掛牌服務(wù)協(xié)議(6篇)
- 2025年個(gè)人門面出租合同標(biāo)準(zhǔn)樣本(2篇)
- 2025年五年級(jí)語(yǔ)文教學(xué)鑒定總結(jié)模版(三篇)
- 2025年代理委托處理房地產(chǎn)協(xié)議(2篇)
- 《中電聯(lián)團(tuán)體標(biāo)準(zhǔn)-220kV變電站并聯(lián)直流電源系統(tǒng)技術(shù)規(guī)范》
- 中國(guó)主要蜜源植物蜜源花期和分布知識(shí)
- 電化學(xué)免疫傳感器的應(yīng)用
- 數(shù)據(jù)中心基礎(chǔ)知識(shí)培訓(xùn)-2024鮮版
- 供電企業(yè)輿情的預(yù)防及處置
- 【高中語(yǔ)文】《氓》課件++統(tǒng)編版+高中語(yǔ)文選擇性必修下冊(cè)
- T-WAPIA 052.3-2023 無(wú)線局域網(wǎng)設(shè)備技術(shù)規(guī)范 第3部分:接入點(diǎn)和控制器
- 第4課+中古時(shí)期的亞洲(教學(xué)設(shè)計(jì))-【中職專用】《世界歷史》(高教版2023基礎(chǔ)模塊)
- 金點(diǎn)子活動(dòng)總結(jié)匯報(bào)
- 運(yùn)動(dòng)技能學(xué)習(xí)與控制完整
- 原料驗(yàn)收標(biāo)準(zhǔn)知識(shí)培訓(xùn)課件
評(píng)論
0/150
提交評(píng)論