• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      基于Android Dojo的移動互聯(lián)網(wǎng)軟件開發(fā)方法※

      2012-09-21 10:43:38章亦葵王哲文
      關(guān)鍵詞:服務(wù)器端時序云端

      章亦葵,王哲文

      (天津大學(xué) 軟件學(xué)院,天津300072)

      引 言

      隨著智能手機市場的發(fā)展,Android已經(jīng)成為了當(dāng)前市場中的主流平臺,而Android平臺程序也隨之成為了開發(fā)的熱門。針對目前Android平臺編程的現(xiàn)狀,本文采用HTML、CSS、JavaScript語言來編寫Android平臺應(yīng)用程序,利用HTML簡單的布局,很大程度地提高了編程效率。[1]系統(tǒng)的設(shè)計按照軟件工程的思路,從需求開始,到設(shè)計、編碼實現(xiàn)、測試交付,完整地完成了一個軟件周期。

      1 Android平臺簡介

      Android是基于Linux內(nèi)核的軟件平臺操作系統(tǒng),早期由Google公司開發(fā),后由開放手機聯(lián)盟Open Handset Alliance開發(fā)。[2,9-10]它包括操作系統(tǒng)、用戶界面、應(yīng)用程序以及移動電話工作所需的全部軟件。它采用了軟件堆層(software stack,又名軟件疊層)的架構(gòu),主要分為三部分:

      ① 底層以Linux核心為基礎(chǔ),由C語言開發(fā),只提供基本功能。

      ② 中間層包括函數(shù)庫Library和虛擬機Virtual Machine,由C++開發(fā)。

      ③ 最上層是各種應(yīng)用軟件,包括通話程序、短信程序等,應(yīng)用軟件由各公司自行開發(fā),以Java編寫。[3-4]

      隨著Android系統(tǒng)的不斷發(fā)展,由Google公司主導(dǎo)的Android已經(jīng)開始向Iphone發(fā)起挑戰(zhàn)。[5]Android系統(tǒng)架構(gòu)圖如圖1所示。

      2 關(guān)鍵技術(shù)介紹

      2.1 Dojo

      Dojo是一個用JavaScript語言實現(xiàn)的開源DHTML工具包。它是在幾個項目捐助基礎(chǔ)上建立起來的(nWidgets、Burstlib、f(m)),這也是叫它a"unified"toolkit的原因。Dojo的目標(biāo)是解決開發(fā)DHTML應(yīng)用程序中遇到的那些長期存在的歷史問題以及Historical problems with DHTML跨瀏覽器問題。[6]

      Dojo有以下的特征:

      ◆利用Dojo提供的組件,你可以提升Web應(yīng)用程序的可用性、交互能力以及性能。

      ◆可以更容易地建立互動的用戶界面,同時Dojo提供小巧的動態(tài)處理工具。

      ◆利用它的低級API和可兼容的代碼,能夠?qū)懗鲚p便的、單一風(fēng)格的JavaScript代碼。Dojo的事件系統(tǒng)、I/O的API以及通用語言形式是基于一個強

      圖1 Android系統(tǒng)架構(gòu)圖

      大的編程環(huán)境。

      ◆通過Dojo提供的工具,可以為你的代碼寫命令行式的單元測試代碼。

      ◆Dojo的擴展包能夠使你的代碼更容易維護(hù),耦合性更低。

      Dojo通過很少的代碼完成了以上的功能。當(dāng)寫腳本時,只需要包含很少的JS文件,也可以有選擇地下載Dojo提供的龐大的功能。

      2.2 JSON

      JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式。它基于JavaScript(Standard ECMA-262 3rd Edition-December 1999)的一個子集。JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C、C++、C#、Java、JavaScript、Perl、Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言,易于人閱讀和編寫,同時也易于機器解析和生成。[7]

      JSON建構(gòu)于兩種結(jié)構(gòu):

      ① “名稱/值”對的集合(A collection of name/value pairs)。不同的語言中,它被理解為對象(object)、記錄(record)、結(jié)構(gòu)(struct)、字典(dictionary)、哈希表(hash table)、有鍵列表(keyed list)或者關(guān)聯(lián)數(shù)組(associative array)。

      ② 值的有序列表(An ordered list of values)。在大部分語言中,它被理解為數(shù)組(array)。

      3 環(huán)境的搭建

      本文中推薦使用Ubuntu 10.0.1版本的操作系統(tǒng),開發(fā)平臺使用Eclipse集成開發(fā)環(huán)境。服務(wù)器使用Tomcat 6.0版本,數(shù)據(jù)庫使用開源的 MYSQL5.0,JDK版本采用1.6,Android的SDK版本采用10.0.1。[8]

      4 項目需求

      本文設(shè)計了一個小的場景作為程序的需求,如圖2所示。

      圖2 系統(tǒng)需求用例圖

      首先來解釋圖2中所示的需求,假設(shè)和朋友一起外出,到了吃飯的時候,首先通過應(yīng)用程序來查找附近的飯店,然后選擇一家餐館用餐,用餐之后通過手機進(jìn)行支付,同時在應(yīng)用中分享對餐館的評價。由于需要進(jìn)行查看餐館優(yōu)惠信息、查看餐館評價等活動,需要進(jìn)行大量的運算和存儲,因此,本程序設(shè)計是將數(shù)據(jù)的運算和存儲都放到了云端,而手機端只進(jìn)行簡單的數(shù)據(jù)解析和顯示。這樣的云端加手機端的設(shè)計,既發(fā)揮了云端計算速度快、存儲容量大的特點,又發(fā)揮了移動端便攜的優(yōu)勢。

      5 系統(tǒng)架構(gòu)設(shè)計

      總體上講系統(tǒng)設(shè)計為兩個部分:一部分是手機上的客戶端,另一部分是遠(yuǎn)程的服務(wù)器端。手機端負(fù)責(zé)向服務(wù)器端發(fā)送請求,顯示服務(wù)器端返回的信息,而服務(wù)器端則響應(yīng)手機端的請求,將信息按照指定的格式返回。由于本程序?qū)?shù)據(jù)的運算和存儲都在云端進(jìn)行,因此手機端和云端需要有大量的數(shù)據(jù)交換,為了應(yīng)對由此產(chǎn)生的流量問題,決定采用輕量級的JSON數(shù)據(jù)結(jié)構(gòu)作為手機端和云端進(jìn)行數(shù)據(jù)交換的格式。這樣既能減少因為數(shù)據(jù)交換而產(chǎn)生的流量,又可以完成手機端和云端之間頻繁的數(shù)據(jù)交換。

      6 系統(tǒng)詳細(xì)設(shè)計

      本文中主要進(jìn)行手機端應(yīng)用程序的設(shè)計。使用HTML、CSS、JavaScript作為開發(fā)語言,運用Dojo框架完成手機端應(yīng)用程序的開發(fā)。與服務(wù)器的交互采用JSON輕量級的數(shù)據(jù)格式,在頁面展示部分運用Dojo框架輔助進(jìn)行展示。

      用戶登錄系統(tǒng)之后,選擇查看附近餐館信息,此時手機端系統(tǒng)會向遠(yuǎn)端的服務(wù)器發(fā)送包含自身經(jīng)緯度信息的請求,服務(wù)器端接收請求之后,進(jìn)行運算和查找,將返回的信息用JSON格式進(jìn)行包裝發(fā)送回手機端,查看附近餐館時序圖、查看餐館信息流程如圖3、圖4所示。

      圖3 查看附近餐館時序圖

      圖4 查看餐館信息流程

      用戶在登錄系統(tǒng)之后,選擇查看附近餐館信息,當(dāng)用戶選擇其中一間餐館進(jìn)行詳細(xì)查看的時候,就能夠看到餐館全部的信息以及其他用戶對餐館的評價。手機端會向服務(wù)器端發(fā)送包含餐館ID以及評論條數(shù)作為參數(shù)的信息,服務(wù)器端接收到信息之后會將信息以JSON格式發(fā)送回來。手機端在對接收到的信息進(jìn)行解析之后,將信息顯示出來。查看餐館信息時序圖、查看餐館評價信息流程如圖5、圖6所示。

      圖5 查看餐館信息時序圖

      圖6 查看餐館評價信息流程

      用戶在登錄系統(tǒng)之后,查看了某一餐館的具體信息,如果這家餐館有打折活動,就可以查看這家餐館的優(yōu)惠信息。手機端會向服務(wù)器端發(fā)送請求,服務(wù)器端會將這家餐館的全部打折信息以JSON格式返回。手機端接收到信息之后,進(jìn)行解析顯示,查看餐館優(yōu)惠信息時序圖、查看餐館優(yōu)惠信息流程如圖7、圖8所示。

      圖7 查看餐館優(yōu)惠信息時序圖

      圖8 查看餐館優(yōu)惠信息流程

      用戶在用餐完畢之后,可以選擇對這家餐館進(jìn)行評價,同時可以將評價信息分享到微博等社交工具上,方便朋友們進(jìn)行參考。手機會將評價信息以JSON格式發(fā)送到服務(wù)器上,服務(wù)器將數(shù)據(jù)解析之后存入數(shù)據(jù)庫中,同時利用已經(jīng)開發(fā)好的接口,將信息自動發(fā)往微博保存,發(fā)表評論信息時序圖、發(fā)表評論信息流程如圖9、圖10所示。

      圖9 發(fā)表評論信息時序圖

      系統(tǒng)樣品展示略——編者注。

      結(jié) 語

      圖10 發(fā)表評論信息流程

      Android平臺作為當(dāng)前最為流行的平臺,具有巨大的市場潛力,僅僅能夠單機運行的程序勢必會漸漸地被能夠與云端、移動互聯(lián)網(wǎng)相關(guān)聯(lián)的程序所取代??梢灶A(yù)見,未來以Android為平臺的,與云計算、云存儲相結(jié)合的程序?qū)⑹前l(fā)展的主流,將是嵌入式智能手機應(yīng)用程序的發(fā)展方向。使用Dojo作為開發(fā)框架,能夠提高布局編程效率,降低了移動互聯(lián)網(wǎng)程序的門檻,使移動互聯(lián)網(wǎng)程序更加容易開發(fā)。

      編者注:本文為期刊縮略版,全文見本刊網(wǎng)站www.mesnet.com.cn。

      [1] J F DiMarzio.Android:A Programmer's Guide[M].New York:McGraw-Hill,2009.

      [2] 公磊,周聰.基于Android的移動終端應(yīng)用程序開發(fā)與研究[J].計算機與現(xiàn)代化,2008(8).

      [3] 韓超,粱全.Android系統(tǒng)原理開發(fā)要點詳解[M]北京:電子工業(yè)出版社,2010.

      [4] 靳巖,姚尚朗.Android入門開發(fā)與實踐[M].北京:人民郵電出版社,2009.

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

      [6] Rawld Gill,Craig Riecke,Alex Russell.精通 Dojo[M].北京:人民郵電出版社,2009.

      [7] Douglas Crockford.JavaScript語言精粹[M].北京:電子工業(yè)出版社,2009.

      [8] 余志龍.Android SDK開發(fā)范例大全[M].北京:人民郵電出版社,2009:120-150.

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

      [10] E2ECloud工作室.深入淺出 Google Android[M].北京:人民郵電出版社,2009.

      猜你喜歡
      服務(wù)器端時序云端
      時序坐標(biāo)
      基于Sentinel-2時序NDVI的麥冬識別研究
      云端之城
      淺析異步通信層的架構(gòu)在ASP.NET 程序中的應(yīng)用
      成功(2018年10期)2018-03-26 02:56:14
      美人如畫隔云端
      行走在云端
      初中生(2017年3期)2017-02-21 09:17:43
      云端創(chuàng)意
      一種毫米波放大器時序直流電源的設(shè)計
      電子制作(2016年15期)2017-01-15 13:39:08
      在Windows中安裝OpenVPN
      DPBUS時序及其設(shè)定方法
      河南科技(2014年15期)2014-02-27 14:12:36
      龙口市| 盐城市| 阳江市| 柳林县| 苏州市| 绥德县| 达孜县| 关岭| 筠连县| 兴海县| 阿图什市| 三江| 定日县| 大邑县| 巴塘县| 娄底市| 安陆市| 丽水市| 铜山县| 察隅县| 广元市| 兴业县| 沾化县| 司法| 高雄市| 洪雅县| 南京市| 阿克陶县| 滨州市| 云南省| 宁都县| 尼勒克县| 肇州县| 波密县| 丰原市| 莒南县| 南投县| 河东区| 含山县| 永善县| 扎鲁特旗|