茄子快传 java,如何打造茄子快传这样一款Android应用(项目已完成,github)

打造茄子快传文件Android端传输应用

如何打造茄子快传这样一款 零耗流量的文件传输应用?

效果图

主界面

c2abbddcaa15

茄子快传主界面

文件发送方

c2abbddcaa15

文件发送方_1

c2abbddcaa15

文件发送方_2

c2abbddcaa15

文件发送方_3

文件接收方

c2abbddcaa15

文件接收方_1

c2abbddcaa15

文件接收方_2

正如你看到的效果图那样,该项目已经完结了,并且完成了以下功能:

1.Android设备间传输文件

2.网页传输文件

注意:运行效果跟茄子快传几乎一模一样,为了这UI我也是费尽了新机。

实现原理

在文件接收方是利用自身的热点开启,然后创建一个局域网。在文件发送方是要去搜索附近的wifi,然后找到这个热点,去连接这个热点。所以在局域网内传输是不需要耗手机流量的。

很早之前做茄子快传的分析时,文件传输的话可以通过蓝牙,wifi直连,socket这三种方式。蓝牙和wifi直连要做配对,比较麻烦。为了省去中间配对环节,这里我采用用socket来实现文件的传送。通过Socket来实现文件传输的好处: 无论是什么设备都可以通过socket实现。下面是手机wifi 各个协议传输速度的差别:

73671b7efadd5d76620f222dd1a25673.png

wifi各个协议

百科链接

上面就是茄子快传App实现两部设备之间文件传送的基本原理

流程图

文件传送操作:文件传送是发生在两端的,分别是文件发送端和文件接收端,就正如你看到茄子快传的主页那样,主界面有两个按钮。分别是我要发送,我要接收。

对应关系:

我要发送------>>>文件发送方

我要接收------>>>文件接收方

c2abbddcaa15

qiezi_flow.jpg

上面的流程图就是大致是文件发送方和文件接收方在同一个局域网通信的流程

分析

如果你继续再观察茄子快传传送文件的过程中,你会发现茄子快传不仅仅是利用socket在简单传输文件,你会发现文件发送方和文件接收方正在文件传送的过程中都是显示了同样的文件传输列表。

注意:每一个文件传输条目都包含了文件大小,文件名称,文件的缩略图,文件传输的进度。而且还包括所有文件的大小进度和耗时。

实现过程

为了实现茄子快传文件接收方和文件发送方的效果。这里我才去了自定义协议来实现。

自定义协议:header + body

header 包括 文件的信息(文件路径,文件的大小,文件的名称)[102410 byte] + 文件的缩略图[1024 40 byte]

body 包括 实际的文件header 文件的信息是以json字符串 而文件的缩略图是直接以byte数据写过去

项目地址

这是我在github上面的项目链接:猛戳 https://github.com/mayubao/Kuaichuan

喜欢的给个star,有帮助的fork一下,在这里感谢您读了这一篇文章!!! _

注意:在AdroidStudio 可以直接checkout下来。请确保你的git地址是正确的。

测试

测试的话是需要两部真机来测试的。在Android测试机 分别是 魅蓝2 与 华为 SCL-TL00, Vivo xs1 运行正常

版本

v1.0

实现了Android设备间文件传输功能

v1.1

实现了网页传输文件功能

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值