基于Android平臺(tái)的計(jì)步器的設(shè)計(jì)實(shí)現(xiàn)分析_第1頁(yè)
基于Android平臺(tái)的計(jì)步器的設(shè)計(jì)實(shí)現(xiàn)分析_第2頁(yè)
基于Android平臺(tái)的計(jì)步器的設(shè)計(jì)實(shí)現(xiàn)分析_第3頁(yè)
基于Android平臺(tái)的計(jì)步器的設(shè)計(jì)實(shí)現(xiàn)分析_第4頁(yè)
基于Android平臺(tái)的計(jì)步器的設(shè)計(jì)實(shí)現(xiàn)分析_第5頁(yè)
已閱讀5頁(yè),還剩23頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

..XX理工學(xué)院本科生畢業(yè)設(shè)計(jì)(論文)學(xué)院(系):軟件學(xué)院專業(yè):軟件工程學(xué)生:X三指導(dǎo)教師:X三完成日期2016年04月..XX理工學(xué)院本科生畢業(yè)設(shè)計(jì)〔論文〕基于Android平臺(tái)的愛(ài)運(yùn)動(dòng)計(jì)步器的設(shè)計(jì)與實(shí)現(xiàn)DesignandImplementationoftheLovingSports

PedometerBasedonAndroidPlatform總計(jì):畢業(yè)設(shè)計(jì)(論文)33頁(yè)表格:FORMTEXT1個(gè)圖片:FORMTEXT1個(gè)..XX理工學(xué)院本科畢業(yè)設(shè)計(jì)(論文)基于Android平臺(tái)的愛(ài)運(yùn)動(dòng)計(jì)步器的設(shè)計(jì)與實(shí)現(xiàn)DesignandImplementationoftheLovingSports

PedometerBasedonAndroidPlatform學(xué)院(系):軟件學(xué)院專業(yè):軟件工程學(xué)生XX:X三學(xué)號(hào):111指導(dǎo)教師(職稱):X三講師評(píng)閱教師:X三完成日期:2016年04月30日XX理工學(xué)院NanyangInstituteofTechnology..基于Android平臺(tái)的愛(ài)運(yùn)動(dòng)計(jì)步器的設(shè)計(jì)與實(shí)現(xiàn)軟件工程X三..隨著人們生活水平和生活質(zhì)量的提高,人們?cè)絹?lái)越關(guān)注自己的身體安康。而跑步成為人們最受歡送的運(yùn)動(dòng)方式,運(yùn)動(dòng)軟件可以在人們鍛煉身體的時(shí)候提供極大的幫助。本文針對(duì)運(yùn)動(dòng)軌跡和計(jì)步,設(shè)計(jì)一款基于Android平臺(tái)的運(yùn)動(dòng)軟件。本系統(tǒng)通過(guò)使用百度鷹眼、重力傳感器和數(shù)據(jù)庫(kù)技術(shù),實(shí)現(xiàn)了運(yùn)動(dòng)軌跡追蹤、計(jì)步、查看運(yùn)動(dòng)記錄等功能。本系統(tǒng)界面友好,操作簡(jiǎn)單,可以穩(wěn)定運(yùn)行。本款運(yùn)動(dòng)軟件適合空閑時(shí)間缺乏的人群,方便人們隨時(shí)鍛煉身體,并查看自己的運(yùn)動(dòng)情況。運(yùn)動(dòng)軟件;運(yùn)動(dòng)軌跡;Android;百度鷹眼..DesignandImplementationoftheLovingSports

