如何打造茄子快傳這樣一款A(yù)ndroid應(yīng)用(項(xiàng)目已完成,github)

打造茄子快傳文件Android端傳輸應(yīng)用

如何打造茄子快傳這樣一款 零耗流量的文件傳輸應(yīng)用烛恤?

效果圖

主界面
茄子快傳主界面

文件發(fā)送方
文件發(fā)送方_1
文件發(fā)送方_2
文件發(fā)送方_3

文件接收方
文件接收方_1
文件接收方_2

正如你看到的效果圖那樣母怜,該項(xiàng)目已經(jīng)完結(jié)了,并且完成了以下功能:
1.Android設(shè)備間傳輸文件
2.網(wǎng)頁(yè)傳輸文件

項(xiàng)目地址:https://github.com/mayubao/Kuaichuan

注意:運(yùn)行效果跟茄子快傳幾乎一模一樣缚柏,為了這UI我也是費(fèi)盡了新機(jī)苹熏。

實(shí)現(xiàn)原理

在文件接收方是利用自身的熱點(diǎn)開(kāi)啟,然后創(chuàng)建一個(gè)局域網(wǎng)。在文件發(fā)送方是要去搜索附近的wifi轨域,然后找到這個(gè)熱點(diǎn)袱耽,去連接這個(gè)熱點(diǎn)。所以在局域網(wǎng)內(nèi)傳輸是不需要耗手機(jī)流量的干发。

很早之前做茄子快傳的分析時(shí)朱巨,文件傳輸?shù)脑捒梢酝ㄟ^(guò)藍(lán)牙,wifi直連枉长,socket這三種方式冀续。藍(lán)牙和wifi直連要做配對(duì),比較麻煩必峰。為了省去中間配對(duì)環(huán)節(jié)沥阳,這里我采用用socket來(lái)實(shí)現(xiàn)文件的傳送。通過(guò)Socket來(lái)實(shí)現(xiàn)文件傳輸?shù)暮锰? 無(wú)論是什么設(shè)備都可以通過(guò)socket實(shí)現(xiàn)自点。下面是手機(jī)wifi 各個(gè)協(xié)議傳輸速度的差別:

wifi各個(gè)協(xié)議
wifi各個(gè)協(xié)議

百科鏈接
上面就是茄子快傳App實(shí)現(xiàn)兩部設(shè)備之間文件傳送的基本原理

流程圖

文件傳送操作:文件傳送是發(fā)生在兩端的桐罕,分別是文件發(fā)送端和文件接收端,就正如你看到茄子快傳的主頁(yè)那樣桂敛,主界面有兩個(gè)按鈕功炮。分別是我要發(fā)送我要接收术唬。

對(duì)應(yīng)關(guān)系:
我要發(fā)送------>>>文件發(fā)送方
我要接收------>>>文件接收方

qiezi_flow.jpg

上面的流程圖就是大致是文件發(fā)送方和文件接收方在同一個(gè)局域網(wǎng)通信的流程

分析

如果你繼續(xù)再觀察茄子快傳傳送文件的過(guò)程中薪伏,你會(huì)發(fā)現(xiàn)茄子快傳不僅僅是利用socket在簡(jiǎn)單傳輸文件,你會(huì)發(fā)現(xiàn)文件發(fā)送方文件接收方正在文件傳送的過(guò)程中都是顯示了同樣的文件傳輸列表粗仓。

注意:每一個(gè)文件傳輸條目都包含了文件大小嫁怀,文件名稱,文件的縮略圖借浊,文件傳輸?shù)倪M(jìn)度塘淑。而且還包括所有文件的大小進(jìn)度和耗時(shí)。

實(shí)現(xiàn)過(guò)程

為了實(shí)現(xiàn)茄子快傳文件接收方和文件發(fā)送方的效果蚂斤。這里我才去了自定義協(xié)議來(lái)實(shí)現(xiàn)存捺。
自定義協(xié)議:header + body
header 包括 文件的信息(文件路徑,文件的大小曙蒸,文件的名稱)[102410 byte] + 文件的縮略圖[1024 40 byte]
body 包括 實(shí)際的文件header 文件的信息是以json字符串 而文件的縮略圖是直接以byte數(shù)據(jù)寫(xiě)過(guò)去

