亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于Android 的校園應(yīng)用軟件開發(fā)與實(shí)現(xiàn)

        2014-01-21 00:52:10李寧寧王遠(yuǎn)飛
        電子設(shè)計(jì)工程 2014年20期
        關(guān)鍵詞:服務(wù)器端控件客戶端

        李寧寧,王遠(yuǎn)飛,張 冉

        (1.大連東軟信息學(xué)院 遼寧 大連 116023;2.大連理工大學(xué) 遼寧 大連 116023)

        隨著網(wǎng)絡(luò)與通信技術(shù)的不斷發(fā)展,當(dāng)代大學(xué)生的校園生活也在發(fā)生著時(shí)代性的變化。當(dāng)前流行的軟件、游戲和電子產(chǎn)品等,都能在校園里得到及時(shí)的關(guān)注和反饋;同時(shí),大學(xué)生也能及時(shí)發(fā)現(xiàn)身邊所需的應(yīng)用,從而著手進(jìn)行開發(fā)和推廣。而智能手機(jī)和網(wǎng)絡(luò)的迅速發(fā)展和普及,使得校園應(yīng)用的移動(dòng)化勢(shì)必成為未來的趨勢(shì)。

        Android作為Google移動(dòng)互聯(lián)網(wǎng)戰(zhàn)略的重要組成部分,將進(jìn)一步推進(jìn)“隨時(shí)隨地為每個(gè)人提供信息”這一企業(yè)目標(biāo)的實(shí)現(xiàn)[1],它是一個(gè)真正意義上的開放性移動(dòng)設(shè)備綜合平臺(tái),包括操作系統(tǒng)、用戶界面、中間件和應(yīng)用程序,擁有移動(dòng)電話工作所需的全部軟件,同時(shí)其開放性保證該平臺(tái)不存在任何阻礙移動(dòng)產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙[2]。為了探索校園學(xué)習(xí)與生活的各種移動(dòng)應(yīng)用開發(fā)思路與過程,本文以大連東軟信息學(xué)院的校園應(yīng)用為背景,基于開放的Android技術(shù),實(shí)現(xiàn)了手機(jī)端的一系列應(yīng)用軟件,并在校園內(nèi)進(jìn)行推廣,現(xiàn)已擁有一定的使用量和客戶群。在此基礎(chǔ)上,搭建了服務(wù)器端+客戶端的Android應(yīng)用開發(fā)架構(gòu)模式,開發(fā)結(jié)構(gòu)類似的應(yīng)用軟件,從而縮短開發(fā)流程。

        本文介紹了使用服務(wù)器端+客戶端結(jié)構(gòu),在Android系統(tǒng)上進(jìn)行校園軟件的開發(fā)與設(shè)計(jì)——使用Android平臺(tái)推出的SDK和Eclipse開發(fā)環(huán)境[3]實(shí)現(xiàn)了校園飲食軟件、東軟新聞客戶端、校園留言板等校園應(yīng)用,方便學(xué)生在手機(jī)端隨時(shí)隨地獲得校園信息,感受大學(xué)生活的便捷和學(xué)以致用的樂趣。以上應(yīng)用已在模擬器和真機(jī)上通過測(cè)試。

        1 系統(tǒng)分析和關(guān)鍵技術(shù)

        當(dāng)前的校園移動(dòng)應(yīng)用通常是針對(duì)于學(xué)生手機(jī)端的信息發(fā)布和交流,而信息數(shù)據(jù)是需要通過網(wǎng)絡(luò)來進(jìn)行獲取。也就是說開發(fā)過程中,應(yīng)包括信息提供端和手機(jī)接收端,即服務(wù)器端和客戶端兩部分:服務(wù)器端負(fù)責(zé)提供數(shù)據(jù)和維護(hù)數(shù)據(jù),客戶端負(fù)責(zé)信息的發(fā)布和顯示,服務(wù)器端和客戶端的紐帶是網(wǎng)絡(luò)連接。該系統(tǒng)的物理架構(gòu)主要由后臺(tái)數(shù)據(jù)庫服務(wù)器、Web服務(wù)器、無線網(wǎng)絡(luò)、Android校園客戶端等部分組成。客戶端(主要由學(xué)生使用),通過無線網(wǎng)絡(luò)訪問后臺(tái)服務(wù)器,相關(guān)數(shù)據(jù)信息由后臺(tái)數(shù)據(jù)庫服務(wù)器提供,客戶端的部分?jǐn)?shù)據(jù)存儲(chǔ)使用SQLite數(shù)據(jù)庫,應(yīng)該保持客戶端的數(shù)據(jù)和服務(wù)器數(shù)據(jù)庫中的數(shù)據(jù)一致。運(yùn)行過程中要保證Web服務(wù)器始終處于開啟狀態(tài)。圖1為校園應(yīng)用的系統(tǒng)物理架構(gòu)。

        圖1 系統(tǒng)物理架構(gòu)Fig.1 System physical architecture

        我校的校園移動(dòng)應(yīng)用系統(tǒng)Web服務(wù)器端采用MyEclipse+Tomcat+MySQL的組合進(jìn)行開發(fā),采用Struts2[4]框架實(shí)現(xiàn)了數(shù)據(jù)維護(hù)??蛻舳私⒘薃ndroid SDK+Java JDK+Eclipse的開發(fā)環(huán)境,獲取服務(wù)器端的數(shù)據(jù),將其加載到Android應(yīng)用程序中,發(fā)布到手機(jī)客戶端。用戶只需要到校園電子市場下載客戶端軟件(.apk文件),安裝至手機(jī)即可。Web服務(wù)器和數(shù)據(jù)庫服務(wù)器由開發(fā)者在校園內(nèi)網(wǎng)服務(wù)器中進(jìn)行搭建和發(fā)布,并保持長期運(yùn)行狀態(tài)。

        2 設(shè)計(jì)思路

        針對(duì)上文的系統(tǒng)體系結(jié)構(gòu),我們將校園應(yīng)用軟件的開發(fā)分成服務(wù)器端設(shè)計(jì)、數(shù)據(jù)存儲(chǔ)、網(wǎng)絡(luò)傳輸和客戶端設(shè)計(jì)4部分。下面我們?cè)敿?xì)介紹每一部分的作用和開發(fā)思路。

        2.1 服務(wù)器端設(shè)計(jì)

        服務(wù)器設(shè)計(jì)采用Struts2框架,并采用MVC三層結(jié)構(gòu)處理。由于數(shù)據(jù)信息不是很大,系統(tǒng)采用的是MySQL數(shù)據(jù)庫。頁面通過JSP技術(shù),將需要維護(hù)的數(shù)據(jù)信息以表格的形式列出,提供增加、刪除、修改的鏈接即可。通常,除了基本的文字信息外,也包含圖片信息。圖片信息是統(tǒng)一放在服務(wù)器的指定目錄中,數(shù)據(jù)庫中存儲(chǔ)其對(duì)應(yīng)的地址。

        服務(wù)器端另一個(gè)很重要的作用是提供JSON(JavaScript Object Notation)格式的數(shù)據(jù),并返回給客戶端。JSON是一種輕量級(jí)的數(shù)據(jù)交換格式,能夠替代XML的工作。在可讀性、可擴(kuò)展性、編碼以及解碼等方面,JSON和XML語言相當(dāng),甚至是有更強(qiáng)的優(yōu)勢(shì)。在Java平臺(tái)上可用的JSON類庫較多,本系統(tǒng)選擇的是Google的Gson類庫。

        2.2 數(shù)據(jù)存儲(chǔ)

        數(shù)據(jù)存儲(chǔ)涉及到兩部分。服務(wù)器端通過MySQL數(shù)據(jù)庫存儲(chǔ)信息,同時(shí),在客戶端用SQLite作為本地緩存,擁有和服務(wù)器端完全相同的表結(jié)構(gòu)。在不能及時(shí)聯(lián)網(wǎng)獲得數(shù)據(jù)時(shí),可以通過本地?cái)?shù)據(jù)庫得到最近的數(shù)據(jù)內(nèi)容,從而保證了軟件的順暢使用;在聯(lián)網(wǎng)后,檢查本地?cái)?shù)據(jù)庫內(nèi)容是否與網(wǎng)絡(luò)數(shù)據(jù)庫內(nèi)容一致,如果不一致,自動(dòng)更新,從而保證數(shù)據(jù)的及時(shí)性和準(zhǔn)確性。

        2.3 網(wǎng)絡(luò)傳輸

        Android已經(jīng)成功地集成了HttpClient[5],客戶端通過使用Apache的HttpClient發(fā)送GET/POST請(qǐng)求即可正常訪問資源,如果需要發(fā)送請(qǐng)求參數(shù),可以調(diào)用setParams()方法來添加,最后調(diào)用HttpResponse的getEntity()方法可獲得服務(wù)器的響應(yīng)內(nèi)容。當(dāng)然,在整個(gè)運(yùn)行過程中,要保證客戶端和服務(wù)器端都處于聯(lián)網(wǎng)狀態(tài)。

        2.4 客戶端設(shè)計(jì)

        客戶端設(shè)計(jì)主要是通過網(wǎng)絡(luò)獲取服務(wù)器數(shù)據(jù),解析JSON格式數(shù)據(jù),然后以用戶的角度進(jìn)行信息提供。為了吸引更多的使用者,美工是客戶端設(shè)計(jì)的重要因素。通過動(dòng)態(tài)設(shè)置 ListView 的 顏 色 , 借 用 GridView,Gallery,ImageButton,EditText等控件,配用各種背景元素呈現(xiàn)出具有特色風(fēng)格的界面。

        3 系統(tǒng)功能及實(shí)現(xiàn)

        該系列校園應(yīng)用軟件的實(shí)現(xiàn)包括客戶端Android界面程序?qū)崿F(xiàn)和后端服務(wù)器。它們采用服務(wù)器端收集和匯總信息,客戶端進(jìn)行信息的獲取、呈現(xiàn)以及反饋。

        3.1 服務(wù)器端功能

        服務(wù)器端采用Struts2框架編寫了比較通用的代碼,完成JSON格式的數(shù)據(jù)傳輸;針對(duì)不同的校園應(yīng)用,有不同的數(shù)據(jù)庫設(shè)計(jì),在服務(wù)器端的數(shù)據(jù)庫操作代碼,完成通用功能的編寫,如數(shù)據(jù)庫的創(chuàng)建、關(guān)閉、表創(chuàng)建、版本升級(jí)等,為了簡化數(shù)據(jù)庫部分的操作,我們將數(shù)據(jù)庫表連接參數(shù)、表名、列名等通過XML寫入。另外,我們也完成了Excel文件導(dǎo)入導(dǎo)出、圖片上傳、文件讀寫等操作。其中項(xiàng)目源代碼部分截圖如圖2所示。

        圖2 服務(wù)器端部分截圖Fig.2 Screenshot of server codes

        3.2 客戶端功能實(shí)現(xiàn)

        在客戶端,完成了網(wǎng)絡(luò)數(shù)據(jù)獲取的類,只需要修改服務(wù)器地址即可連接到不同的服務(wù)器上??蛻舳俗儎?dòng)較大,針對(duì)不同的應(yīng)用,利用控件做具體的UI設(shè)計(jì),并將服務(wù)器端提供的數(shù)據(jù)以清晰、方便的形式展現(xiàn)出來。下面從校園飲食軟件、校園留言板和東軟新聞客戶端3個(gè)應(yīng)用程序的客戶端分別進(jìn)行介紹。

        3.2.1 校園飲食軟件

        就餐飲食是大學(xué)生日常生活中必不可少的一部分。該軟件將各個(gè)食堂的飯菜做了菜譜匯總,提供出最真實(shí)、最客觀的相關(guān)信息;同時(shí)收集同學(xué)們的反饋信息,及時(shí)與校方溝通。另外,還允許商家進(jìn)行拍照上傳,在后臺(tái),管理人員將針對(duì)這些上傳的圖片進(jìn)行整理,選出更恰當(dāng)?shù)膱D片對(duì)當(dāng)前信息進(jìn)行更新。

        1)菜譜列表功能

        為了推廣菜譜軟件的使用,用戶不需要注冊(cè)和登錄可直接進(jìn)入店鋪列表,進(jìn)入店鋪后,系統(tǒng)以圖片的形式顯示該店鋪的食譜,用戶根據(jù)自己的口味進(jìn)行選擇。店鋪列表通過ListView控件進(jìn)行實(shí)現(xiàn)。店鋪信息由客戶端向后臺(tái)服務(wù)器請(qǐng)求,通過JSON格式封裝數(shù)據(jù),在客戶端收到數(shù)據(jù)后,對(duì)其進(jìn)行解析,然后通過數(shù)據(jù)適配器,將數(shù)據(jù)添加到ListView中。

        2)訂餐

        訂餐是飲食軟件中不可或缺的一部分。本應(yīng)用在用戶選擇菜譜的同時(shí),只需一鍵即可直接訂餐(前提是本店鋪提供訂餐和電話號(hào)碼)。訂餐的實(shí)現(xiàn)是借助于Android手機(jī)的電話撥打功能,獲取所在店鋪的電話號(hào)碼,直接調(diào)用手機(jī)自帶打電話應(yīng)用程序。

        3)搖一搖功能

        搖一搖功能是針對(duì)用戶在就餐無從選擇時(shí),可以通過該功能來輔助完成。在搖一搖界面中用戶可以通過點(diǎn)擊按鈕或晃動(dòng)手機(jī)的方式讓系統(tǒng)隨機(jī)選菜,該功能的實(shí)現(xiàn)主要由以下三個(gè)方面組成:聲音管理器(SoundManager)、震動(dòng)器(Vibrator)與加速傳感器(SensorManager)。具體實(shí)現(xiàn)過程如下:

        通過注冊(cè)和監(jiān)聽SensorEventListener事件,并重載onSensorChanged方法來獲取手機(jī)加速度的變化,從而決策是否選菜。當(dāng)加速度超過了預(yù)先設(shè)定的閥值SPEED_SHRESHOLD則回調(diào)方法onShake(),通知應(yīng)用完成了一次搖晃操作,在主函數(shù)中同時(shí)啟動(dòng)SoundManager的playSound()與Vibrator類的vibrate(500)方法,播放設(shè)置的聲音并震動(dòng)0.5s,最后從數(shù)據(jù)庫中隨機(jī)選出一道菜推薦給用戶。另外,需要增加震動(dòng)的權(quán)限。

        其中,該應(yīng)用的部分截圖效果如圖3~5所示。

        3.2.2 校園留言板

        該軟件的功能比較簡單,即實(shí)現(xiàn)校園的手機(jī)BBS交流平臺(tái)。讓學(xué)生時(shí)刻可以交流和通訊,方便了校園生活。

        1)留言列表

        圖3 店鋪列表界面Fig.3 Interface of store list

        圖4 菜譜列表界面Fig.4 Interface of menu list

        圖5 本期推薦界面Fig.5 Interface of current recommendation

        該功能的界面主要是利用ListView組件進(jìn)行設(shè)計(jì)的,因?yàn)長istView的數(shù)據(jù)來源靈活并可以實(shí)現(xiàn)自身的樣式定制。ListView中的列表數(shù)據(jù)是通過適配器將其映射到組件中。列表 的 適 配 器 類 型 有 ArrayAdapter、SimpleAdapter和SimpleCursorAdapter3種,也可以通過繼承BaseAdapter類自己定義適配器。本系統(tǒng)則采用的自定義的適配器類方式。編程人員通過實(shí)現(xiàn)getView方法為其第二個(gè)參數(shù)convertView進(jìn)行賦值,在相應(yīng)的控件中獲取服務(wù)器上的數(shù)據(jù)內(nèi)容,實(shí)現(xiàn)自己定義的顯示效果,如圖6所示。

        2)留言板菜單

        圖6 校園留言板列表Fig.6 List of campus message board

        由于留言板功能比較簡潔,所需功能比較集中。所以其他功能主要是靠菜單與用戶進(jìn)行交互,如圖7所示。東軟貼吧是打開一個(gè)新的Activity頁面,頁面中通過WebView控件加載貼吧的內(nèi)容;刷新是更新貼吧內(nèi)容;話題征集與反饋,是借助于友盟實(shí)現(xiàn)的;開機(jī)動(dòng)畫是跳轉(zhuǎn)到開機(jī)頁面;關(guān)于我們進(jìn)入開發(fā)團(tuán)隊(duì)介紹頁面;下載二維碼是通過聯(lián)網(wǎng)獲取服務(wù)器上的圖片。

        圖7 校園留言板菜單Fig.7 Menus of campus message board

        3.2.3 東軟新聞客戶端

        該應(yīng)用是將傳統(tǒng)的網(wǎng)頁新聞移植到移動(dòng)應(yīng)用客戶端,讓學(xué)生可以隨時(shí)隨地獲得校園的最新通知和信息。

        1)新聞內(nèi)容列表

        首次進(jìn)入客戶端,需要同步網(wǎng)絡(luò)數(shù)據(jù),更新成功后,可以進(jìn)入圖8的界面效果。點(diǎn)擊任意的Item項(xiàng)則可以閱讀具體的新聞內(nèi)容頁(如圖9所示),也可以進(jìn)行相應(yīng)的跟帖。該新聞內(nèi)容均來自于服務(wù)器端的新聞發(fā)布,通過JSON數(shù)據(jù)格式傳輸。由于新聞內(nèi)容可能較多,通過繼承ListView類,實(shí)現(xiàn)了一個(gè)可以下拉更新的子類。

        新聞客戶端的信息發(fā)布,除了文字內(nèi)容還有圖片信息。圖片信息的獲取,是通過數(shù)據(jù)流的形式從網(wǎng)絡(luò)上獲取,并存儲(chǔ)到本機(jī)的SD卡中的指定文件夾中,然后應(yīng)用程序讀取本地的圖片信息利用ImageView、Gallery等控件進(jìn)行顯示。

        2)附加功能

        圖8 進(jìn)入首頁Fig.8 Homepage

        圖9 新聞內(nèi)容頁Fig.9 News content

        該應(yīng)用還嵌入了百度貼吧的東軟校園貼吧內(nèi)容(如圖10所示)以及天氣預(yù)報(bào)的功能。貼吧是通過聯(lián)網(wǎng),利用WebView控件讀取URL地址[7],獲取網(wǎng)絡(luò)上的內(nèi)容;天氣預(yù)報(bào)是通過程序新建一個(gè)線程,讀取天氣信息,并及時(shí)更新至應(yīng)用中。

        圖10 東軟校園貼吧Fig.10 Post bar for Neusoft campus

        4 結(jié)論

        為了給學(xué)生提供及時(shí)準(zhǔn)確的就餐和新聞信息,公共開放的交流平臺(tái),增加校園生活的樂趣,我們?cè)O(shè)計(jì)和實(shí)現(xiàn)了若干校園應(yīng)用軟件。通過這些軟件的開發(fā),師生共同探討了校園軟件的設(shè)計(jì)和實(shí)現(xiàn)過程,總結(jié)了校園軟件的設(shè)計(jì)模式和結(jié)構(gòu)。該結(jié)構(gòu)開拓了校園移動(dòng)軟件應(yīng)用的設(shè)計(jì)思路,為校園實(shí)現(xiàn)信息現(xiàn)代化邁出了第一步,從而進(jìn)一步豐富了當(dāng)?shù)卮髮W(xué)生的校園生活和學(xué)習(xí)。但由于該類軟件的運(yùn)行和維護(hù),均需要校園服務(wù)器的支持,并且局限于校園內(nèi)網(wǎng),我們正在將服務(wù)端代碼遷移至以百度云環(huán)境(BAE),利用其提供的云服務(wù)、云數(shù)據(jù)庫等完成后臺(tái)數(shù)據(jù)存儲(chǔ)操作,降低維護(hù)的成本,并保證網(wǎng)絡(luò)的暢通。從而即將推出百度云+Android客戶端的開發(fā)結(jié)構(gòu)。

        [1]楊豐盛.Android應(yīng)用開發(fā)揭秘[M].北京:機(jī)械工業(yè)出版社,2010.

        [2]顧聰,陳益強(qiáng),劉軍發(fā),等.基于Android平臺(tái)的室內(nèi)LBS系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2012,33(1):396-400.GU Cong,CHEN Yi-qiang,LIU Jun-fa,et al.Design of indoor LBS system based on Android platform and its implementation[J].Computer Engineering and Design,2012 33(1):396-400.

        [3]李寧寧,鄭純軍.基于Android平臺(tái)網(wǎng)絡(luò)相冊(cè)的設(shè)計(jì)與實(shí)現(xiàn)[J].電視技術(shù),2013,37(15):71-73.LI Ning-ning,ZHENG Chun-jun.Design and implementation of web album based on Android[J].Video Engineering,2013,37(15):71-73.

        [4]范立峰,林果園.Java Web程序設(shè)計(jì)教程[M].北京:人民郵電出版社,2010.

        [5]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2011.

        [6]王向輝,張國印,沈潔.Android應(yīng)用程序開發(fā)[M].北京:清華大學(xué)出版社,2010.

        [7]劉一田,孔震,李萌.Web應(yīng)用中故障檢測(cè)機(jī)制的研究與改進(jìn)[J].陜西電力,2012(11):66-69.LIU Yi-tian,KONG Zhen,LI Meng.Research and improvement of failure detection mechanism for Web applications[J].Shaanxi Electric Power,2012(11):66-69.

        猜你喜歡
        服務(wù)器端控件客戶端
        關(guān)于.net控件數(shù)組的探討
        軟件(2018年7期)2018-08-13 09:44:42
        縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶端
        孵化垂直頻道:新聞客戶端新策略
        基于Vanconnect的智能家居瘦客戶端的設(shè)計(jì)與實(shí)現(xiàn)
        淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
        成功(2018年10期)2018-03-26 02:56:14
        在Windows中安裝OpenVPN
        客戶端空間數(shù)據(jù)緩存策略
        網(wǎng)頁防篡改中分布式文件同步復(fù)制系統(tǒng)
        就這樣玩會(huì)VBA中常見的自定義控件
        電腦迷(2012年24期)2012-04-29 00:44:03
        基于Struts的Web應(yīng)用系統(tǒng)數(shù)據(jù)驗(yàn)證
        国内精品91久久久久| 少妇私密会所按摩到高潮呻吟 | 国产成人精品成人a在线观看| 精品国偷自产在线不卡短视频| 97超碰中文字幕久久| 99re6在线视频精品免费下载| 人人摸人人操| 亚洲国产一区在线二区三区| 亚洲成av在线免费不卡 | 亚洲一区二区三区尿失禁| 日韩a无v码在线播放| 九九99久久精品午夜剧场免费| 美国黄色av一区二区| 狠狠色丁香婷婷久久综合| 国产午夜三级一区二区三| 欧美日韩高清一本大道免费 | 国产午夜在线视频观看| 人妻中文无码久热丝袜| 久久精品中文字幕极品| 日韩一级精品亚洲一区二区精品 | 人妻乱交手机在线播放| 无码一区二区三区| 亚洲va中文字幕无码久久不卡| 国产成品精品午夜视频| 青青草免费手机直播视频| 色综合av综合无码综合网站 | 亚洲成av人片在www| 国内免费AV网站在线观看| 久久九九av久精品日产一区免费| 熟妇人妻无乱码中文字幕av| 亚洲性啪啪无码av天堂| 亚洲欧洲日产国码久在线观看| 少妇精品偷拍高潮少妇在线观看| 国产办公室秘书无码精品99| 国产真实乱人偷精品人妻| 日本一区二区三区在线播放| 日本熟女人妻一区二区| 毛多水多www偷窥小便 | 国产69精品一区二区三区| 91九色视频在线国产| 天天综合网在线观看视频|