在弱网传输的情况下,是怎么做到节约流量的(面试小问题,Android篇)

马上毕业了,在毕业之际,我辞掉了以前的实习工作,主要是工作内容不太感兴趣。最近在找工作,主要是找Java和Android方面的工作。自以为学得不错,但是面试屡屡受挫。先提一下问到的一些问题吧。

第一个:在弱网传输的情况下,是怎么做到节约流量的?

由于Android接触的确实不多,这个问题自然没有很愉快的答上来。

我这样回答的:将一些数据进行压缩,例如传一个字符串,先将字符串转换成字符数组的形式,然后对这个字符数组进行压缩。然后就是对很多传输对象(一般都是JSON,XML这种方式太笨重了),提取公共的部分,然后只将不同的部分传输过去(我在想,怎么知道是相同的呢...)

自认为回答的不太好,面试官也没有多说。

面完试,在网上搜资料,加上自己的理解,整理了下。

首先来说一下Android与服务器的数据交互方式吧。

1、  Socket(TCP/UDP)

2、  NIO,还有衍生的NIO框架例如Netty

3、  WebService(特指Soap协议下用XML传输数据)

4、  JSON(特质http协议下用基于Rest风格的传输方式)

这里呢,说到数据压缩,我觉得应该是指将JSON进行先压缩再传输吧。

解决数据过大的问题,最直观的方法就是压缩数据。服务器将需要传递的数据先进行压缩,再发送给Android客户端,Android客户端接收到压缩的数据,对其解压,得到压缩前的数据。

下面这个图应该能说明具体情况。

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值