申圣兵 聶立文
?
基于Android的手機學習平臺的開發與應用
申圣兵 聶立文
湖南高速鐵路職業技術學院,湖南 衡陽 421000
為適應校園無線網絡的完善和移動智能終端快速普及的新形式,提出構建基于Android的移動學習平臺,系統服務器端和Android客戶端的主要技術實現。
Android客戶端;手機學習平臺
隨著校園無線網絡的逐漸完善和移動智能終端的快速普及,校園內師生對于隨時隨地瀏覽學習資料的需求在持續增長。但目前校園網中提供的學習性的資料普遍基于Web模式,無法有效的兼容智能手機和平板電腦,同時也無法適應用戶使用習慣向移動化方向發展的趨勢。所以需要建設適用于移動互聯網的學習平臺,提供方便、快捷和易用的服務,為學校的教育教學提供方便。目前的移動平臺主要分為iOS和Android,Android系統因其開放性、易用性迅速得到業界和社會的認可,并引領著目前的技術潮流。[1]
1.1 系統總體架構
手機學習平臺的架構如下圖1所示,它包括數據庫服務器、Web服務器、無線網絡和Android客戶端。數據庫服務器和Web服務器主要負責學習資源的收集、整理和發布。Android客戶端主要負責對服務器的訪問。

圖1 系統結構
服務器端的內容主要以Web頁面的方式呈現,由于主要是在移動設備上瀏覽,Web頁面對移動設備進行了優化,采用了“自適應網頁技術”及HTML 5技術。
1.2 服務器端資源音視頻格式編碼
由于是學習平臺中的資源包含有大量的音視頻,它們必須滿足一定的要求才能適合移動終端訪問,音視頻格式必須實現流媒體播放即支持邊下載邊播放。手機網絡視頻一般是flv和mp4格式,鑒于MP4/h.264編碼的優勢,視頻多采用MP4文件格式存儲,音頻采用aac編碼。[2]有些視頻需要使用第三方軟件進行格式轉換,如使用格式工廠進行轉換設置如圖2:
1.3 播放器插件在Web頁面中的使用
由于學習平臺主要是通過Web頁面展示,Web頁面播放視頻最重要的是使用手機Web網頁視頻播放插件,這里我們推薦一款免費可定制的Web網頁視頻播放插件ckplayer,可以到www.ckplayer.com免費下載。下載后將其解壓到項目文件夾下,如下圖3:
播放器在Web頁面中調用的方法:
CKobject.embed('ckplayer/ckplayer.swf','a1','ckplayer_a1','300','200',false,flashvars,video);
相關參數意義如下,更詳細的解說可以參考官網。
ckplayer/ckplayer.swf:播放器所在路徑
a1:網頁容器ID
ckplayer_a1:播放器的ID
300和200:播放器的寬度和高度
false:優先調用設置,false=優先調用flash播放器,true=優先調用HTML5播放器
flashvars:播放器的初始化參數,以及HTML5初始化參數
2.1 開發方法
Android客戶端采用Eclipse開發,主要是利用android自帶的WebView控件來訪問和控制站點,WebView是基于webkit引擎展現web頁面的控件,WebView控件功能強大,除了具有一般View的屬性和設置外,還可以對url請求、頁面加載、渲染、頁面交互進行強大的處理。其使用的一般步驟如下:
(1)在Activity中實例化WebView組件:WebView webView = new WebView(this);
(2)調用WebView的loadUrl()方法,設置WevView要顯示的網頁:
互聯網用:webView.loadUrl("Web地址");
本地文件用:webView.loadUrl("file:/// android_asset/XX.html");本地文件存放在assets 文件中。
(3)調用Activity的setContentView( )方法來顯示網頁視圖。
(4)用WebView點鏈接看了很多頁以后為了讓WebView支持回退功能,需要覆蓋覆蓋Activity類的onKeyDown()方法,如果不做任何處理,點擊系統回退剪鍵,整個瀏覽器會調用finish()而結束自身,而不是回退到上一頁面
(5)需要在AndroidManifest.xml文件中添加權限,否則會出現Web page not available錯誤。
2.2 訪問視頻全屏問題的解決
在Android中,傳統的一般有三種方式來實現視頻的播放:
(1)使用其自帶的播放器。指定Action為ACTI ON_VIEW,Data為Uri,Type為其MIME類型。
(2)使用VideoView來播放。在布局文件中使用VideoView結合MediaController來實現對其控制。
(3)使用MediaPlayer類和SurfaceView來實現,這種方式很靈活。
但是由于本項目中的內容多是由Web頁面展示,它們不能嵌入Web頁面中,所以上面的三種方式并不太適合,我們選擇了可以嵌入的一款播放器來實現。手機由于屏幕尺寸關系,視頻播放推薦使用全屏方式,所以視頻全屏是一項非常重要的功能,它主要是通過重載on Show Custom View方法來實現。[3]當用戶點進擊全屏按鈕時,會自動觸發on Show Custom View事件,處理代碼如下:
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE);
webView.setVisibility(View.INVISIBLE);
if (xCustomView != null){
callback.onCustomViewHidden();
return;
}
video_fullView.addView(view);
xCustomView = view;
xCustomViewCallback = callback;
video_fullView.setVisibility(View.VISIBLE);
退出全屏通過重載onHideCustomView方法來實現。其實現的主要代碼如下:
if(xCustomView == null)//不是全屏播放狀態
return;
setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
xCustomView.setVisibility(View.GONE);
video_fullView.removeView(xCustomView);
xCustomView = null;
video_fullView.setVisibility(View.GONE);
xCustomViewCallback.onCustomViewHidden();
webView.setVisibility(View.VISIBLE);
視頻播放效果圖如下圖4:

圖4 視頻播放
隨著移動互聯網的快速發展,基于 Android 的移動應用具有廣闊的發展前景,本文在分析師生需求和現有技術條件的基礎上,提出了基于 Android 的學習平臺的搭建,實現了服務器端資源的采集、管理和發布以及Android 客戶端應用程序。測試表明系統適用于當前的技術環境 服務端通過虛擬化技術實現了高可用性和可拓展性,客戶端實現了訪問功能,具有較好的用戶體驗,能夠滿足校園師生的需求。
[1]唐雄,張巨發,段昌奉,等.基于Android智能手機的醫院移動護理信息系統開發及應用[J].中國數字醫學,2013,8(2):95-96.
[2]趙旭輝.基于Android手機的教學質量評測軟件開發[J].電腦開發與應用,2015(1):73-75.
[3]芮素文.基于Android平臺軟件開發方法的研究與應用[J].信息通信,2015(3):106.
The Development and Application of Mobile Learning Platform based on Android
Nie Liwen Shen Shengbing
Hunan high speed railway,Career Technical College,Hengyang,Hunan 421000,.
in order to adapt to the improvement of campus wireless network and the rapid popularization of mobile intelligent terminal,the main technology of building a mobile learning platform based on Android is proposed,which is based on Android.
Android client;mobile learning platform
TP311.52
A
1009-6434(2016)6-0006-03