- 相關推薦
基于AMF的Android數據通信論文
文章將Flash/Flex開發中用于網絡通信的AMF技術,移植到Android平臺,實現了Android應用的高效網絡數據通信。
截至到2015年1月,Android在國內移動操作系統中的份額已達80.4%,市場占有率相比IOS等系統具有巨大的優勢。Android系統的網絡應用開發常受到傳輸數據類型繁雜、數據量大、手機流量限制等制約,因此選用一種通信效率高、解析速度快的數據傳輸技術可有效降低程序響應時間、提高用戶體驗。
1AMF
AMF(Action Message Format)是Adobe公司開發的一種免費開源、專用于Flash/Flex應用與服務器端通信的數據編碼模式,其通信過程基于HTTP協議,具有兼容性好、傳輸效率高、解析速度快等優點。
AMF可將基本數據類型如List、Array直接進行編碼,并在服務器端自動解析為相應的對象。這種編碼模式既符合面向對象的編程思想,又簡化了編程人員的工作、縮短開發時間;AMF對數據進行二進制編碼,可實現數據的高度壓縮,因此非常適合傳輸類型繁雜、數量大的數據。數據量越大,AMF 的傳輸效率就越高,遠遠超過HTTP、Web Service等Android應用常使用的傳輸方式。
2 BlazeDS
BlazeDS是Adobe公司開發的一款免費開源的服務器端消息服務組件,基于遠程對象調用(Remote Object)和消息服務(Message Service)技術,用于和Flash/Flex應用程序通信。BlazeDS包含了AMF的Java實現,通常以Servlet的方式部署在Web服務器上。
3 Android平臺的數據傳輸
Android應用與服務器進行網絡通信,目前主要有Socket、HTTP和Web Service三種方式。Socket方式主要應用于實時通訊,效率最高,但由于其涉及底層協議,實現較復雜;HTTP方式因實現簡單、方便,更為常用,但通信效率不高;Web Service是一個支持不同操作系統、不同軟件在網絡間互相操作的模塊化組件,常用于Android應用調用第三方服務器提供的數據服務,由于底層通常使用HTTP和XML傳輸數據,通信效率也不高。
4 AMF在Android平臺實現
BlazeDS的源代碼中已包括AMF的傳輸、序列化與反序列化等功能,但因為Android SDK與JDK的差異,無法直接在Android上使用。經研究,使用第三方的AMF解析組件并將組件針對Android SDK進行修改是更為高效的解決方法。
第三方AMF解析組件am~serializer實現了BlazeDS中AMF序列化與反序列化的主要功能,可在Google Code下載。但在Android上使用am~serializer,需解決Android SDK缺少部分類文件如Property Descriptor類、與服務器端通信類的問題。
4.1內省類
Property Descriptor在JDK中是一個用于內省的類,在不修改Android SDK的前提下可用“反射”機制模擬出其基本功能。
首先需建立類Property Descriptor,聲明成員變量name、display Name、read Method、write Method,并生成對應的get和set方法。
然后,建立用于模擬內省功能的類Property DescriptorTool,部分代碼如下.
4.3通信類
由于amf-serial izer組件只能解析AMF數據,沒有與服務器端通信的功能,所以還需要參考BlazeDS源代碼中的AMFConnection類,實現網絡傳輸的功能。
5測試
為驗證AMF的數據傳輸效率優于Web Service和HHTTP方式,以學生基本信息數據為例,把測試程序使用不同的數據傳輸方式與網絡服務器通信所耗費的時間進行比較。為減小誤差,每組數據測試lO次、取平均值如表l所示。
6結語
測試數據顯示,在Android移動應用開發中使用AMF數據通信格式是理想的選擇,相比HTTP和Web Service方式,可以更好地節省流量、提高傳輸效率。
【基于AMF的Android數據通信論文】相關文章:
提高數據通信網絡安全的對策論文07-25
基于物理核心素養的課堂導入論文范文01-08
中英文學基于人文特性的對比淺析精選論文06-24
基于知網的翻譯研究方向碩士畢業論文寫作06-25
基于信息安全的企業經濟信息管理論文06-26
基于工業機器人的自動化生產技術研究論文04-14