漆世錢
(武警海警學院 電子技術系, 浙江 寧波 315801)
在深化國防和軍隊改革的新時期,黨在新形勢下的強軍目標要求軍隊院校培養出素質好、能力強、質量高的新時期革命軍人,真正做到“拉得出,打得贏”。對于軍校學員來說, 軍事訓練是部隊一日生活的重要部分,是部隊戰斗力的保證,是軍校人才培養的重要內容, 訓練的科學性和可控性決定了訓練的效益[1]。但是目前而言,沒有一個系統的訓練計劃和科學的訓練方法,僅靠學員自己摸索很難提高訓練效率,提高訓練成績,基于Android平臺的軍校體能訓練指導APP應運而生。該設計針對軍校學員體能達標訓練以及需求,深入探討了如何利用Android平臺的應用開發框架,使用Java編程技術,具體實現訓練管理、體能達標訓練、訓練視頻播放等主要功能的原理和方法[2]。
軍校學員體能訓練指導App以我院學員軍事基礎體能訓練為研究對象, 對學員在4年學習期間的軍事體能訓練時間、次數、成績等數據進行全面記錄與分析,針對軍事基礎體能訓練不同影響因素, 建立對應訓練項目指標體系, 實現學員軍事基礎體能訓練成績的定量和定性分析, 學員針對存在的訓練問題及時進行自我調整, 實現對體能訓練的科學指導。
系統分為兩大功能模塊——登錄模塊和主模塊,主模塊又分為三個子模塊,分別是訓練模塊、達標模塊和個人信息模塊。具體總體功能結構圖如圖1所示。

圖1 總體功能結構圖
(1) 登錄模塊
學員注冊填寫用戶名、密碼和手機號,便于進行身份驗證,注冊完成后直接跳轉至個人資料頁面,填寫相關資料;登錄時填寫用戶名和密碼,進行身份驗證后可以登錄軟件系統;學員在忘記密碼的情況下可以點擊忘記密碼,向注冊時填寫的手機號發送短信提示密碼。
(2) 訓練模塊
在訓練中,不但能對訓練課程查詢,而且實現了推薦課程、分類查看、放訓練指導視頻的功能,還可以統計訓練時長、訓練天數、訓練次數和累計消耗等。
(3) 達標模塊
在選擇項目功能中,耐力類項目根據性別不同有3 km和5 km兩種選擇,靈活類有組合練習和立位體前屈兩個項目,力量類則是要在引體向上、杠端臂屈仰臥起坐、立定跳遠和深蹲起立五項中選擇三項進行考核,爆發類有100 m跑和5×10往返跑兩個項目可供選擇;學員通過自行錄入成績,根據性別判定當前成績是否達標;對于成績不達標的項目,推薦相應訓練,根據BMI值推薦相關訓練,有目的地加強相應部位的鍛煉。
(4) 設置模塊
在個人資料模塊,學員可以對自己的健身目標、健身基礎以及身高體重等項目進行修改,以動態地調整相關訓練計劃,可以重新設定新密碼,還能就使用體驗向管理員提供相關意見和建議,并為軟件打分,有利于及時掌握用戶需求變化,后期不斷調整和完善軟件的功能。
系統在Android平臺的應用框架下開發,結合SQLite數據庫和Java編程語言,利用優酷云作為視頻服務器。業務流程包括從用戶注冊、登陸、成績錄入到訓練分析、訓練指導和結束訓練等部分, 如圖2所示。

圖2 系統業務流程圖
在初始化的訓練模塊設計中,軟件從數據庫guest2表中讀取用戶昵稱并設置到textview中,然后從數據庫guest3表中讀取用戶訓練的時長、完成的訓練次數、累計訓練的天數和累計消耗。如果是學員第一次使用,初始化時長、次數、天數、消耗在數據庫中的值均為0,八項訓練字段的值也均為空值,所以在初始化時,訓練模塊主界面中的值都為0,且listview中為空,訓練模塊主界面如圖3所示。

