单位文秘网 2021-10-14 08:10:15 点击: 次
思想,又简化了编程人员的工作、缩短开发时间;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方式,可以更好地节省流量、提高传输效率。
(责任编辑:单位文秘网) )地址:https://www.kgf8887.com/show-222-95959-1.html
上一篇:互联网络下的数据通信交换技术论述
下一篇:山西电力数据通信网络流量监控研究
版权声明:
本站由单位文秘网原创策划制作,欢迎订阅或转载,但请注明出处。违者必究。单位文秘网独家运营 版权所有 未经许可不得转载使用