孫寒飛 蒲婧
摘要:隨著社會的發(fā)展體育在滿足人民日益增長的美好生活需要方面發(fā)揮著不可替代的作用。全民健身已然到來,鍛煉成為了我們的一種生活方式,然而據(jù)我們在大學(xué)中調(diào)研情況來看,大多數(shù)學(xué)生身體素質(zhì)并不達(dá)標(biāo)。導(dǎo)致這種情況原因有很多,但其中一個(gè)重要原因是沒有一個(gè)科學(xué)的運(yùn)動計(jì)劃的制定。因此我們制作了這樣一個(gè)APP。本文研究的運(yùn)動達(dá)標(biāo)APP主要包括登錄注冊、我的目標(biāo)、社區(qū)、教學(xué)、運(yùn)動排行榜、我的等功能模塊,主要面向大學(xué)生用戶,支持運(yùn)動目標(biāo)的制定,運(yùn)動社區(qū)交流,健身教學(xué)視頻的學(xué)習(xí),運(yùn)動排行榜點(diǎn)贊,及個(gè)人信息的修改等功能。本文是基于android操作系統(tǒng),開發(fā)出一款android運(yùn)動達(dá)標(biāo)客戶端應(yīng)用程序,通過Eclipse,Apache Tomcat9.0,Mysql,三者共同作用開發(fā)出的android客戶端手機(jī)軟件。此APP使用的是面向?qū)ο蟮恼Z言java編譯語言,并采用了Spring MVC框架。開發(fā)此軟件會給同學(xué)們制定一個(gè)合理的標(biāo)準(zhǔn),使學(xué)生不會感到厭倦的情況下從而能堅(jiān)持每天的運(yùn)動,提高學(xué)生的身體素質(zhì),保持良好的生活狀態(tài),因而我們設(shè)計(jì)此APP來實(shí)現(xiàn)這一構(gòu)想。
關(guān)鍵詞:Android MVC;運(yùn)動達(dá)標(biāo);交流平臺
2019年9月17日國務(wù)院辦公廳印發(fā)《關(guān)于促進(jìn)全民健身和體育消費(fèi)推動體育產(chǎn)業(yè)高質(zhì)量發(fā)展的意見》。其中指出,體育產(chǎn)業(yè)在滿足人民日益增長的美好生活需要方面發(fā)揮著不可替代的作用。
據(jù)我們在本校和其他院校的學(xué)生調(diào)研的情況來看,我們學(xué)生大多的身體素質(zhì)都不達(dá)標(biāo),這其中與手機(jī)有關(guān)。許多人的大學(xué)是頹廢的,無聊而刷“朋友圈”“看點(diǎn)”,追劇。使人們久坐不運(yùn)動,從而使人們的身體素質(zhì)逐漸下降。形成這一不良現(xiàn)象的原因一個(gè)因素就是我們的運(yùn)動標(biāo)準(zhǔn)達(dá)標(biāo)評定制度較為單一。其中體育課程教學(xué)缺乏一體化設(shè)計(jì),導(dǎo)致學(xué)生運(yùn)動技能水平低,直接影響學(xué)生對體育鍛煉的參與熱情,影響著體育鍛煉習(xí)慣的養(yǎng)成。不能以多樣化的形式較為綜合的檢測學(xué)生運(yùn)動是否達(dá)標(biāo)。另一因素就是由于多樣的原因致使大多數(shù)學(xué)生并沒有掌握一兩項(xiàng)運(yùn)動技能,致使人們的運(yùn)動積極性并不高。僅僅靠體測并不能提高人們的積極性。同時(shí),自律性差。學(xué)院強(qiáng)制要求也不能從源頭讓人們提高積極性。如果我們換一種方式,比如每天跑5圈,走10000步等要求堅(jiān)持一學(xué)期就不用體測,是不是可以換種方式提高人們的積極性呢?我們正是缺少一個(gè)這樣的APP。
開發(fā)此軟件會給同學(xué)們制定一個(gè)合理的標(biāo)準(zhǔn),使學(xué)生不會感到厭倦的情況下從而能堅(jiān)持每天的運(yùn)動,提高學(xué)生的身體素質(zhì),保持良好的生活狀態(tài)。如果用戶到瀏覽器端進(jìn)行搜索,會受到網(wǎng)速的影響,相對與客戶端推送來說,手機(jī)客戶端簡化了煩瑣的搜索過程,將信息直接打包呈遞給用戶,滿足了學(xué)生的需求,給用戶帶來了便捷和更好的體驗(yàn)。如果人們每天能堅(jiān)持運(yùn)動就能使人們走出宿舍,使人們自律,能控制好學(xué)習(xí)和娛樂的度,使老師上課更加輕松,會有更好的學(xué)風(fēng),從而使大學(xué)生活更加精彩。
1 需求分析
1.1 需求提出
根據(jù)用戶對軟件需求,軟件主要目的是:以手機(jī)客戶端的形式建立一套完整的個(gè)人日常運(yùn)動評價(jià)體系,該軟件會結(jié)合不同學(xué)生的課表作息時(shí)間來制定一個(gè)合理的體系進(jìn)而建立一個(gè)每日目標(biāo),并通過手機(jī)檢測使人們知道自己一天的運(yùn)動量,以及是否達(dá)標(biāo)。同時(shí)提供相關(guān)運(yùn)動的教學(xué)視頻。主要功能包括:每日目標(biāo)、社區(qū)、教學(xué)、運(yùn)動排行榜、我的。
1.2 需求描述
1.2.1 功能描述
每日目標(biāo)功能主要是對學(xué)生進(jìn)行私人定制每日運(yùn)動量的目標(biāo)并檢測學(xué)生的運(yùn)動是否達(dá)標(biāo);教學(xué)功能為運(yùn)動者提供教學(xué)視頻;社區(qū)功能中人們能發(fā)一些運(yùn)動有趣的帖子,為運(yùn)動者們提供交流;運(yùn)動排行榜功能主要是顯示今天好友的運(yùn)動量排行榜,可以互相點(diǎn)贊等;我的功能修改個(gè)人信息。
1.2.2 性能描述
該軟件占用的內(nèi)存較小,能夠在絕大多數(shù)Android的手機(jī)中流暢運(yùn)行兼容性好,對Ram需求較小,會有一定的延遲,但基本可以保證流暢運(yùn)行。
1.2.3 數(shù)據(jù)描述
此APP的數(shù)據(jù)有多種形式,其中數(shù)據(jù)主要包括:視頻、PPT、用戶信息、其他拓展運(yùn)動知識資料。各數(shù)據(jù)類型建立相應(yīng)數(shù)據(jù)子庫,存放于數(shù)據(jù)庫。
1.3 需求評審
1.3.1 確定系統(tǒng)邊界
整個(gè)軟件只針對大學(xué)的各專業(yè)。輸出信息類型只包括視頻和文本。軟件提供需求提出的功能,而具體的功能需要用戶來選擇。
1.3.2 將來用戶提出的需求
根據(jù)用戶將來可能提出的需求,在設(shè)計(jì)軟件時(shí),增加其功能實(shí)現(xiàn)接口,以備將來增添新功能時(shí)使用。
1.4 軟件定位及功能
1.4.1 軟件定位
核心用戶:(1)不愛運(yùn)動長期在宿舍的大學(xué)生。(2)所有對運(yùn)動的愛好者。
1.4.2 核心思想
(1)改變學(xué)生運(yùn)動標(biāo)準(zhǔn)評定方法。(2)為學(xué)生制訂一個(gè)合理的運(yùn)動計(jì)劃,讓大學(xué)生能夠了解自己一天的運(yùn)動量。換一種方式來促使學(xué)生們運(yùn)動,提高學(xué)生們身體素質(zhì)自律生活。(3)讓大學(xué)生能夠離開宿舍放下手機(jī)。
2 軟件的設(shè)計(jì)
2.1 核心功能
作為一個(gè)檢測軟件通過每日步數(shù),如跑步、自行車、趴樓梯等方式來檢測學(xué)生們每日的運(yùn)動是否達(dá)標(biāo),改變過去只是通過體測來檢測學(xué)生身體素質(zhì)的單一的學(xué)生素質(zhì)評定方法。
2.2 輔助功能
(1)提供社區(qū)功能,使人們能夠分享和交流運(yùn)動信息。
(2)為運(yùn)動者們提供正確的教學(xué)方法。
(3)顯示大家每日的運(yùn)動量。
該應(yīng)用主要分為五大模塊,分為我的目標(biāo)、社區(qū)、教學(xué)、運(yùn)動排行榜、我的。采用MVC的方式進(jìn)行開發(fā),采用五層架構(gòu)方式進(jìn)行布局。
2.3 客戶端設(shè)計(jì)
該應(yīng)用主要分為六大模塊,分為注冊與登錄,我的目標(biāo)、社區(qū)、教學(xué)、運(yùn)動排行榜、我的。
(1)注冊與登錄。分為可管理員登錄和普通用戶登錄兩個(gè)模塊用戶登錄,對用戶注冊的用戶名的要求,不同的用戶要求有不同的用戶名。(以學(xué)號作為入口,以自己的手機(jī)號碼進(jìn)行綁定來確定一個(gè)人)
(2)我的目標(biāo)。以多種形式并進(jìn)行綜合的方式來檢測學(xué)生每日的運(yùn)動量是否達(dá)標(biāo),其中包括步數(shù)、跑步、騎行、俯臥撐、平板支撐、和其他等形式來檢測每日的運(yùn)動量。而達(dá)標(biāo)量是根據(jù)每位學(xué)生體測的成績,以及不同的課表和作息時(shí)間并結(jié)合國際鍛煉時(shí)間標(biāo)準(zhǔn)而制定的合理的運(yùn)動量,以及合理的運(yùn)動時(shí)間。從而改變單一的運(yùn)動達(dá)標(biāo)檢測方式。
(3)社區(qū)。包含兩個(gè)大的功能模塊,一個(gè)是發(fā)帖功能,其中包括熱門、我的關(guān)注。另一個(gè)是交流功能,其中包括朋友和消息兩個(gè)子模塊。此模塊主要為了提供分享功能。可以給大家“秀”出今天的運(yùn)動量,同時(shí)可以記錄生活的作用,而且還可以為運(yùn)動者提供交流的一個(gè)平臺。
(4)教學(xué)。模塊包括三個(gè)子模塊,分別為計(jì)劃、視頻、為你推薦。計(jì)劃是根據(jù)每位學(xué)生不同的課表和作息時(shí)間制定的合理的鍛煉時(shí)間,以及合理的運(yùn)動量,使每位學(xué)生不會對運(yùn)動感到太大的壓力。而每個(gè)人可以在計(jì)劃中合理地更改自己的運(yùn)動時(shí)間等。視頻為你提供你想學(xué)的正規(guī)的教學(xué)視頻,為你推薦則根據(jù)你的喜好來推薦相關(guān)的文章、帖子、視頻等內(nèi)容。
(5)運(yùn)動排行榜。模塊顯示我的我的好友的步數(shù)排行,可以互相點(diǎn)贊,可以點(diǎn)開我的主頁顯示近幾天的運(yùn)動數(shù)據(jù),以及設(shè)置背景的功能,可以給每天運(yùn)動的人互相激勵(lì)。
(6)我的。模塊由個(gè)人信息、運(yùn)動數(shù)據(jù)、我的收藏三個(gè)部分組成。個(gè)人信息中有注冊時(shí)填寫的個(gè)人信息、愛好、運(yùn)動信息。也可以之后進(jìn)行修改個(gè)人信息,上傳頭像,更換背景等;目標(biāo)可以制定自己的目標(biāo)。關(guān)注是顯示自己關(guān)注的和收藏的信息。
3 項(xiàng)目實(shí)現(xiàn)
3.1 總體設(shè)計(jì)
(1)Android客戶端采使用Toobar+DrawerLayout+NavigationView+抽屜式導(dǎo)航,采用沉浸式狀態(tài)欄的效果。
(2)服務(wù)器采用ViewPager+TabLayout+Fragment。通過Retrofit、RxJava以及OkHttp的結(jié)合。采用RxJava和Retroifit結(jié)合的方式,返回的數(shù)據(jù)json格式。
3.2 系統(tǒng)組件和開源組件
最外層布局是DrawerLayout,里面嵌套了兩個(gè)布局,一層是FrameLayout,其中通過include進(jìn)來的主界面內(nèi)容,第二層是側(cè)滑的內(nèi)容,即Navigation View。
主界面布局先是Coordinator Layout嵌套了App BarLayout以及ViewPager。AppBarLayout中嵌套了ToolBar以及TabLayout。在Activity中讓ViewPager和TabLayout關(guān)聯(lián),實(shí)現(xiàn)ViewPager頁面滑動時(shí)對應(yīng)標(biāo)簽的聯(lián)動。
(1)getItemViewType()方法判斷不同的布局,返回判斷結(jié)果。
(2)創(chuàng)建不同的ViewHolder類,針對不同的布局類型,進(jìn)行對應(yīng)的布局內(nèi)控件的初始化。
(3)onCreateViewHolder()方法根據(jù)第一步的判斷結(jié)果,得到viewType,根據(jù)viewType值,實(shí)例化不同類型的ViewHolder對象。
(4)onBindViewHolder()方法判斷holder所屬類型,進(jìn)行相對應(yīng)類型的布局內(nèi)控件內(nèi)容的賦值。
3.3 項(xiàng)目實(shí)現(xiàn)及相關(guān)步驟
(1)前期需求規(guī)劃與信息。首先,制定出一個(gè)完整的需求文檔,功能文檔,流程圖,時(shí)序圖。
(2)交互設(shè)計(jì)、UI設(shè)計(jì)。本項(xiàng)目需要設(shè)計(jì)出基本且完善的原型圖和APP基礎(chǔ)的交互設(shè)計(jì)效果之后,再根據(jù)這些設(shè)計(jì)出完整的UI界面進(jìn)行切圖,并做自適應(yīng)的素材圖片需要做點(diǎn)patch。這里還需要px,pt和dp之間的換算,屏幕密度的換算和相互之間的系數(shù),以便Android app應(yīng)用能完美適應(yīng)不同分辨率設(shè)備。用到Axure等交互工具的使用,UI設(shè)計(jì)需要Photoshop和Illustrator等操作。
(3)本文使用ADT之類的開發(fā)環(huán)境進(jìn)行APP軟件開發(fā),使用的是java語言,以及android環(huán)境和機(jī)制。
(4)本文用到服務(wù)器,掌握WebService相關(guān)知識和開發(fā)語言,用到了ASP.Net、PHP、JSP等。
(5)建立數(shù)據(jù)庫。軟件以SQL server數(shù)據(jù)庫為數(shù)據(jù)支撐,主要數(shù)據(jù)庫包括運(yùn)動視頻庫、運(yùn)動資料庫、運(yùn)動信息庫、用戶注冊信息庫等。最后通過應(yīng)用與數(shù)據(jù)庫鏈接構(gòu)成完整系統(tǒng)。
(6)本項(xiàng)目的開發(fā),某些功能需要做算法。
(7)API接口開發(fā),本文使用自行開發(fā)API的能力以及調(diào)用第三方API的經(jīng)驗(yàn)。
(8)TCP/IP,socket等網(wǎng)絡(luò)協(xié)議和相關(guān)知識。
(9)APP發(fā)布的流程,真機(jī)調(diào)試技巧,證書,打包,上架,一個(gè)完整的Android手機(jī)APP才能安全上架。
4 總結(jié)
隨著互聯(lián)網(wǎng)的發(fā)展,已經(jīng)進(jìn)入萬物互聯(lián)的時(shí)代。互聯(lián)網(wǎng)+運(yùn)動將會越來越普及。科技方便了我們的同時(shí),也是我們更加懶惰?;贏ndroid運(yùn)動達(dá)標(biāo)APP卻能夠緩解這一現(xiàn)象。在我們通過個(gè)性化的設(shè)計(jì)為用戶制定了適合用戶的運(yùn)動計(jì)劃方案。因此能夠達(dá)到引導(dǎo)學(xué)生正確運(yùn)動的目的。從而達(dá)到循序漸進(jìn)的適量運(yùn)動,不斷提高我們的身體素質(zhì)。
參考文獻(xiàn):
[1]李艷國.基于Android的移動終端在智能圖書館中的應(yīng)用[J].科技情報(bào)開發(fā)與經(jīng)濟(jì),2012,22(15):23-25.
[2]薩師煊,王珊.數(shù)據(jù)庫系統(tǒng)概論[M].北京:高等教育出版社,1991.
[3]夏幫貴.基于Android平臺的圖書館服務(wù)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代圖書情報(bào)技術(shù),201l(6):85-89.
[4]百度文庫.Android[EB/OL].[2011-03-01].http://baike.baidu.com/view/1241829.htm.
[5]DUBOISP.MySQL網(wǎng)絡(luò)數(shù)據(jù)庫指南[M].北京:機(jī)械工業(yè)出版社,2000.
項(xiàng)目:西北民族大學(xué)國家級大學(xué)生創(chuàng)新創(chuàng)業(yè)訓(xùn)練計(jì)劃資助項(xiàng)目(項(xiàng)目編號:202010742063)
作者簡介:孫寒飛(1998— ),男,漢族,河北保定人,本科,現(xiàn)就讀于西北民族大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院軟件工程專業(yè),研究方向:軟件工程;蒲婧(1999— ),女,苗族,云南紅河人,本科,現(xiàn)就讀于西北民族大學(xué)數(shù)學(xué)與計(jì)算機(jī)科學(xué)學(xué)院軟件工程專業(yè),研究方向:軟件工程。
指導(dǎo)老師:王書文。