文件傳輸關(guān)鍵核心的幾個(gè)類(lèi)詳情查看:
Transferable.java
BaseTransfer.java
FileSender.java
FileReceiver.java
這四個(gè)文件

項(xiàng)目地址

這是我在github上面的項(xiàng)目鏈接:猛戳 https://github.com/mayubao/Kuaichuan
喜歡的給個(gè)star捌治,有幫助的fork一下,在這里感謝您讀了這一篇文章E摺Pび汀! _

注意:在AdroidStudio 可以直接checkout下來(lái)臂港。請(qǐng)確保你的git地址是正確的森枪。

測(cè)試

測(cè)試的話是需要兩部真機(jī)來(lái)測(cè)試的视搏。在Android測(cè)試機(jī) 分別是 魅藍(lán)2 與 華為 SCL-TL00, Vivo xs1 運(yùn)行正常

版本

v1.0

實(shí)現(xiàn)了Android設(shè)備間文件傳輸功能

v1.1

實(shí)現(xiàn)了網(wǎng)頁(yè)傳輸文件功能

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末疲恢,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子瓷胧,更是在濱河造成了極大的恐慌显拳,老刑警劉巖,帶你破解...
    沈念sama閱讀 217,277評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件搓萧,死亡現(xiàn)場(chǎng)離奇詭異杂数,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)瘸洛,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,689評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門(mén)揍移,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人反肋,你說(shuō)我怎么就攤上這事那伐。” “怎么了石蔗?”我有些...
    開(kāi)封第一講書(shū)人閱讀 163,624評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵罕邀,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我养距,道長(zhǎng)诉探,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 58,356評(píng)論 1 293
  • 正文 為了忘掉前任棍厌,我火速辦了婚禮肾胯,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘耘纱。我一直安慰自己敬肚,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,402評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布束析。 她就那樣靜靜地躺著帘皿,像睡著了一般。 火紅的嫁衣襯著肌膚如雪畸陡。 梳的紋絲不亂的頭發(fā)上鹰溜,一...
    開(kāi)封第一講書(shū)人閱讀 51,292評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音丁恭,去河邊找鬼曹动。 笑死,一個(gè)胖子當(dāng)著我的面吹牛牲览,可吹牛的內(nèi)容都是我干的墓陈。 我是一名探鬼主播,決...
    沈念sama閱讀 40,135評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贡必!你這毒婦竟也來(lái)了兔港?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 38,992評(píng)論 0 275
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤仔拟,失蹤者是張志新(化名)和其女友劉穎衫樊,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體利花,經(jīng)...
    沈念sama閱讀 45,429評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡科侈,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,636評(píng)論 3 334
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了炒事。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片臀栈。...
    茶點(diǎn)故事閱讀 39,785評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖挠乳,靈堂內(nèi)的尸體忽然破棺而出权薯,到底是詐尸還是另有隱情,我是刑警寧澤睡扬,帶...
    沈念sama閱讀 35,492評(píng)論 5 345
  • 正文 年R本政府宣布崭闲,位于F島的核電站,受9級(jí)特大地震影響威蕉,放射性物質(zhì)發(fā)生泄漏刁俭。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,092評(píng)論 3 328
  • 文/蒙蒙 一韧涨、第九天 我趴在偏房一處隱蔽的房頂上張望牍戚。 院中可真熱鬧,春花似錦虑粥、人聲如沸如孝。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 31,723評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)第晰。三九已至,卻和暖如春彬祖,著一層夾襖步出監(jiān)牢的瞬間茁瘦,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 32,858評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工储笑, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留甜熔,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,891評(píng)論 2 370
  • 正文 我出身青樓突倍,卻偏偏與公主長(zhǎng)得像腔稀,于是被迫代替她去往敵國(guó)和親盆昙。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,713評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容