国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于AMF的Android數(shù)據(jù)通信

2016-03-04 07:59:22馬巍許合利
無線互聯(lián)科技 2015年14期
關鍵詞:數(shù)據(jù)通信

馬巍+許合利

摘要:文章將Flash/Flex開發(fā)中用于網(wǎng)絡通信的AMF技術,移植到Android平臺,實現(xiàn)了Android應用的高效網(wǎng)絡數(shù)據(jù)通信。關鍵詞:AMF;Android;BlazeDS;數(shù)據(jù)通信

截至到2015年1月,Android在國內移動操作系統(tǒng)中的份額已達80.4%,市場占有率相比IOS等系統(tǒng)具有巨大的優(yōu)勢。Android系統(tǒng)的網(wǎng)絡應用開發(fā)常受到傳輸數(shù)據(jù)類型繁雜、數(shù)據(jù)量大、手機流量限制等制約,因此選用一種通信效率高、解析速度快的數(shù)據(jù)傳輸技術可有效降低程序響應時間、提高用戶體驗。

1AMF

AMF(Action Message Format)是Adobe公司開發(fā)的一種免費開源、專用于Flash/Flex應用與服務器端通信的數(shù)據(jù)編碼模式,其通信過程基于HTTP協(xié)議,具有兼容性好、傳輸效率高、解析速度快等優(yōu)點。

AMF可將基本數(shù)據(jù)類型如List、Array直接進行編碼,并在服務器端自動解析為相應的對象。這種編碼模式既符合面向對象的編程思想,又簡化了編程人員的工作、縮短開發(fā)時間;AMF對數(shù)據(jù)進行二進制編碼,可實現(xiàn)數(shù)據(jù)的高度壓縮,因此非常適合傳輸類型繁雜、數(shù)量大的數(shù)據(jù)。數(shù)據(jù)量越大,AMF的傳輸效率就越高,遠遠超過HTTP、Web Service等Android應用常使用的傳輸方式。

2 BlazeDS

BlazeDS是Adobe公司開發(fā)的一款免費開源的服務器端消息服務組件,基于遠程對象調用(Remote Object)和消息服務(Message Service)技術,用于和Flash/Flex應用程序通信。BlazeDS包含了AMF的Java實現(xiàn),通常以Servlet的方式部署在Web服務器上。

3 Android平臺的數(shù)據(jù)傳輸

Android應用與服務器進行網(wǎng)絡通信,目前主要有Socket、HTTP和Web Service三種方式。Socket方式主要應用于實時通訊,效率最高,但由于其涉及底層協(xié)議,實現(xiàn)較復雜;HTTP方式因實現(xiàn)簡單、方便,更為常用,但通信效率不高;Web Service是一個支持不同操作系統(tǒng)、不同軟件在網(wǎng)絡間互相操作的模塊化組件,常用于Android應用調用第三方服務器提供的數(shù)據(jù)服務,由于底層通常使用HTTP和XML傳輸數(shù)據(jù),通信效率也不高。

4 AMF在Android平臺實現(xiàn)

BlazeDS的源代碼中已包括AMF的傳輸、序列化與反序列化等功能,但因為Android SDK與JDK的差異,無法直接在Android上使用。經(jīng)研究,使用第三方的AMF解析組件并將組件針對Android SDK進行修改是更為高效的解決方法。

第三方AMF解析組件am~serializer實現(xiàn)了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數(shù)據(jù),沒有與服務器端通信的功能,所以還需要參考BlazeDS源代碼中的AMFConnection類,實現(xiàn)網(wǎng)絡傳輸?shù)墓δ堋?/p>

5測試

為驗證AMF的數(shù)據(jù)傳輸效率優(yōu)于Web Service和HHTTP方式,以學生基本信息數(shù)據(jù)為例,把測試程序使用不同的數(shù)據(jù)傳輸方式與網(wǎng)絡服務器通信所耗費的時間進行比較。為減小誤差,每組數(shù)據(jù)測試lO次、取平均值如表l所示。

6結語

測試數(shù)據(jù)顯示,在Android移動應用開發(fā)中使用AMF數(shù)據(jù)通信格式是理想的選擇,相比HTTP和Web Service方式,可以更好地節(jié)省流量、提高傳輸效率。

猜你喜歡
數(shù)據(jù)通信
基于快牙平臺實現(xiàn)全站儀與計算機的數(shù)據(jù)通信
工程與建設(2019年3期)2019-10-10 01:40:18
監(jiān)測系統(tǒng)接口數(shù)據(jù)通信方式
一種高效可靠的串行數(shù)據(jù)通信協(xié)議及處理算法
TCN實時協(xié)議棧過程數(shù)據(jù)通信研究
廣州蓄能水電廠B廠電能表數(shù)據(jù)通信研究與應用
ZigBee手持終端數(shù)據(jù)通信模塊設計
鄂伦春自治旗| 万全县| 苗栗县| 岳西县| 裕民县| 平原县| 家居| 寿宁县| 商洛市| 运城市| 仪陇县| 镇坪县| 舒城县| 中山市| 宁明县| 柳州市| 电白县| 叙永县| 荥经县| 稻城县| 广宁县| 理塘县| 南汇区| 乐东| 合江县| 郸城县| 沈阳市| 贞丰县| 伊春市| 普安县| 塔河县| 岳池县| 依兰县| 双柏县| 怀来县| 莱西市| 青海省| 孙吴县| 巴彦县| 昌图县| 宁德市|