PedometerBasedonAndroidPlatformSoftwareEngineeringMajor zhangsan..Withtheimprovementofpeople'slivingstandardsandqualityoflife,peoplepaymoreandmoreattentiontotheirhealth.Runninghasbeeoneofthemostpopularwaysofexercise,andsportssoftwarecanprovidegreatconvenienceforthepeopletoexercise.ThethesisdesignsasportssoftwarebasedonAndroidplatformforthesportstraceandthestepcounting.Thesystemusesbaiduhawkeye,gravitysensorsanddatabasetechnologyrealizingthetrajectorytracking,stepcounting,viewingathleticrecordsandotherfunctions.Thesystemprovidesafriendlyuserinterface,simpleoperationandcanbestableoperation.Thesportssoftwareissuitableforpeoplehavinglesstimeanditisalsoconvenientforpeopletoexerciseatanytimeandviewingathleticrecords.sportssoftware;sportstrace;Android;baiduhawkeye..目錄1緒論11.1軟件開(kāi)發(fā)背景11.2論文研究的目的和意義11.3論文主要研究?jī)?nèi)容11.4論文組織構(gòu)造12相關(guān)技術(shù)介紹12.1Android系統(tǒng)的組成12.1.1應(yīng)用程序?qū)?2.1.2應(yīng)用程序框架層12.1.3系統(tǒng)運(yùn)行庫(kù)層12.1.4Linux內(nèi)核層12.2Activity的生命周期12.3Android平臺(tái)的搭建12.3.1JDK的安裝12.3.2Eclipse的安裝12.3.3AndroidSDK的安裝12.3.4ADT的安裝12.3.5創(chuàng)立DVD13需求分析13.1可行性分析13.1.1經(jīng)濟(jì)可行性分析13.1.2技術(shù)可行性分析13.1.3操作可行分析13.2功能需求分析13.3非功能性需求分析13.3.1易用性13.3.2可靠性13.3.3平安性13.3.4運(yùn)行環(huán)境13.4面向?qū)ο蠓治?3.4.1設(shè)置信息用例分析13.4.2運(yùn)動(dòng)記錄用例分析13.4.3計(jì)步信息用例分析13.4.4系統(tǒng)用例分析14系統(tǒng)設(shè)計(jì)14.1概要設(shè)計(jì)14.2詳細(xì)設(shè)計(jì)14.2.1系統(tǒng)總體設(shè)計(jì)14.2.2計(jì)步模塊詳細(xì)設(shè)計(jì)14.2.3軌跡追蹤模塊詳細(xì)設(shè)計(jì)14.2.4音樂(lè)播放模塊詳細(xì)設(shè)計(jì)14.2.5鬧鈴模塊詳細(xì)設(shè)計(jì)14.2.6平臺(tái)分享模塊詳細(xì)設(shè)計(jì)14.2.7天氣預(yù)報(bào)模塊詳細(xì)設(shè)計(jì)14.2.8更換主題模塊詳細(xì)設(shè)計(jì)14.2.9運(yùn)動(dòng)記錄模塊詳細(xì)設(shè)計(jì)14.3數(shù)據(jù)庫(kù)設(shè)計(jì)14.3.1數(shù)據(jù)庫(kù)分析14.3.2數(shù)據(jù)庫(kù)概念設(shè)計(jì)及表構(gòu)造15系統(tǒng)實(shí)現(xiàn)15.1計(jì)步模塊實(shí)現(xiàn)15.2軌跡追蹤模塊實(shí)現(xiàn)15.3音樂(lè)播放模塊實(shí)現(xiàn)15.4鬧鈴模塊實(shí)現(xiàn)15.5天氣預(yù)報(bào)模塊實(shí)現(xiàn)15.6平臺(tái)分享模塊實(shí)現(xiàn)15.7更換主題模塊實(shí)現(xiàn)15.8運(yùn)動(dòng)記錄模塊實(shí)現(xiàn)16測(cè)試16.1計(jì)步模塊測(cè)試16.2軌跡追蹤模塊測(cè)試16.3運(yùn)動(dòng)記錄模塊測(cè)試1完畢語(yǔ)1參考文獻(xiàn)1致謝1..緒論軟件開(kāi)發(fā)背景隨著人們生活水平和生活質(zhì)量的提高,人們?cè)谌粘Mㄓ?、娛?lè)的過(guò)程中越來(lái)越多的使用手機(jī),但是隨著手機(jī)的不斷更新,人們也對(duì)手機(jī)的要求越來(lái)越高,也越來(lái)越關(guān)注手機(jī)的高層效勞和各種應(yīng)用。現(xiàn)如今隨著手機(jī)市場(chǎng)的開(kāi)展,手機(jī)也出現(xiàn)了各種不同的操作系統(tǒng),而最流行的那么是Android操作系統(tǒng),它是一個(gè)開(kāi)放源碼,并且是以Linux為根底的操作系統(tǒng),它具有開(kāi)放性的特點(diǎn),開(kāi)發(fā)者可以在Android平臺(tái)上使用最流行的Java語(yǔ)言來(lái)定制自己的操作系統(tǒng),正是這些特點(diǎn)使Android成為使用最多,最受歡送的手機(jī)平臺(tái)?,F(xiàn)階段人們由于生活節(jié)奏快,越來(lái)越多的人們注重身體的安康問(wèn)題,而跑步成為健身最簡(jiǎn)單的方法,健身軟件也將逐漸成為手機(jī)上的必備軟件。因此,本文將設(shè)計(jì)一款符合群眾健身需求的手機(jī)應(yīng)用軟件。論文研究的目的和意義Android是一種基于Linux的自由及開(kāi)放源代碼的操作系統(tǒng),主要使用于移動(dòng)設(shè)備,如智能手機(jī)和平板電腦,在眾多手機(jī)智能平臺(tái)上被廣泛應(yīng)用[1]。而Android系統(tǒng)最大的優(yōu)勢(shì)在于其開(kāi)源性,這也造就了其無(wú)窮的開(kāi)展?jié)摿?,開(kāi)放的平臺(tái)可以讓任何移動(dòng)終端廠商參加到到Android聯(lián)盟中,也因?yàn)槠溟_(kāi)放性吸引了很多的開(kāi)發(fā)者。因此,本文設(shè)計(jì)了一款基于Android平臺(tái)的運(yùn)動(dòng)軟件。在長(zhǎng)時(shí)間的開(kāi)展過(guò)程中,Android促進(jìn)了互聯(lián)網(wǎng)產(chǎn)業(yè)的迅速成形,手機(jī)軟件開(kāi)發(fā)產(chǎn)業(yè)也應(yīng)運(yùn)而生,越來(lái)越多的人們開(kāi)場(chǎng)關(guān)注此行業(yè)的開(kāi)展,存在著龐大的用戶群,因此Android在今后的開(kāi)展中也將愈來(lái)愈重要,所以,我們要通過(guò)相應(yīng)的技術(shù)來(lái)了解Android,了解開(kāi)發(fā)Android人的先進(jìn)理念以及思想,從而更加深入手機(jī)軟件行業(yè),更加能適應(yīng)時(shí)代的需要[2]。論文主要研究?jī)?nèi)容本論文所設(shè)計(jì)的運(yùn)動(dòng)軟件是針對(duì)廣闊運(yùn)動(dòng)用戶所設(shè)計(jì)的,目的是為了方便運(yùn)動(dòng)用戶鍛煉身體,讓用戶在鍛煉身體的過(guò)程中能夠享受運(yùn)動(dòng)所帶來(lái)的樂(lè)趣,同時(shí)還能夠查看自己的運(yùn)動(dòng)過(guò)程及運(yùn)動(dòng)量。本軟件的一大亮點(diǎn)在于百度鷹眼技術(shù),能夠在用戶運(yùn)動(dòng)的過(guò)程中借助GPS、傳感器信息,實(shí)現(xiàn)室內(nèi)外高精度的連續(xù)軌跡追蹤,并且支持查看歷史軌跡。傳感器的使用是本軟件的另一個(gè)亮點(diǎn),本軟件使用了加速度傳感器來(lái)實(shí)現(xiàn)計(jì)步功能。論文組織構(gòu)造本文分為六個(gè)章節(jié),主要介紹如下:第一章是前言,主要介紹基于安卓平臺(tái)的愛(ài)運(yùn)動(dòng)計(jì)步器的計(jì)步器的研究背景、研究的主要內(nèi)容研究的目的和意義,讓讀者能夠初步了解到本款軟件的設(shè)計(jì)意義和本文的大體構(gòu)造。第二章是相關(guān)技術(shù)介紹,通過(guò)對(duì)愛(ài)運(yùn)動(dòng)計(jì)步器開(kāi)發(fā)所用到的安卓平臺(tái)進(jìn)展系統(tǒng)開(kāi)發(fā)技術(shù)簡(jiǎn)介,使讀者能夠更加深入的了解安卓的一些根本知識(shí)。第三章是需求分析,本章將對(duì)軟件進(jìn)展可行性分析,具體將從四個(gè)方面對(duì)系統(tǒng)進(jìn)展分析,分別是可行性分析、功能性需求分析、非功能性需求分析和面向?qū)ο蠓治?。第四章是系統(tǒng)設(shè)計(jì),將從概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)和數(shù)據(jù)庫(kù)設(shè)計(jì)來(lái)完成系統(tǒng)的根本輪廓,在詳細(xì)設(shè)計(jì)中會(huì)先介紹系統(tǒng)的總體設(shè)計(jì),然后介紹軟件的各個(gè)功能模塊,分別是計(jì)步模塊、軌跡追蹤模塊、天氣預(yù)報(bào)模塊、音樂(lè)播放模塊、鬧鈴模塊、更換主題模塊、平臺(tái)分享模塊、運(yùn)動(dòng)記錄模塊,在數(shù)據(jù)庫(kù)分析中那么是針對(duì)數(shù)據(jù)庫(kù)和數(shù)據(jù)表進(jìn)展分析,從而完成整個(gè)系統(tǒng)的設(shè)計(jì)。第五章是系統(tǒng)實(shí)現(xiàn),本章為了讓用戶熟悉軟件的操作將對(duì)系統(tǒng)實(shí)現(xiàn)的每個(gè)模塊就行詳細(xì)的介紹,同時(shí),將展示出系統(tǒng)的核心代碼和運(yùn)行截圖,讓用戶更能直觀的了解軟件的運(yùn)行。第六章是測(cè)試章節(jié),為了發(fā)現(xiàn)軟件中的錯(cuò)誤,需要進(jìn)展一系列測(cè)試,從而滿足用戶的需求,測(cè)試的功能有計(jì)步模塊、軌跡追蹤模塊、運(yùn)動(dòng)記錄模塊。相關(guān)技術(shù)介紹Android系統(tǒng)的組成Android系統(tǒng)的底層建立在Linux系統(tǒng)之上,該平臺(tái)由應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)層和Linux內(nèi)核四層組成,它采用層次化架構(gòu)的方式進(jìn)展構(gòu)建,這種架構(gòu)方式使得層與層之間相互別離,并明確各自的分工[3]。下面分別對(duì)這四局部進(jìn)展簡(jiǎn)單的介紹。應(yīng)用程序?qū)討?yīng)用程序?qū)拥娜繎?yīng)用程序都是由Java語(yǔ)言編寫(xiě)的,Android會(huì)同一系列核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括email客戶端、SMS短信消息程序、日歷、地圖、瀏覽器,聯(lián)系人管理程序等[4]。應(yīng)用程序框架層Android應(yīng)用程序框架層提供了大量的API供開(kāi)發(fā)者使用,幫助開(kāi)發(fā)者開(kāi)發(fā)出更靈活、更實(shí)用、更具效率的應(yīng)用程序。Android應(yīng)用程序除了作為應(yīng)用程序開(kāi)發(fā)的根底,也是軟件復(fù)用的重要手段,任何一個(gè)程序在遵守框架的預(yù)定下,都可以發(fā)布它的功能模塊,然后其他應(yīng)用程序就可以使用這個(gè)功能模塊[5]。系統(tǒng)運(yùn)行庫(kù)層1.程序?qū)覣ndroid包含一套被不同組件使用的C/C++庫(kù)的集合,一般來(lái)說(shuō),Android應(yīng)用開(kāi)發(fā)者不能直接調(diào)用這套C/C++庫(kù)集,但可以通過(guò)它上面的應(yīng)用程序框架來(lái)調(diào)用這些庫(kù)[6]。2.Android運(yùn)行時(shí)Android運(yùn)行時(shí)有兩局部組成:Android核心庫(kù)集和ART,其中核心庫(kù)集提供了Java語(yǔ)言核心庫(kù)所能使用的絕大局部功能,而ART那么是用戶安裝APP時(shí)進(jìn)展預(yù)編譯,將原本在程序運(yùn)行時(shí)的編譯動(dòng)作提前到應(yīng)用安裝時(shí),這樣可以提升APP的運(yùn)行效率[7]。Android系統(tǒng)架構(gòu)圖如圖2-1所示。圖2-1Android系統(tǒng)架構(gòu)圖Linux內(nèi)核層Android的核心系統(tǒng)效勞依賴于Linux2.6內(nèi)核,如平安機(jī)制、內(nèi)存管理、進(jìn)程管理、網(wǎng)絡(luò)、硬件驅(qū)動(dòng),Linux內(nèi)核也同時(shí)作為系統(tǒng)硬件和軟件疊層之間的抽象層[8]。Activity的生命周期隨著不同應(yīng)用的運(yùn)行,每個(gè)Activity都有可能從活動(dòng)狀態(tài)轉(zhuǎn)入到非活動(dòng)狀態(tài),也有可能從非活動(dòng)狀態(tài)轉(zhuǎn)入活動(dòng)狀態(tài),歸納起來(lái),Activity大致會(huì)經(jīng)歷如下4種狀態(tài)[9]。1.運(yùn)行狀態(tài):當(dāng)前Activity位于前臺(tái),用戶可見(jiàn),可以獲得焦點(diǎn)。2.暫停狀態(tài):其他Activity位于前臺(tái),該Activity依然可見(jiàn),只是不能獲得焦點(diǎn)。3.停頓狀態(tài):該Activity不可見(jiàn),失去焦點(diǎn)。4.銷毀狀態(tài):該Activity完畢,或Activity所在的進(jìn)程被完畢。在Activity的生命周期中,如下方法被系統(tǒng)回調(diào)[10]。具體如圖2-2所示。1.onCreate():創(chuàng)立Activity時(shí)被回調(diào),該方法只會(huì)被調(diào)用一次。2.onStart():啟動(dòng)Activity時(shí)被回調(diào)。3.onRestart():重新啟動(dòng)Activity時(shí)被回調(diào)。4.onResume():恢復(fù)Activity時(shí)被回調(diào)。在onStart()方法后一定會(huì)回調(diào)onResume()。5.onPause():暫停Activity時(shí)被回調(diào)。6.onStop():停頓Activity時(shí)被回調(diào)。7.onDestroy():銷毀Activity時(shí)被回調(diào),該方法只會(huì)被回調(diào)一次。圖2-2Activity的生命周期圖Android平臺(tái)的搭建JDK的安裝下載JDK安裝包并安裝JDK,按照J(rèn)DK的安裝提示一步一步安裝,直到安裝完成,這時(shí),需要在我的電腦中配置環(huán)境變量,在這些完成之后,還需要檢查環(huán)境變量配置是否成功,翻開(kāi)cmd窗口,輸入javac,如果輸出幫助信息即為配置正確,同時(shí)想要查看JDK的版本信息也可以輸入java-version進(jìn)展查看。Eclipse的安裝1.首先需要翻開(kāi)官網(wǎng)./,并在官網(wǎng)中找到Eclipse并下載到本地。2.將下載到本地的eclipse解壓并安裝,在安裝生成的文件夾中找到啟動(dòng)程序eclipse.exe并翻開(kāi)即可使用。AndroidSDK的安裝1.在AndroidDevelopers中下載最新的AndroidSDK文件,下載完成之后可以解壓到任意路徑。2.解壓AndroidSDK文件,里面存在SDKManager.exe和AVDManager.exe兩個(gè)應(yīng)用程序,先運(yùn)行SDKManager.exe進(jìn)展SDK下載。3.選擇最新的Android版本,然后點(diǎn)擊Installpackages,并勾選AcceptAll開(kāi)場(chǎng)下載并安裝所選包。4.安裝完成之后,如果你選擇的包在AndroidSDK管理界面上會(huì)顯示Installed,那么表示安裝成功。ADT的安裝1.翻開(kāi)EclipseIDE,點(diǎn)擊菜單欄中的Help,選中InstallNewSoftware選項(xiàng),之后點(diǎn)擊Add按鈕,在彈出的對(duì)話框中輸入相對(duì)應(yīng)的信息,在地址欄中輸入dl-ssl.google./android/eclipse并確認(rèn)。2.稍等片刻,展開(kāi)DeveloperTools將顯示許多文件,選擇DeveloperTools里的所有文件,然后按提示繼續(xù)下一步,這里需要耐心等待一會(huì)兒。3.完成之后,翻開(kāi)菜單中的ADT管理器,然后選擇自己開(kāi)發(fā)所需要的平臺(tái),選擇完成之后,點(diǎn)擊安裝,然后在系統(tǒng)彈出的安裝界面選擇承受全部,這樣就不會(huì)不斷提示安裝了,最后,等待安裝完成即可。創(chuàng)立DVD翻開(kāi)安卓虛擬設(shè)備管理器,即AVDManager。點(diǎn)擊圖中的New按鈕新建安卓模擬器設(shè)備[11]。在下一界面設(shè)置安卓模擬器的詳細(xì)設(shè)備參數(shù),包括內(nèi)存大小等。所有設(shè)置完成后,點(diǎn)擊OK按鈕保存設(shè)置并關(guān)閉設(shè)置窗體。然后就能夠啟動(dòng)新建的Android模擬器了,點(diǎn)擊選中新建的的虛擬器,然后在新窗體中啟動(dòng)此模擬器。需求分析在軟件設(shè)計(jì)中,需求分析是很重要的一個(gè)環(huán)節(jié),它是在系統(tǒng)調(diào)查的根底之上,對(duì)應(yīng)用的必要性和可能性進(jìn)展系統(tǒng)的分析和研究,而它的目的在于,在最短的時(shí)間內(nèi)決定能否用最小的代價(jià)解決問(wèn)題。本節(jié)將軟件的功能和需求進(jìn)展分析,具體將從四個(gè)方面對(duì)系統(tǒng)進(jìn)展分析,分別是可行性分析、功能性需求分析、非功能性需求分析和面向?qū)ο蠓治???尚行苑治鼋?jīng)濟(jì)可行性分析隨著人們生活水平和生活質(zhì)量的提高,人們由于上班時(shí)間較多,身體缺乏鍛煉,但是人們的安康運(yùn)動(dòng)意識(shí)卻逐漸增強(qiáng)。由于平常上班時(shí)間較多,并沒(méi)有太長(zhǎng)的時(shí)間來(lái)鍛煉,他們會(huì)用一些休閑時(shí)間進(jìn)展鍛煉,但是由于運(yùn)動(dòng)時(shí)間零散不利于計(jì)算自己的運(yùn)動(dòng)量,也就無(wú)法知道自己的健身效果。所以,在這時(shí),擁有一款運(yùn)動(dòng)軟件就顯得非常必要了。目前市場(chǎng)上的計(jì)步器或多或少都會(huì)花費(fèi)一些金錢(qián),但是在Android手機(jī)上設(shè)計(jì)的這款運(yùn)動(dòng)軟件卻不需花費(fèi)任何費(fèi)用,只需擁有一部Android手機(jī)即可。人們?cè)谶\(yùn)動(dòng)的過(guò)程中只需翻開(kāi)軟件即可輕松獲取用戶的運(yùn)動(dòng)信息,并且不受時(shí)間和地點(diǎn)的限制,可以充分利用人們的空閑時(shí)間幫助鍛煉。技術(shù)可行性分析本款軟件開(kāi)發(fā)只需一臺(tái)安裝有Windows系統(tǒng)的電腦,在電腦上安裝開(kāi)發(fā)工具JavaSDk、AndroidSDK、ADT和Eclipse即可,因此硬件條件并不高[12]。本款軟件編寫(xiě)主要采用Java語(yǔ)言,Java語(yǔ)言具有以下的優(yōu)點(diǎn):1.面向?qū)ο螅篔ava是一個(gè)純的面向?qū)ο蟪绦蛟O(shè)計(jì)語(yǔ)言,面向?qū)ο蠹夹g(shù)處理發(fā)雜的應(yīng)用程序會(huì)變得非常簡(jiǎn)單,遠(yuǎn)非其他方法所能比較,同時(shí)還能節(jié)省許多代碼[13]。2.跨平臺(tái)性:Java在主流操作系統(tǒng)中實(shí)現(xiàn)了虛擬機(jī),而每個(gè)系統(tǒng)的虛擬機(jī)編譯出的.class文件都是統(tǒng)一的,這個(gè).class文件能在任意一個(gè)安裝了Java虛擬機(jī)的系統(tǒng)平臺(tái)上運(yùn)行,所以Java具有跨平臺(tái)性。3.平安:從程序本身上來(lái)說(shuō),Java這種語(yǔ)言是平安的;從代碼平安性來(lái)說(shuō),Java比較容易反編譯,代碼置于效勞器中不能被客戶直接訪問(wèn);從應(yīng)用程序平安性來(lái)說(shuō),Java提供了jca之類的平安框架,能給應(yīng)用程序提供平安保障[14]。4.簡(jiǎn)單易用:書(shū)寫(xiě)Java的源代碼并不拘泥于特定的環(huán)境,可以用記事本、文本編輯器等編輯軟件來(lái)實(shí)現(xiàn),然后對(duì)編輯好的源文件進(jìn)展編譯,編譯完成后即可直接運(yùn)行,在之后通過(guò)調(diào)試就可以得到結(jié)果[15]。操作可行分析本軟件在設(shè)計(jì)中充分考慮了用戶的使用習(xí)慣,為了讓用戶使用舒適,在軟件設(shè)計(jì)的過(guò)程中,把功能模塊設(shè)計(jì)成菜單樣式,這樣,用戶可以快速的在所有功能之間切換,具有很強(qiáng)的靈活性?,F(xiàn)在,市場(chǎng)上許多軟件存在廣告,插件給用戶帶來(lái)許多困擾,本款軟件不會(huì)包含任何插件和廣告,將給用戶最舒適的體驗(yàn)。功能需求分析本款軟件主要包含八個(gè)功能模塊,分別為:運(yùn)動(dòng)軌跡追蹤、查看天氣預(yù)報(bào)、播放本地音樂(lè)、鬧鐘、更換主題、計(jì)步、平臺(tái)分享、運(yùn)動(dòng)記錄。1.運(yùn)動(dòng)軌跡追蹤:軌跡追蹤是通過(guò)百度鷹眼技術(shù)技術(shù)來(lái)實(shí)現(xiàn)的,指的是通過(guò)GPS定位和網(wǎng)絡(luò)〔Wi-Fi和基站〕定位,獲取用戶當(dāng)前的位置。百度鷹眼為開(kāi)發(fā)者提供了一個(gè)可視化的數(shù)據(jù)管理后臺(tái),開(kāi)發(fā)者在開(kāi)發(fā)的過(guò)程中可以設(shè)定軌跡刷新的請(qǐng)求時(shí)間,之后用戶在運(yùn)動(dòng)的過(guò)程中,運(yùn)動(dòng)軌跡將會(huì)在地圖上以一條帶顏色的線條精準(zhǔn)的展現(xiàn)出來(lái),可以方便的查看運(yùn)動(dòng)的X圍和地點(diǎn)。2.查看天氣預(yù)報(bào):天氣預(yù)報(bào)不需要手動(dòng)設(shè)置用戶的所在地,可以自動(dòng)定位運(yùn)動(dòng)者所在的城市,并能夠查看本城市今天以及以后三天的根本天氣信息,包括天氣情況、氣溫溫度、能否出行、是否適合運(yùn)動(dòng)等信息,同時(shí),提供了下拉刷新功能,讓用戶能夠時(shí)刻獲得最新天氣信息。3.播放本地音樂(lè):音樂(lè)播放器能夠自動(dòng)加載手機(jī)上所存儲(chǔ)的音樂(lè),有著開(kāi)場(chǎng)、暫停上下曲切換功能按鍵,并能實(shí)現(xiàn)后臺(tái)播放,不會(huì)影響用戶觀察界面,讓用戶在運(yùn)動(dòng)過(guò)程中還能享受音樂(lè)。4.鬧鐘:本軟件設(shè)置鬧鐘功能,可以讓用戶設(shè)置一個(gè)鬧鐘,用來(lái)提醒用戶起床,也可以設(shè)置成運(yùn)動(dòng)時(shí)間鬧鐘,防止在用戶在運(yùn)動(dòng)過(guò)程中遺忘一些其他重要事情,當(dāng)然,用戶也能開(kāi)啟和關(guān)閉鬧鐘。5.更換主題:用戶在使用本軟件時(shí),不喜歡默認(rèn)的主題,那么本軟件還提供了除默認(rèn)之外的其他九種主題,可以讓用戶在這些主題中根據(jù)自己的愛(ài)好,重新更換其他的主題。6.計(jì)步:用戶設(shè)置好個(gè)人信息,在運(yùn)動(dòng)的過(guò)程中,開(kāi)場(chǎng)計(jì)步,通過(guò)手機(jī)上的傳感器可以得到用戶的步數(shù),然后通過(guò)用戶設(shè)置的身高、體重和步長(zhǎng)來(lái)測(cè)出用戶運(yùn)動(dòng)的距離和消耗的熱量,運(yùn)動(dòng)的步數(shù)、距離和消耗的熱量這些運(yùn)動(dòng)數(shù)據(jù)都是在隨著用戶運(yùn)動(dòng)的狀態(tài)而不斷刷新的。7.平臺(tái)分享:用戶不僅可以自己運(yùn)動(dòng),還可以呼喊自己的朋友一起來(lái)運(yùn)動(dòng)。在用戶對(duì)自己某一天的運(yùn)動(dòng)滿意時(shí),可以將自己的運(yùn)動(dòng)數(shù)據(jù)通過(guò)QQ、貼吧、微博等第三方社交軟件分享出去,呼吁大家一起運(yùn)動(dòng)。8.運(yùn)動(dòng)記錄:運(yùn)動(dòng)記錄包含兩個(gè)局部,一局部是計(jì)步查詢,另一局部那么是歷史軌跡查詢。在計(jì)步查詢中可以查看用戶最近一周的運(yùn)動(dòng)數(shù)據(jù),包括每天的步數(shù)、距離和消耗的熱量,在歷史軌跡查詢中可以查看任何一天有記錄的運(yùn)動(dòng)軌跡。運(yùn)動(dòng)記錄可以讓用戶通過(guò)比照,知道自己的運(yùn)動(dòng)量相比于以前是否減少。非功能性需求分析易用性該軟件的開(kāi)發(fā)采用Android軟件應(yīng)用風(fēng)格,并且采用了Android原生組件,UI也經(jīng)過(guò)精心設(shè)計(jì),界面簡(jiǎn)單易懂,易于操作,符合大局部用戶需求。用戶在使用時(shí),只需用手指在屏幕上點(diǎn)擊、滑動(dòng)即可實(shí)現(xiàn)功能的使用和切換??煽啃栽撥浖氖褂貌⒉皇軙r(shí)間、地點(diǎn)的限制,用戶可以在任何時(shí)間使用本款軟件。當(dāng)系統(tǒng)故障或斷電情況下,用戶不必?fù)?dān)憂數(shù)據(jù)的喪失,只需再次啟用軟件,就能夠正常使用,不會(huì)影響用戶體驗(yàn)。平安性用戶在使用本款軟件時(shí),完全不必?fù)?dān)憂信息的泄密,在開(kāi)發(fā)完成時(shí)使用了軟件加密來(lái)防止軟件的破解,而且本款軟件也不會(huì)再運(yùn)行的過(guò)程中收集用戶的信息,因此,用戶可以放心使用。運(yùn)行環(huán)境本軟件適用于4.0版本以上的Android系統(tǒng),對(duì)于以后的開(kāi)發(fā)還具有很大的空間,而且軟件運(yùn)行速度快,給用戶提供流暢感,在用戶使用時(shí),也不必?fù)?dān)憂數(shù)據(jù)流量和電量的消耗,這些都將在用戶可承受X圍內(nèi)。面向?qū)ο蠓治雒嫦驅(qū)ο蟛捎昧擞美齺?lái)描述系統(tǒng)的需求,通過(guò)用戶使用阮籍你的過(guò)程,來(lái)表達(dá)系統(tǒng)所擁有的功能,用戶與系統(tǒng)之間的交互既表達(dá)了系統(tǒng)所擁有的功能。設(shè)置信息用例分析用戶想要使用計(jì)步功能需在菜單個(gè)人信息中輸入自己的一些信息,用戶信息包含身高、體重、性別、昵稱、目標(biāo)步數(shù)這幾項(xiàng),用戶設(shè)置信息用例圖如圖3-1所示。圖3-1用戶設(shè)置信息用例圖運(yùn)動(dòng)記錄用例分析用戶運(yùn)動(dòng)的過(guò)程中,所產(chǎn)生的運(yùn)動(dòng)數(shù)據(jù)會(huì)不斷儲(chǔ)存在數(shù)據(jù)庫(kù)中,運(yùn)動(dòng)記錄信息包含了歷史軌跡、步數(shù)、距離和消耗的熱量這4項(xiàng),運(yùn)動(dòng)記錄信息用例圖如圖3-2所示。圖3-2用戶運(yùn)動(dòng)記錄用例圖計(jì)步信息用例分析當(dāng)用戶開(kāi)場(chǎng)運(yùn)動(dòng)時(shí),計(jì)步功能就實(shí)現(xiàn)了,計(jì)步信息包括了計(jì)算步數(shù)、計(jì)算距離和計(jì)算消耗的熱量,計(jì)算步數(shù)將不斷更新用戶運(yùn)動(dòng)步數(shù),然后通過(guò)用戶個(gè)人信息的身高、體重、步長(zhǎng)計(jì)算出距離和熱量,計(jì)步信息用例圖如圖3-3所示。圖3-3計(jì)步用例圖系統(tǒng)用例分析用戶在進(jìn)入軟件時(shí)首先需要設(shè)置個(gè)人信息,然后在之后運(yùn)動(dòng)時(shí)才能產(chǎn)生運(yùn)動(dòng)數(shù)據(jù),如計(jì)步和運(yùn)動(dòng)軌跡等,系統(tǒng)將這些數(shù)據(jù)保存在數(shù)據(jù)庫(kù)中,在運(yùn)動(dòng)過(guò)后,用戶還能查看以往的運(yùn)動(dòng)記錄,在用戶使用完后,也可以進(jìn)展退出軟件操作。系統(tǒng)的總用例圖如圖3-4所示。圖3-4總用例圖系統(tǒng)設(shè)計(jì)概要設(shè)計(jì)在設(shè)計(jì)一款軟件的時(shí)候,通常會(huì)把它分為幾個(gè)模塊,再分為幾個(gè)幾個(gè)小模塊,這樣寫(xiě)出來(lái)的構(gòu)造更為清晰,也更為方便管理。愛(ài)運(yùn)動(dòng)軟件按照功能劃分可為八大模塊,軌跡追蹤模塊包含軌跡追蹤;天氣預(yù)報(bào)模塊包含城市天氣預(yù)報(bào);音樂(lè)播放模塊包含播放本地所存儲(chǔ)的全部音樂(lè);鬧鐘模塊包含定時(shí)鬧鐘;更換主題模塊包含設(shè)置主題;計(jì)步模塊包含設(shè)置目標(biāo)步數(shù)和計(jì)步;平臺(tái)分享模塊包括一鍵分享;運(yùn)動(dòng)記錄模塊包括步數(shù)統(tǒng)計(jì)、熱量統(tǒng)計(jì)、距離統(tǒng)計(jì)、軌跡查詢。功能模塊圖如圖4-1所示。圖4-1軟件功能模塊圖詳細(xì)設(shè)計(jì)系統(tǒng)總體設(shè)計(jì)用戶進(jìn)入系統(tǒng)主界面,可以在計(jì)步器中先設(shè)置自己今天的目標(biāo)步數(shù),然后選擇是否開(kāi)場(chǎng)計(jì)步,如果想要開(kāi)場(chǎng)計(jì)步還要輸入自己的個(gè)人信息,如果不開(kāi)場(chǎng)計(jì)步,那么可以通過(guò)側(cè)滑翻開(kāi)左側(cè)菜單欄選擇其他的功能,如軌跡追蹤、查看天氣預(yù)報(bào)、本地音樂(lè)音樂(lè)播放、鬧鐘設(shè)置、更換主題、平臺(tái)分享、查看運(yùn)動(dòng)記錄。系統(tǒng)總流程圖如圖4-2所示。圖4-2系統(tǒng)總流程圖計(jì)步模塊詳細(xì)設(shè)計(jì)在開(kāi)場(chǎng)計(jì)步之前,用戶首先要輸入自己個(gè)人信息,包括身高、體重、步長(zhǎng)等信息,還需要輸入自己的目標(biāo)步數(shù),當(dāng)這些信息輸入完成之后,用戶就可以點(diǎn)擊主界面的開(kāi)場(chǎng)按鈕進(jìn)展計(jì)步功能,否那么,無(wú)法開(kāi)場(chǎng)計(jì)步。通過(guò)傳感器來(lái)實(shí)現(xiàn)計(jì)步功能,同時(shí),可以根據(jù)用戶的身高、體重等個(gè)人信息計(jì)算得出用戶運(yùn)動(dòng)的距離以及消耗的熱量。計(jì)步模塊流程圖如圖4-3所示。圖4-3計(jì)步模塊流程圖軌跡追蹤模塊詳細(xì)設(shè)計(jì)軌跡追蹤顯示的是百度鷹眼的地圖界面,當(dāng)用戶準(zhǔn)備開(kāi)場(chǎng)運(yùn)動(dòng)時(shí),點(diǎn)擊開(kāi)場(chǎng)按鈕,百度鷹眼就會(huì)隨著運(yùn)動(dòng)者的運(yùn)動(dòng)生成相對(duì)應(yīng)的運(yùn)動(dòng)軌跡,并且以一條帶顏色的線條來(lái)顯示出來(lái)。當(dāng)用戶在運(yùn)動(dòng)完之后,只需點(diǎn)擊停頓按鈕,就會(huì)停頓軌跡追蹤,并保存運(yùn)動(dòng)軌跡,方便以后查詢。軌跡模塊流程圖如圖4-4所示。圖4-4軌跡模塊流程圖音樂(lè)播放模塊詳細(xì)設(shè)計(jì)用戶可以在音樂(lè)播放器中播放本地所存儲(chǔ)的全部音樂(lè),音樂(lè)播放器具備播放、暫停、上下切換歌曲、顯示進(jìn)度條、后臺(tái)播放等功能。用戶可以在音樂(lè)列表中選擇自己喜歡的音樂(lè),點(diǎn)擊即可播放,同時(shí)還能切換到后臺(tái)播放模式。音樂(lè)播放模塊流程圖如圖4-5所示。圖4-5音樂(lè)播放模塊流程圖鬧鈴模塊詳細(xì)設(shè)計(jì)本系統(tǒng)提供了鬧鐘功能,在腦中界面會(huì)給顯示一個(gè)虛擬時(shí)鐘、鬧鐘的設(shè)定時(shí)間以及鬧鐘的開(kāi)關(guān)按鈕。用戶可以根據(jù)自己的習(xí)慣來(lái)更改鬧鐘,也可以在運(yùn)動(dòng)的過(guò)程中來(lái)提醒自己,當(dāng)設(shè)定的鬧鐘時(shí)間到之后,鬧鐘就會(huì)循環(huán)播放一個(gè)存儲(chǔ)在本地的音頻文件來(lái)提醒用戶,當(dāng)然,如果用戶不想使用鬧鐘,也可以通過(guò)開(kāi)關(guān)按鈕來(lái)關(guān)閉鬧鐘,關(guān)閉之后,就不會(huì)有鬧鐘提醒用戶。鬧鐘模塊流程圖如圖4-6所示。圖4-6鬧鐘模塊流程圖平臺(tái)分享模塊詳細(xì)設(shè)計(jì)用戶可以通過(guò)QQ、貼吧、微博和微信等其他第三方社交軟件把自己一天的運(yùn)動(dòng)信息分享給朋友,選擇哪個(gè)分享方式,就會(huì)跳轉(zhuǎn)到哪個(gè)軟件上面。平臺(tái)分享模塊流程圖如圖4-7所示。圖4-7平臺(tái)分享模塊流程圖天氣預(yù)報(bào)模塊詳細(xì)設(shè)計(jì)用戶通過(guò)系統(tǒng)提供的天氣預(yù)報(bào)功能能夠查看用戶所在地的天氣狀況、溫度、旅行等信息,免去用戶輸入城市的繁瑣項(xiàng)。當(dāng)用戶查看完后,點(diǎn)擊返回按鈕就能返回到主界面。天氣預(yù)報(bào)模塊流程圖如圖4-8所示。圖4-8天氣預(yù)報(bào)模塊流程圖更換主題模塊詳細(xì)設(shè)計(jì)在更換主題界面存有一些主題圖片,用戶可以在這些主題中選擇一款自己喜歡的來(lái)更換默認(rèn)主題。更換主題模塊流程圖如圖4-9所示。圖4-9更換主題流程圖運(yùn)動(dòng)記錄模塊詳細(xì)設(shè)計(jì)查看運(yùn)動(dòng)記錄分為兩種,一種是歷史軌跡查詢,另一種是步數(shù)、距離查詢。如果想查看歷史軌跡,點(diǎn)擊歷史軌跡按鈕就能查看用戶最近一天的歷史軌跡,如果想要查看其他日期的歷史軌跡,只需在右上角點(diǎn)擊日期按鈕,然后選擇想要查看的日期,就能查看當(dāng)天的運(yùn)動(dòng)軌跡;如果想要查看步數(shù)、距離,只需從主界面進(jìn)入左側(cè)菜單欄選項(xiàng),選擇左邊運(yùn)動(dòng)記錄按鈕,就能查看這一周每天的步數(shù)、距離和熱量。運(yùn)動(dòng)記錄模塊的流程圖如圖4-10所示。圖4-10運(yùn)動(dòng)記錄模塊流程圖數(shù)據(jù)庫(kù)設(shè)計(jì)針對(duì)用戶的使用情況和應(yīng)用的具體信息,設(shè)計(jì)相對(duì)應(yīng)的數(shù)據(jù)庫(kù)。本節(jié)主要是對(duì)效勞器的數(shù)據(jù)庫(kù)設(shè)計(jì),主要從兩個(gè)方面來(lái)分析,分別是數(shù)據(jù)庫(kù)分析和數(shù)據(jù)庫(kù)概念設(shè)計(jì)及表構(gòu)造。數(shù)據(jù)庫(kù)分析1.用戶的信息表包括數(shù)據(jù)項(xiàng):昵稱、身高、體重、性別和步長(zhǎng)。用戶實(shí)體-屬性圖如圖4-11所示。圖4-11用戶實(shí)體-屬性圖2.運(yùn)動(dòng)記錄信息表包括數(shù)據(jù)項(xiàng)有兩局部,一局部為軌跡查詢,另一局部為計(jì)步查詢。軌跡查詢表包括數(shù)據(jù)項(xiàng):歷史軌跡坐標(biāo);計(jì)步查詢表包括數(shù)據(jù)項(xiàng):步數(shù)、距離、熱量消耗,運(yùn)動(dòng)記錄實(shí)體-屬性圖如圖4-12所示。圖4-12運(yùn)動(dòng)記錄實(shí)體-屬性圖3.天氣狀況表包含數(shù)據(jù)項(xiàng)有:溫度、天氣、出行、運(yùn)動(dòng)。天氣狀況實(shí)體-屬性圖如圖4-13所示。圖4-13天氣狀況實(shí)體-屬性圖4.實(shí)體包括用戶個(gè)人信息、天氣狀況和運(yùn)動(dòng)記錄。用戶的運(yùn)動(dòng)信息是通過(guò)運(yùn)動(dòng)記錄顯示出來(lái)的,所以用戶、天氣狀況和運(yùn)動(dòng)記錄之間的關(guān)系是一對(duì)多的關(guān)系;用戶查看天氣狀況也是一對(duì)多的關(guān)系。數(shù)據(jù)庫(kù)總E-R圖如圖4-14所示。圖4-14數(shù)據(jù)庫(kù)E-R圖數(shù)據(jù)庫(kù)概念設(shè)計(jì)及表構(gòu)造用戶表包含的數(shù)據(jù)項(xiàng)有:昵稱name、身高h(yuǎn)eight、體重weight、性別sex和步長(zhǎng)steplong,如表4-1所示。表4-1用戶表字段名字段類型字段描述備注nameString昵稱不為空heightString身高不為空weightInt體重不為空sexInt性別不為空steplongInt步長(zhǎng)不為空運(yùn)動(dòng)記錄表包含的數(shù)據(jù)項(xiàng)有:步數(shù)step、距離distance、消耗的熱量calorie,歷史軌跡坐標(biāo)queryHistoryTrack,如表4-2所示。表4-2運(yùn)動(dòng)記錄表字段名字段類型字段描述備注stepInt步數(shù)不為空distanceInt距離不為空calorieFloat消耗的熱量不為空queryHistoryTrackDouble歷史軌跡坐標(biāo)不為空天氣狀況表包含的數(shù)據(jù)項(xiàng)有:溫度temperature、天氣weather、出行trap、運(yùn)動(dòng)sport,如表4-3所示。表4-3天氣狀況表字段名字段類型字段描述備注temperatureString溫度不為空weatherString天氣不為空trapString出行不為空sportString運(yùn)動(dòng)不為空系統(tǒng)實(shí)現(xiàn)計(jì)步模塊實(shí)現(xiàn)用戶進(jìn)入軟件界面,可以看到一個(gè)計(jì)步器,計(jì)步模塊的設(shè)計(jì)是通過(guò)定義一個(gè)ProgressBar來(lái)顯示當(dāng)前計(jì)步器的那個(gè)圓形滾動(dòng)條,通過(guò)傳感器在ProgressBar上累計(jì)步數(shù),然后在中間設(shè)置一個(gè)TextView,用來(lái)顯示用戶的運(yùn)動(dòng)步數(shù);再定義三個(gè)Button按鈕,一個(gè)是目標(biāo)步數(shù)按鈕,當(dāng)用戶點(diǎn)擊目標(biāo)按鈕時(shí),通過(guò)事先設(shè)置好的監(jiān)聽(tīng)出現(xiàn)一個(gè)Dialog消息提示框,需要輸入目標(biāo)步數(shù),之后輸入目標(biāo)步數(shù)選擇確定設(shè)置成功;一個(gè)是開(kāi)場(chǎng)計(jì)步按鈕,如果用戶沒(méi)有輸入個(gè)人信息,在設(shè)置完今日目標(biāo)步數(shù)后,點(diǎn)擊主界面的開(kāi)場(chǎng)計(jì)步按鈕就會(huì)彈出Toast,提醒用戶設(shè)置個(gè)人信息,當(dāng)用戶輸入完用戶信息之后即可開(kāi)場(chǎng)計(jì)步;一個(gè)是開(kāi)場(chǎng)計(jì)步按鈕,用戶再輸入用戶信息后,點(diǎn)擊按鈕即可開(kāi)場(chǎng)計(jì)步;另一個(gè)是我的軌跡按鈕,可以實(shí)現(xiàn)軌跡追蹤。同時(shí)在界面的下方,再次設(shè)置兩個(gè)TextView,可以將消耗的熱量和運(yùn)動(dòng)的距離顯示出來(lái)。具體代碼如下。flhprogressBar.setProgressBackgroundColor(0xFF7F8AA5);//設(shè)置自定義ProgressBar背景顏色;flhprogressBar.setMarkerProgress(1f);//設(shè)置進(jìn)度f(wàn)lhupdatemView();//更新視圖setflhMaxStep.setText("今日目標(biāo):"+flhtoday_step_max);//設(shè)置今日最大目標(biāo)finalIntentflhmintent=newIntent(flhMainActivity.this,flhStepService.class);//設(shè)置后臺(tái)跳轉(zhuǎn)flhstartflhStep.setOnClickListener(newView.OnClickListener(){//開(kāi)場(chǎng)計(jì)步按鈕監(jiān)聽(tīng)Override publicvoidonClick(Viewv){ if(flhisflhStart){//如果可以開(kāi)場(chǎng)flhstartStep.setflhText("開(kāi)場(chǎng)計(jì)步");//設(shè)置按鈕TextflhIsStart=false;//是否開(kāi)場(chǎng)標(biāo)記flhsaveStepinfo();//保存信息stopService(intent);//停頓后臺(tái)效勞 }else{ if(isflhflhAchieve()){//如果到達(dá)目標(biāo)flhstartStep.setText("開(kāi)場(chǎng)計(jì)步");//Toast提示您已到達(dá)今日目標(biāo)Toast.makeText(MainActivity.this,"你已到達(dá)今日目標(biāo)"Toast.LENGTH_SHORT).show(); }elseif(flhtoday_step_max==0){//如果沒(méi)有設(shè)置目標(biāo)步數(shù),會(huì)提示設(shè)置目標(biāo)步數(shù)Toast.makeText(MainActivity.this,"請(qǐng)?jiān)O(shè)置今日目標(biāo)數(shù)",Toast.LENGTH_SHORT).show(); }elseif(canStart=sp.getBoolean("issave",false)){ startStep.setText("停頓計(jì)步"); isStart=true; sThread=newStepThread(); sThread.start(); startService(intent); }else{ Toast.makeText(MainActivity.this,"設(shè)置信息后才能開(kāi)場(chǎng)計(jì)步哦", Toast.LENGTH_LONG).show(); } } } }); setStepMax.setOnClickListener(newView.OnClickListener(){//設(shè)置目標(biāo)監(jiān)聽(tīng)Override publicvoidonClick(Viewv){ showSetStepMaxDialog();//顯示對(duì)話框 } });計(jì)步界面如圖5-1所示。圖5-1計(jì)步界面圖軌跡追蹤模塊實(shí)現(xiàn)用戶在主界面點(diǎn)擊我的軌跡按鈕,即可進(jìn)入軌跡追蹤界面,此界面主要是通過(guò)百度鷹眼技術(shù)和四個(gè)Button按鈕實(shí)現(xiàn)的。在界面下部,有兩個(gè)按鈕,分別為軌跡追蹤和歷史軌跡,在右側(cè)有兩個(gè)按鈕,分別為開(kāi)場(chǎng)和停頓按鈕。用戶在運(yùn)動(dòng)時(shí)只需點(diǎn)擊開(kāi)場(chǎng)按鈕,即可實(shí)現(xiàn)軌跡追蹤,在用戶運(yùn)動(dòng)的時(shí)候,可以在地圖上畫(huà)出一條帶顏色的線條,當(dāng)用戶運(yùn)動(dòng)完成之后,只需點(diǎn)擊停頓按鈕,即可停頓軌跡追蹤。具體代碼如下。publicvoidonStart(){super.onStart();init();//初始化initListener();//初始化監(jiān)聽(tīng)器setInterval();//設(shè)置采集周期setRequestType();//設(shè)置請(qǐng)求協(xié)議類型}/***初始化*/privatevoidinit(){btnStartTrace=(Button)view.findViewById(R.id.btn_starttrace);btnStopTrace=(Button)view.findViewById(R.id.btn_stoptrace);btnOperator=(Button)view.findViewById(R.id.btn_operator);tvEntityName=(TextView)view.findViewById(R.id.tv_entityName);tvEntityName.setText("entityName:"+BaiduMainActivity.entityName+"");btnStartTrace.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){//TODOAuto-generatedmethodstubToast.makeText(getActivity(),"正在開(kāi)啟軌跡效勞,請(qǐng)稍候",Toast.LENGTH_LONG).show();startTrace();}});btnStopTrace.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){//TODOAuto-generatedmethodstubToast.makeText(getActivity(),"正在停頓軌跡效勞,請(qǐng)稍候",Toast.LENGTH_SHORT).show();stopTrace();}});btnOperator.setOnClickListener(newView.OnClickListener(){publicvoidonClick(Viewv){//TODOAuto-generatedmethodstubgeoFence=newGeofence(getActivity(),mInflater);if(geoFence.popupwindow!=null&&geoFence.popupwindow.isShowing()){geoFence.popupwindow.dismiss();return;}else{geoFence.initPopupWindowView();geoFence.popupwindow.showAsDropDown(v,0,5);}}});}軌跡追蹤界面如圖5-2所示。圖5-2軌跡追蹤界面圖音樂(lè)播放模塊實(shí)現(xiàn)本地音樂(lè)播放模塊具備一個(gè)簡(jiǎn)單的音樂(lè)播放器效果,能夠顯示出本地所存儲(chǔ)的音樂(lè)文件,實(shí)現(xiàn)音樂(lè)的播放、暫停和上下曲切換功能,這些功能是通過(guò)定義四個(gè)Button按鈕來(lái)實(shí)現(xiàn)的,同時(shí),音樂(lè)播放器還具有后臺(tái)播放效果,具體代碼如下。privatevoidflhplayNewMusic(intflhflhnp){startService(flhintent);//開(kāi)啟音樂(lè)效勞if(flhnp==1){//標(biāo)記++flhcurrentItem;//下一首音樂(lè) }elseif(flhnp==2){--flhcurrentItem;//上一首音樂(lè) }isflhPlaying=true;//正在播放flhupdateButtonBg(1);//更新按鈕背景flhupdateitem();//更新歌曲條目flhmusicService.playNewMusic(flhlist.get(flhcurrentItem).getPath());//開(kāi)啟新音樂(lè)flhupdateProgress(1);//更新進(jìn)度標(biāo)記flhstartListenMusic();//開(kāi)場(chǎng)播放監(jiān)聽(tīng) }本地音樂(lè)播放界面如圖5-3所示。圖5-3本地音樂(lè)播放界面圖鬧鈴模塊實(shí)現(xiàn)鬧鐘可以分為三個(gè)模塊,其中頁(yè)面正上方是一個(gè)虛擬時(shí)鐘,虛擬時(shí)鐘的顯示是通過(guò)AnalogClock控件來(lái)實(shí)現(xiàn)的;修改鬧鐘的時(shí)間那么是通過(guò)DigitalClock控件以對(duì)話框的形式顯示的;鬧鐘DigitalClock的開(kāi)啟是通過(guò)Switch開(kāi)關(guān)控件來(lái)實(shí)現(xiàn)的。鈴聲為運(yùn)動(dòng)軟件自帶鈴聲,當(dāng)?shù)紧[鐘時(shí)間時(shí),鬧鐘會(huì)彈出對(duì)話框,實(shí)現(xiàn)鬧鐘提醒。具體代碼如下。privatevoidflhshowDialog(){newAlertDialog.Builder(flhShowAlarmActivity.this).setTitle("鬧鐘").setMessage("運(yùn)動(dòng)時(shí)間到了").setPositiveButton("確定",newOnClickListener(){Override publicvoidonClick(DialogInterfaceflhdialog,intflhwhich){mflhPlayer.stop();//停頓ShowAlarmActivity.this.finish(); System.exit(0);//退出 .myPid());//關(guān)閉進(jìn)程 } }).show(); }鬧鐘界面如圖5-4所示圖5-4鬧鐘界面圖天氣預(yù)報(bào)模塊實(shí)現(xiàn)天氣模塊的信息顯示可以分為三局部,一局部顯示天氣和氣溫,一局部顯示最近四天的天氣狀況,最后一塊顯示其他信息,這些都是通過(guò)TextView在界面顯示出來(lái)的,然后通過(guò)調(diào)用中國(guó)天氣網(wǎng)的接口來(lái)獲取天氣預(yù)報(bào)的數(shù)據(jù),如天氣、溫度、是否適宜旅游、運(yùn)動(dòng)等,并將這些信息傳遞到textView并在上面顯示出來(lái),具體代碼如下。publicvoidflhqueryFromServer(){ Stringflhaddress="api.map.baidu./telematics/v3/weather"location=" +X +"," +Y +"&output=json&ak=CEfe939d88f782787f9c234c1bb7b584";//天氣信息接口地址RequestQueuemflhQueue=Volley.newRequestQueue(getApplicationContext());//請(qǐng)求隊(duì)列StringRequestflhrequest=newStringRequest(flhaddress, newResponse.Listener<String>(){ Override publicvoidonResponse(Stringflhresponse){//回調(diào)相應(yīng)Gsonflhgson=newGson();//Gson finalStatusflhstatus=flhgson.fromJson(flhresponse, Status.class); DataSupport.deleteAll(flhWeatherInfo.class);//保存刪除之前的天氣信息DataSupport.deleteAll(flhWeatherResult.class); DataSupport.deleteAll(flhWeatherIndex.class); if(!weatherDB.saveStatus(status)){//保存return; } runOnUiThread(newRunnable(){ Override publicvoidrun(){ showWeather(flhstatus); } }); } },newResponse.ErrorListener(){//請(qǐng)求失敗Override publicvoidonErrorResponse(VolleyErrorflhvolleyError){ runOnUiThread(newRunnable(){ Override publicvoidrun(){ Toast.makeText(getApplicationContext(), "加載數(shù)據(jù)失??!",Toast.LENGTH_SHORT) .show(); } }); } }); mQueue.add(flhrequest); }天氣預(yù)報(bào)界面如圖5-5所示。圖5-5天氣預(yù)報(bào)界面圖平臺(tái)分享模塊實(shí)現(xiàn)在分享運(yùn)動(dòng)信息的時(shí)候,通過(guò)菜單的分享功能,將需要傳遞的運(yùn)動(dòng)信息通過(guò)調(diào)用手機(jī)上安裝的第三方社交軟件,如QQ、貼吧、微博、微信等聊天通訊軟件發(fā)送給好友。具體代碼如下。flhintent=newIntent(Intent.ACTION_SEND);//Intent信息發(fā)送flhintent.setType("image/*");//設(shè)置類型flhintent.putExtra(Intent.EXTRA_SUBJECT,"分享");//傳遞參數(shù)flhintent.putExtra(Intent.EXTRA_TEXT,"我今天走了"+StepDetector.CURRENT_SETP+"步,和我一起運(yùn)動(dòng)吧,愛(ài)運(yùn)動(dòng)計(jì)步器");flhintent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//Activity壓棧類型startActivity(Intent.createChooser(flhintent,"愛(ài)運(yùn)動(dòng)計(jì)步器"));//指定標(biāo)題平臺(tái)分享界面如圖5-6所示。圖5-6平臺(tái)分享界面圖更換主題模塊實(shí)現(xiàn)更換主題通過(guò)Imageview控件將本地所存儲(chǔ)的圖片以列表的方式顯示,并對(duì)控件設(shè)置一個(gè)監(jiān)聽(tīng),當(dāng)用戶選取其中一個(gè)主題并點(diǎn)擊,就能更換成用戶所選擇的主題。具體代碼如下。Override publicvoidonClick(Viewflhv){ switch(flhv.getId()){ caseR.id.flhimageView1:flhsp.edit().putInt("flhmainback",flhimageIg[0]).mit();//設(shè)置背景圖break; caseR.id.flhimageView2:flhsp.edit().putInt("flhmainback",flhimageIg[1]).mit(); break; caseR.id.flhimageView3:flhsp.edit().putInt("flhmainback",flhimageIg[2]).mit(); break; caseR.id.flhimageView4:flhsp.edit().putInt("flhmainback",flhimageIg[3]).mit(); break; caseR.id.flhimageView5:flhsp.edit().putInt("flhmainback",flhimageIg[4]).mit(); break; caseR.id.flhimageView6:flhsp.edit().putInt("flhmainback",flhimageIg[5]).mit(); break; caseR.id.flhimageView7:flhsp.edit().putInt("mainback",flhimageIg[6]).mit(); break; caseR.id.imageView8:flhsp.edit().putInt("flhmainback",flhimageIg[7]).mit(); break; caseR.id.imageView9:flhsp.edit().putInt("flhmainback",flhimageIg[8]).mit(); break; } Toast.makeText(this,"更換背景成功",Toast.LENGTH_SHORT).show(); finish(); }更換主題界面如圖5-7所示。圖5-7更換主題界面圖運(yùn)動(dòng)記錄模塊實(shí)現(xiàn)運(yùn)動(dòng)模塊分為兩局部,一局部是歷史軌跡查詢,另一局部是步數(shù)查詢。查詢歷史軌跡界面有一個(gè)日期Button按鈕,用戶點(diǎn)擊按鈕之后,會(huì)彈出一個(gè)選擇日期的DatePickerDialog控件,在控件中能夠選擇任何一個(gè)有運(yùn)動(dòng)記錄的歷史日期并在地圖中將運(yùn)動(dòng)軌跡顯示出來(lái)。歷史軌跡查詢代碼如下。/***查詢歷史軌跡*/privatevoidflhqueryHistoryTrack(){//entity標(biāo)識(shí)StringflhentityName=flhBaiduMainActivity.entityName;//是否返回精簡(jiǎn)的結(jié)果〔0:否,1:是〕intflhsimpleReturn=0;//開(kāi)場(chǎng)時(shí)間if(flhstartTime==0){flhstartTime=(int)(System.currentTimeMillis()/1000-12*60*60);}if(flhendTime==0){flhendTime=(int)(System.currentTimeMillis()/1000);}//分頁(yè)大小intflhpageSize=1000;//分頁(yè)索引intflhpageIndex=1;BaiduMainActivity.client.queryHistoryTrack(flhBaiduMainActivity.serviceId,flhentityName,flhsimpleReturn,flhstartTime,flhendTime,flhpageSize,flhpageIndex,flhtrackListener);}歷史軌跡查詢?nèi)鐖D5-8所示。圖5-8歷史軌跡查詢界面圖在計(jì)步器運(yùn)動(dòng)信息統(tǒng)計(jì)界面,運(yùn)動(dòng)信息的顯示是柱狀圖顯示的。當(dāng)用戶選擇步數(shù)、距離、消耗的熱量其中一項(xiàng)時(shí),從本地?cái)?shù)據(jù)庫(kù)中把存儲(chǔ)的信息提取出來(lái),然后顯示在界面上。步數(shù)查詢?cè)敿?xì)代碼如下。*paramtab privatevoidflhupdateView(intflhtab){ intflhselect_color=Color.rgb(113,163,24);//設(shè)置被選中字體的顏色intflhnormal_color=Color.rgb(255,255,255);//設(shè)置未被選中字體時(shí)的顏色switch(flhtab){ case1:flhtitle_step.setTextColor(flhselect_color);//設(shè)置步數(shù)字體flhtitle_heat.setTextColor(flhnormal_color);//設(shè)置熱量字體flhtitle_distance.setTextColor(flhnormal_color);//設(shè)置距離字體mflhChart_step.setVisibility(View.VISIBLE);//顯示步數(shù)mflhChart_heat.setVisibility(View.GONE);//隱藏?zé)崃縨flhChar_distance.setVisibility(View.GONE);//隱藏距離break;case2:flhtitle_step.setTextColor(flhnormal_color);//步數(shù)字體設(shè)置flhtitle_heat.setTextColor(flhselect_color);//熱量字體設(shè)置flhtitle_distance.setTextColor(flhnormal_color);//距離字體設(shè)置mflhChart_step.setVisibility(View.GONE);//隱藏步數(shù)mflhChart_heat.setVisibility(View.VISIBLE);//顯示熱量mflhChar_distance.setVisibility(View.GONE);//隱藏距離break;case3:flhtitle_step.setTextColor(Color.rgb(255,255,255));//設(shè)置步數(shù)字體flhtitle_heat.setTextColor(Color.rgb(255,255,255));//設(shè)置熱量字體flhtitle_distance.setTextColor(flhselect_color);//設(shè)置距離字體mflhCha

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論