相信看过上篇对其有了基本的认识,同时也知道如何使用,是不是对它的源码实现也产生了浓厚的兴趣呢(不喜欢源码的程序员不是好码农哦),不是有位大神说过学习编码的最好途径就是:Read the fucking source code。工欲善其事,必先利其器。今天我们先把源码弄下来吧!
不知道你是否尝试过下载源码,反正楼主试过,一开始真心不知道怎么弄它的源码,后来慢慢折腾才摸出了门路。下面就告诉给大家,免得走太多弯路。
做安卓的可能都认为Okhttp3是一个安卓工程(楼主一开始就这样认为)其实不是的,它是个地地道道的Java工程,你不能直接把它导入到Android Studio中(除非你自己建个工程,拷贝源码到到工程里,楼主就这么干过😄,太傻了)。
IDE
查看此源码的最好工具是IntelliJ IDEA,Eclipse,MyEclipse也可以但是个人认为不是很方便,推荐使用IntelliJ IDEA省事、省心、强大。
下载、安装IntelliJ IDEA请自行研究,没有什么难的。
下载源码
源码是在Github上,所以需要先安装git(或者下载压缩包)。
Github源码地址:https://github.com/square/okhttp
压缩包地址:https://github.com/square/okhttp/releases
Git客户端工具建议使用sourceTreehttps://www.sourcetreeapp.com/
如何下载此处不在赘述。
导入源码
打开IDEA(第一次需要选在是否导入已存在的配置,按需选择),点击Import Project—进入源码现在目录—点击pom.xml文件,一直next下去—finish(如需修改工程名字,在finish界面修改即可)
等待IDEA导入所需的依赖包
此过程有点长
导入成功后是这样的:
此时如果去编译okhttp工程会报的错误:
这是因为okhttp的版本号是自动生成的,Version.java不在src文件夹下,我们要自动添加。
step:选中okhttp工程,右键-open module settings
再次编译,即可通过。
如果还有错,那就是AndroidPlatform.java有问题,主要是Android sdk没有引入,此处使用的是4.1.1.4的sdk,在pom.xml中可以查看。如果实在无能导入(原因你懂的)把AndroidPlatform.java中的
public void log(int level, String message, Throwable t) {
// 里面的语句注释掉,此处使用了Log,没有任何影响,再次编译即可
}
项目结构
主工程
- mockwebserver — 模拟服务器,有用
- okhttp — 源码
- okhttp-logging-interceptor — 日志拦截器,可以自己实现的
- okhttp-urlconnection — 连接方式,用不上
我们主要研究的是okhttp源码,负责项目mockwebserver,其他目前没用。
到此,已经完成了,源码的下载任务,当然此项目还有很多值得研究的地方,读者可自行研究。
总结
源码下载不是什么难事,主要是没弄过会有很多弯路,在此讲一讲,给大家引导一下,觉得还是有必要的,接下来就正式进入,源码研究了,敬请期待!
网友评论