這是一門面向Android中高級(jí)工程師、初級(jí)架構(gòu)師的網(wǎng)絡(luò)層架構(gòu)設(shè)計(jì)課程,采用Retrofit網(wǎng)絡(luò)框架的設(shè)計(jì)思路,從底層開始設(shè)計(jì)與實(shí)現(xiàn)一個(gè)全新的、功能強(qiáng)大的網(wǎng)絡(luò)框架,支持多線程下載、GreenDao、RxJava、https、dns、注解、重連與錯(cuò)誤處理等,具有非常強(qiáng)的通用性和代表性
第1章 課前須知
介紹如何去學(xué)習(xí),課程適合的人群、怎么才能融會(huì)貫通
第2章 主流網(wǎng)絡(luò)框架分析
常用網(wǎng)絡(luò)框架介紹,分析volley 、Android-async-http、Afinal框架、xUtils、okhttp、retrofit、優(yōu)有點(diǎn)缺點(diǎn)、教會(huì)選擇一個(gè)框架的標(biāo)準(zhǔn)是什么?
第3章 http協(xié)議詳解
介紹http1.0、1.1 2.0版本和spdy協(xié)議、示例講解請(qǐng)求頭的應(yīng)用場(chǎng)景、響應(yīng)頭的種類劃分、緩存相關(guān)字段等。
第4章 okhttp3詳解
講解使用 okhttp3發(fā)送同步請(qǐng)求異步請(qǐng)求 get/post/上傳文件/ 支持緩存、 http協(xié)議緩存實(shí)現(xiàn)的原理
第5章 多線程下載功能設(shè)計(jì)
本章講解框架搭建,下載框架是解決的幾個(gè)關(guān)鍵問題,與下載相關(guān)的字段示例、編寫框架的核心代碼、多線程使用原理。
第6章 多線程下載功能優(yōu)化
本章主要是優(yōu)化多線程下載功能,增加隊(duì)列機(jī)制、添加數(shù)據(jù)庫(kù)支持、進(jìn)度更新、多線程優(yōu)化、單例、構(gòu)建者模式實(shí)際應(yīng)用講解、架構(gòu)設(shè)計(jì)的一些見解。
第7章 客戶端設(shè)計(jì)
本章開始對(duì)框架的 header進(jìn)行封裝、對(duì)狀態(tài)碼定義 request進(jìn)行封裝 、對(duì)response進(jìn)行封裝,且對(duì)抽象的工廠模式進(jìn)行實(shí)際應(yīng)用并編寫測(cè)試用例測(cè)試核心架構(gòu)的功能
第8章 框架拓展設(shè)計(jì)
本章開始拓展支持原生HttpURLConnection 實(shí)現(xiàn)網(wǎng)絡(luò)請(qǐng)求、增加請(qǐng)求的異步處理和隊(duì)列機(jī)制,增加了自動(dòng)類型的轉(zhuǎn)換并對(duì)網(wǎng)絡(luò)框架設(shè)計(jì)和實(shí)現(xiàn)的原理進(jìn)行分析,以方便大家遇到具體需求是能夠在此基礎(chǔ)上靈活方便的進(jìn)行拓展。
第9章 網(wǎng)絡(luò)框架重構(gòu)
本章解決前面實(shí)現(xiàn)過程中遺留問題,并分析框架原理,重構(gòu)網(wǎng)絡(luò)請(qǐng)求代碼、重新封裝reponse和request、NiceClient等,讓我們的框架更易用。
第10章 網(wǎng)絡(luò)框架注解功能設(shè)計(jì)與實(shí)現(xiàn)
本章會(huì)講解動(dòng)態(tài)代理和注解處理,并定義相關(guān)注解,例如GET、POST、Query、QueryMap、Path、Filed、FiledMap,讓我們的網(wǎng)絡(luò)框架也支持注解功能。支持發(fā)送json到服務(wù)器
第11章 錯(cuò)誤碼和重連功能設(shè)計(jì)與實(shí)現(xiàn)
本章通過注解實(shí)現(xiàn)重新連接功能,支持對(duì)錯(cuò)誤碼的處理功能
第12章 https功能設(shè)計(jì)與實(shí)現(xiàn)
本章會(huì)講解https的原理、常見的加密知識(shí)、重點(diǎn)給大家講一下單向認(rèn)證和雙向認(rèn)證,通過一個(gè)實(shí)際的單向認(rèn)證的例子給大家講一下客戶端和服務(wù)端是如何處理https功能的
第13章 httpDns功能設(shè)計(jì)與實(shí)現(xiàn)
本章給大家講一下常見的dns劫持案例,包括dns劫持解決方案和在使用httpdns過程中遇到的問題,網(wǎng)絡(luò)框架層增加httpDns功能,支持原生的HttpUrlConnection和okhttp3,可自定義替換httpdns功能
第14章 支持RxJava及課程總結(jié)
本章會(huì)帶大家為我們的框架實(shí)現(xiàn)rxjava功能,讓我們的框架也能夠支持響應(yīng)式編程。本章對(duì)框架進(jìn)行總結(jié),希望大家都再次進(jìn)行梳理和總結(jié),把課程學(xué)到的知識(shí)變成自己的東西,最后祝大家學(xué)有所成,學(xué)有所獲!