相信看過上篇對其有了基本的認(rèn)識,同時(shí)也知道如何使用含潘,是不是對它的源碼實(shí)現(xiàn)也產(chǎn)生了濃厚的興趣呢(不喜歡源碼的程序員不是好碼農(nóng)哦),不是有位大神說過學(xué)習(xí)編碼的最好途徑就是:Read the fucking source code。工欲善其事拘哨,必先利其器锡溯。今天我們先把源碼弄下來吧赶舆!
不知道你是否嘗試過下載源碼,反正樓主試過祭饭,一開始真心不知道怎么弄它的源碼芜茵,后來慢慢折騰才摸出了門路。下面就告訴給大家倡蝙,免得走太多彎路九串。
做安卓的可能都認(rèn)為Okhttp3是一個(gè)安卓工程(樓主一開始就這樣認(rèn)為)其實(shí)不是的,它是個(gè)地地道道的Java工程寺鸥,你不能直接把它導(dǎo)入到Android Studio中(除非你自己建個(gè)工程猪钮,拷貝源碼到到工程里,樓主就這么干過??胆建,太傻了)烤低。
IDE
查看此源碼的最好工具是IntelliJ IDEA,Eclipse笆载,MyEclipse也可以但是個(gè)人認(rèn)為不是很方便扑馁,推薦使用IntelliJ IDEA省事、省心凉驻、強(qiáng)大腻要。
下載、安裝IntelliJ IDEA請自行研究沿侈,沒有什么難的闯第。
下載源碼
源碼是在Github上,所以需要先安裝git(或者下載壓縮包)缀拭。
Github源碼地址:https://github.com/square/okhttp
壓縮包地址:https://github.com/square/okhttp/releases
Git客戶端工具建議使用sourceTreehttps://www.sourcetreeapp.com/
如何下載此處不在贅述咳短。
導(dǎo)入源碼
打開IDEA(第一次需要選在是否導(dǎo)入已存在的配置,按需選擇)蛛淋,點(diǎn)擊Import Project—進(jìn)入源碼現(xiàn)在目錄—點(diǎn)擊pom.xml文件咙好,一直next下去—finish(如需修改工程名字,在finish界面修改即可)
等待IDEA導(dǎo)入所需的依賴包
此過程有點(diǎn)長
導(dǎo)入成功后是這樣的:
此時(shí)如果去編譯okhttp工程會(huì)報(bào)的錯(cuò)誤:
這是因?yàn)閛khttp的版本號是自動(dòng)生成的褐荷,Version.java不在src文件夾下勾效,我們要自動(dòng)添加。
step:選中okhttp工程,右鍵-open module settings
再次編譯层宫,即可通過杨伙。
如果還有錯(cuò),那就是AndroidPlatform.java有問題萌腿,主要是Android sdk沒有引入限匣,此處使用的是4.1.1.4的sdk,在pom.xml中可以查看毁菱。如果實(shí)在無能導(dǎo)入(原因你懂的)把AndroidPlatform.java中的
public void log(int level, String message, Throwable t) {
// 里面的語句注釋掉米死,此處使用了Log,沒有任何影響贮庞,再次編譯即可
}
項(xiàng)目結(jié)構(gòu)
主工程
- mockwebserver — 模擬服務(wù)器峦筒,有用
- okhttp — 源碼
- okhttp-logging-interceptor — 日志攔截器,可以自己實(shí)現(xiàn)的
- okhttp-urlconnection — 連接方式窗慎,用不上
我們主要研究的是okhttp源碼物喷,負(fù)責(zé)項(xiàng)目mockwebserver,其他目前沒用捉邢。
到此脯丝,已經(jīng)完成了,源碼的下載任務(wù)伏伐,當(dāng)然此項(xiàng)目還有很多值得研究的地方,讀者可自行研究晕拆。
總結(jié)
源碼下載不是什么難事藐翎,主要是沒弄過會(huì)有很多彎路,在此講一講实幕,給大家引導(dǎo)一下吝镣,覺得還是有必要的,接下來就正式進(jìn)入昆庇,源碼研究了末贾,敬請期待!