
优雅设计封装基于Okhttp3的网络框架
如今Android开发中Okhttp已成为主流网络框架,内置丰富、全面的网络请求功能,此系列文章旨于:基于okhttp3框架来设计封装一个扩展性强、耦合度低的网络框架。完成扩展其对数据库的支持、对多文件上传、多线程文件下载的支持、对Json数据解析等功能的支持。
鸽一门
Slow down, Old Sport. 慢慢来,比较快~
展开
-
优雅设计封装基于Okhttp3的网络框架(完):原生HttpUrlConnction请求、多线程分发 及 数据转换
前5篇博文完成了此框架的一大模块—–多线程下载,而这两篇文章实现另一大模块——Http基本框架封装,在上一篇博文中完成了HttpHeader的接口定义和实现、状态码定义及response、request接口封装和实现,定义了许多接口和抽象类,在接下来编码过程中会体现出程序的扩展性重要性。在此篇博文中将添加新功能——原生请求的类库支持,你会发现在此基础上只需增加3个类即可,充分体现出了程序的扩展性。新原创 2017-08-03 07:57:38 · 3868 阅读 · 1 评论 -
优雅设计封装基于Okhttp3的网络框架(六):HttpHeader接口设计实现 及 Response、Request封装实现
到目前为止,多线程下载功能设计、编写、优化工作已经完成,但是网络框架编写工作并没有完成,此篇将完成Http核心架构,编写的新功能还是围绕在http请求上,涉及到的知识点:httpHeader的接口定义和实现http请求头和响应头访问编写http状态码定义http中的 response封装、request接口封装和实现原创 2017-08-02 10:31:57 · 3513 阅读 · 0 评论 -
优雅设计封装基于Okhttp3的网络框架(五):多线程、单例模式优化 及 volatile、构建者模式使用解析
关于多线程下载功能,前四篇博文所讲解内容已经实现,接下来需要对代码进行优化。开发一个新功能并不复杂,难的是考虑到代码的扩展性和解耦性,后续需要进行的bug修复、完善功能等方面。此篇内容主要讲解代码优化,将从线程优化、单例优化、设计优化这三个方面进行讲解。此篇内容将涉及到以下知识:线程优化及Linux系统中线程调度介绍Android中常用的5种单例模式解析volatile关键字底层原理及注意事项原创 2017-08-01 11:45:21 · 2286 阅读 · 0 评论 -
优雅设计封装基于Okhttp3的网络框架(四):多线程下载添加数据库支持(greenDao)及 进度更新
通过前三篇博文的学习,已经编码实现多线程下载功能的核心代码,通过多个线程之间的管理和调度来处理下载任务,最后再引入队列机制来完善功能。此篇博文主旨需要将下载的进度存储到数据库中,目的是为了可以在恢复时可以取出进程下载进度,从未下载部分开始下载,能更节省流量,提高用户体验。此篇文章将学习:多线程下载添加数据库支持greenDao开源库自动生成数据库相关代码完善网络请求接口中的进度更新功能原创 2017-07-31 14:08:43 · 2387 阅读 · 0 评论 -
优雅设计封装基于Okhttp3的网络框架(三):多线程下载功能核心实现 及 线程池、队列机制、终止线程解析
通过前两篇博文的学习,已经带领大家学习了HTTP协议与Okhttp相关内容的学习,并且在上篇博文已经完成了初始编码工作:定义好了网络请求接口DownloadCallback 和网络请求类HttpManager,可以完成同步、异步请求操作,而接下来将编码实现多线程下载功能的核心代码,通过多个线程之间的管理和调度来处理下载任务,最后再引入队列机制来完善功能。此篇文章将学习:多线程核心功能编写,线程池原理,队列机制原创 2017-07-11 12:39:36 · 3750 阅读 · 0 评论 -
优雅设计封装基于Okhttp3的网络框架(二):多线程下载功能原理设计 及 简单实现
通过上篇博客的学习,相信大家已经对Http协议及OKhttp3框架使用有一定的理解,切身感受到OKhttp3请求网络方法简单易懂,是否意味着可以直接通过它去解决开发中的相关网络需求?并非如此,它的使用方式确实简单,但是在实现某一模块或功能时,不仅要考虑OKhttp3框架使用,还涉及到其余网络编程相关知识的混合,例如线程的调度和管理、本地缓存操作处理。当多个模块融合在一起时,会发现实现基本功能不仅仅是原创 2017-07-09 13:24:11 · 2177 阅读 · 0 评论 -
优雅设计封装基于Okhttp3的网络框架(一):Http网络协议与Okhttp3解析
如今Android开发中Okhttp已成为主流网络框架,内置丰富、全面、强大的网络请求功能,也为开发者提供了api,但是在项目开发中的大量使用,会出现api的重复调用、代码冗杂等现象。应当封装一个适用于项目的网络框架,便于使用。此系列文章旨于:基于okhttp3原始框架来设计封装一个满足业务需求、扩展性强、耦合度低的网络框架。具体框架功能为:扩展其对数据库的支持对多文件上传、多线程文件下载的支持数据解析原创 2017-07-04 16:36:11 · 4551 阅读 · 0 评论