CIO
|
PCDIY!
|
旗標圖書
|
旗景數位影像
|
讀者服務
首 頁
即時新聞
業界動態
最新活動
企業採購
精選文章
線上教學
品牌活動
程式碼下載
雲端運算智庫
最近新增的
精選文章
AP內建AI引擎 Mist Cloud平台分析能力強 Juniper Mist AI領先全球 改善WiFi穩定、效能首選
解決IT供應鏈攻擊
內部威脅的七個警訊
遠百以專案辦公室推動數位體驗
多廠牌與多重電信業者網路架構的挑戰與機會
德明科大啟用電貿暨AI實習基地 ViewSonic ViewBoard 智慧互動電子白板 扮要角
淺談計算誤差
秀傳醫療體系統 以Lenovo HyperConverged HX 超融合架構扎穩智慧醫療發展基礎
模組化設計 偵測率達99.99% 全面防杜惡意郵件入侵 首選Cellopoint Email UTM
滿足網路管理與檔案安全傳輸需求,Ipswitch的MOVEit及WhatsUp Gold一次完整提供
來自學界的資料分析利器 - Weka 與 R
北醫建置肺癌資料庫,透過深度標註訓練AI,協助醫師早期發現癌症
北榮AI門診上路!人工智慧判讀腦瘤,有效縮短醫師確診時間
台灣智慧機器人玩具聯盟攜手英閱音躍研創 推廣T. Robot程式教育,協助國中小學扎根培養運算思維
一場與時間賽跑的戰役 ,人工智慧加速心血管疾病診斷
最多人點閱的
精選文章
免費IT建置--Linux系統操作與管理
初探Hadoop開放原始碼平台環境
免費IT建置--網頁伺服器的完美組合LAMP(下)
免費IT建置--檔案共享與檔案伺服器
Linux下的防火牆(基礎篇)
Linux下的防火牆(進階篇)
N.Y.BAGELS CAFE善用SAP Business One
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 影片播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 線上查詢匯率
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 擲骰子遊戲
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 音樂播放器範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 來電黑名單
免費IT建置--網頁伺服器的完美組合LAMP(上)
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ 繪圖板範例
手機程式設計入門與應用 Android、iPhone、Windows Mobile─ Matrix應用範例
精選文章 - 開發技術
分享到Plurk
分享到FaceBook
Windows 程式開發-雲端與移動式手機整合(上)
文‧圖/何孟翰
2013/4/10 下午 05:21:48
在上一回中我們有說明 Windows Azure平台的mobile services服務,它雖然還是一個preview的功能,但是卻已經是一個完整的平台。而由於mobile這個市場對每一間公司來說愈來愈重要,Azure團隊也是不斷的充實並加強它裡面的功能。特別是針對除了Windows Phone8之外的其它平台,例如iOS/iPhone/iPad也能夠有如資料存取,帳號驗証授權的一些服務。而隨著這個服務愈來愈完善與強大,對於平台的支援性也更加完整。在這一回中我們將討論Windows Azure和Android的整合實務,並且說明這種雲端服務對移動式程式設計所帶來的影響。當然上一回中所說的帳號驗証和授權在Android上也是一併可以使用,但是在這一回讓我們從不同的面相來觀察這個平台,順便以Android的實作來作為範例。
Android與Windows Azure
Android的開發語言是JAVA,而既然像Android這樣的裝置要使用雲端的服務,也就是網路上其它伺服器的資料,如同上一回我們所說的,Windows Azure所提供存取的是最標準的http/https服務,所以Android在存取Windows Azure上,也是使用標準的httpclient這種函式庫。同時如同上一回所說明的,Windows Azure和客戶端的傳遞都是使用JSON格式,所以也必須準備json的函式庫,此處所使用的是google的實作gson的jar,再加上一些相關的函式庫,就組成了Windows Azure Mobile Service提供給Android的函式庫。
建立Android客戶端的專案
如同前一回所說明的,要進入Windows Azure for mobile service ,你可以使用manage.windowsazure.com登入,在下方選取 New的圖示之後,依著compute和 mobile service就可以新增一個Mobile服務,而在新增該服務之後,你可以點擊進入之後在Quick Start中看到各種平台的選取,此時請你選取Android服務如圖1。
▲ 圖1 選取 Android的平台
在此處不管是創建一個新的專案,還是使用一個現存的專案作開發,Windows Azure for mobile service的官方要求使用Android 4.2+之後的版本才能夠順利的運行。然而依照筆者測試的結果,當然你必須要使用Eclipse搭配ADT最新版,也就是21版之後的組態,但是其實Android只要是2.3.3之後的版本,就可以使用大部份Windows Azure for mobile service的環境。但是在使用推播時,按照Windows Azure for mobile service官方的推播服務實作,確實要在較新的SDK版本才能夠有正確的支援。事實上,如果你直接從developer.android.com上下載最新的 ADT加上Eclipse bundle,就可以直接操作Windows Azure for mobile service的專案。
而當你準備好Eclipse加上ADT的環境之後,可以使用File/Import,並且用一個Android的專案將它匯入,範例專案匯入之後,你可以發現在這個android的libs目錄,也就是Android在載入時可以讀取的目錄中,已經有所有支援的jar檔如圖2。
▲ 圖2 範例專案的libs目錄結構
Android與Mobile Service的溝通
這個範例提供了一個樣版,首先在Mobile Service中會創建一些表格,這些表格的每一個欄位代表一個物件的屬性。而一列資料就是一個類別所產生出的實例。而這個類別也就是由資料庫的綱要對應而成。因此你可以在這個範例中看到一個ToDoItem.java,它對應的就是範例中的ToDoItem表格如圖3。
▲ 圖3 在Windows Azure上的表格內容
而對應的ToDoItem.java,你可以看到此處有使用了google實作的Java Serialization的標示法如圖4。
▲ 圖 4 Java元件和表格的對應
這種使用GSON的語法有個好處,就是程式的語法和次料庫的綱要可以是無關的,也就是說例如在Java的mText字串,對應到資料庫的欄位會是text的欄位,而id對應到的是mId的變數。
因此藉由這個data bean,Android的應用程式就可以和 Windows Azure for mobile Service溝通。使用這種介面,開發者不需要對原生的程式作任何的妥協,而可在原本Android的框架下進行應用程式的開發。
Mobile Service的連結
當然在Android的環境下,負責使用者介面的就是 Activity元件,而這個Activity元件所對應的畫面,即可在載入雲端表格的內容後呈現。因此,對於這個畫 面控制器,一種合理的實作就是在這個Activity生成時,就連結Windows Azure for mobile service的服務。因此你可以在TodoActivity這個Activity類別的onCreate函數中看到主要的MobileServiceClient的生成函數如圖5。
▲ 圖 5 在onCreate函數中產生的MobileServiceClient物件
這個物件主要需要兩個參數,一個是對應的Windows Azure for mobile service的URL,這個服務URL你可以在manage.windowsazure.com的Dashboard下看到Mobile Service URL位址如圖 6。
▲ 圖6 取得Mobile Service URL的位址
除此之外,還需要一組key,你可以在同一個畫面下方的工具列中看到控制鍵的按鈕Manage Keys如圖7。
▲ 圖7 管理服務的金鑰
而產生了該服務之後,就可以使用getTable()來取得這些資料,而取得資料之後,就可以透過Adapter的形式將資料更新於一個ListView的畫面上。因此你可以看到當應用程式的Activity載入之初,會稍微載入一下,而當載入完成之後,你可以看到畫面如圖8。
▲ 圖8 載入完成的畫面
這個預設的專案最低版本是Android 2.2,如果你使用2.2/2.3的模擬器,你可以看到到目前為止都可以順利的執行。
回首頁...
關於RUN!PC
|
廣告刊登
|
聯絡我們
|
讀者服務
|
雜誌訂閱
|
出刊&補寄時間
-- Copyright© FLAG INFORMATION CO., LTD. 旗訊科技(股)公司. All rights reserved. 本站圖文著作權所有 未經授權 不得任意轉載使用 --
-- 請使用1024*768螢幕解析度,IE 7.0或firefox 3.0以上瀏覽器,以達到最佳閱讀效果--