圖3 訓練模塊主界面
在此界面中,首先利用SQLiteDatabase類中的rawQuery(String,Object)的方法,將sqlite語句存到String型變量中,并通過第一個參數傳入函數,再將sqlite語句中需要傳入的參數,存儲在Object型變量中,將這些數據采用Cursor指針進行讀取;然后利用TextView的settext(String)的方法,將數據庫中讀出的數值附到每一個TextView中;最后在listview中再調用setOnItemClickListener( )方法[3],為listview中每個元素設置監聽,將被點擊元素的textview通過getText( ).toString( )方法獲取其中的String值,存放于全局變量Name.kecheng中備用。
主模塊上控件的數值反映數據庫guest3表中數據的變化,用戶也可以通過界面上的值來了解自己訓練的時長和消耗,從而使用戶養成訓練的習慣,從每天的點滴時間開始訓練,完成日常訓練積累,達到促進訓練的目的。
選擇訓練模塊主要功能分為關鍵字檢索、推薦訓練和分類查看,都是采用了SQLiteDatabase類中的rawQuery(String,Object)的方法將數據庫中的數據按照各種不同的需求讀取出來,并初始化到listview中用于顯示,選擇訓練界面如圖4所示。

圖4 選擇訓練界面
通過各種不同的數據庫檢索方式,根據每個學員不同的身體條件,從而檢索出不同的訓練課程供學員選擇,滿足每個學員實際的需求,達到因人施訓[4-5]。
參訓模塊用于訓練詳細內容的查詢,并選擇是否參加訓練,將訓練的概要信息反映在訓練主模塊的listview中,由于訓練非常多樣,每有一個界面就定義一個布局文件,所以參加訓練模塊的界面也有很多種[6]。參加訓練界面如圖5所示。

圖5 參加訓練界面
在參加訓練模塊中,將事先儲存在數據庫表中的訓練數據從數據庫中讀取出來,并初始化到軟件界面上的控件中[7]。將圖片都存放于drawable文件中,讓eclipse在項目文件包的R文件中自動生成8位16進制數用于標識不同的文件,然后軟件在參加訓練模塊中通過Class
開始訓練模塊和參訓模塊布局文件大同小異,初始化過程也一樣,只不過在開始訓練模塊中,點擊開始訓練后,系統會將學員所選擇的課程通過rawQuery的方法存儲到guest3數據表中,方便在訓練主模塊中進行讀取[8-9]。開始訓練模塊中的退出訓練按鈕也是通過rawQuery的方法將選擇的課程從guest3表中刪除,從而達到課程增減的功能。開始訓練界面如圖6所示。

圖6 開始訓練界面
在點擊開始訓練按鈕時,會通過Date類的getTime()方法來獲取當前的時間戳,然后將獲得的long型數據存儲在Bundle的對象中,在Intent進行界面跳轉的同時,將數據傳遞到下一個界面。
訓練視頻播放模塊整體為一個WebView負責播放訓練視頻,用戶可以在觀看訓練視頻的同時,完成指定的訓練動作,從而達到訓練指導的目的。視頻播放界面如圖7所示。

圖7 訓練視頻播放界面
該模塊采用優酷云作為視頻服務器,首先在優酷云注冊賬號,獲得獨有的client_id;接著,將事先制作好的視頻素材通過網絡上傳到優酷個人的視頻空間;然后獲取到每個視頻所獨有的Vid;最后使用WebView控件啟動JavaScript腳本的方式,在系統中調用優酷視頻播放器來播放網絡視頻。在點擊結束播放的按鈕后,軟件會記錄下當前的時間戳,和從上個界面中傳遞過來的時間戳的相減,得到本次訓練時長的毫秒數,將這個得到的數值除以1 000再除以60可以得到本次訓練的時間,然后再通過一系列算法得出本次訓練的消耗,最后將這些數據存入數據庫內,一次完整的訓練就完成了。
達標模塊主界面如圖8所示。

(a) 達標界面
采用RelativeLayout和TableLayout相結合的方式布局,各類顯示默認選項,如圖8(a)所示。點擊各個項目按鈕,輸入自己當前的體能測試成績,若成績合格,不會推薦訓練課程,但是可以查看課程添加訓練,如圖8(b)所示;若成績不合格,軟件會智能推薦相關訓練課程,如圖8(c)所示,點擊添加訓練后,則會跳轉至訓練模塊界面[10]。以“100米跑”項目為例,如果“100米跑”不合格,則應該加強腿部的訓練,從數據庫的表中選擇“buwei”為“腿部”的課程,推薦給用戶。
基于Android平臺的軍校學員體能訓練指導APP占用空間小,運行速度快,界面簡潔明了、直觀大方,易于用戶操作,能夠判斷學員訓練科目是否達標,并推薦相關訓練;還可以實現訓練統計,通過數據促進用戶進行體能訓練;軟件可維護性好,用戶可以通過意見反饋功能和開發者交流。該App是針對軍校學員的體能達標而設計的訓練指導軟件,適用人群確定,針對性強。使用該軟件有利于提高軍校學員的體能達標成績,對于培養體魄健全的初級指揮員具有重要的現實意義。