原创 OkHttp-RetryAndFollowUpInterceptor源碼解析

RetryAndFollowUpInterceptor源碼分析 本文基於okhttp3.10.0 近段時間準備陸陸續續把okhttp攔截器分析一遍,既然是本系列開篇那先來回顧下攔截器是幹嘛的,然後在開始今天的主題。 1. 攔截

原创 OkHttp-BridgeInterceptor源碼解析

BridgeInterceptor源碼解析 本文基於okhttp3.10.0 這是okhttp攔截器中第二個,作用非常簡單就是增加必要的請求頭,處理請求體。 1. 主要功能 添加請求頭 Cookie管理 Gzip壓縮 1.

原创 OkHttp-CallServerInterceptor源碼解析

本文基於okhttp3.10.0,並且只介紹http1相關的內容不涉及http2.0 終於到最後一個攔截器了,前面我們說到在ConnectInterceptor中會建立連接創建RealConnection和HttpCodec,

原创 OkHttp-ConnectInterceptor源碼解析

ConnectInterceptor源碼解析 本文基於okhttp3.10.0 1. 概述 ConnectInterceptor主要是用於建立連接,並再連接成功後將流封裝成對象傳遞給下一個攔截器CallServerInterc

原创 View繪製源碼淺析(一)佈局的加載

前言 說到View的繪製大部分人都能說上一兩句,但細節實在太多如果沒系統的去看很難吃透。近期我專門抽了一週多的時間讀了繪製相關的源碼,這裏準備用三篇博客做一個系統的講述,目錄如下。 View繪製源碼淺析(一)佈局的加載 View

原创 OkHttp-CacheInterceptor源碼解析

OkHttp-CacheInterceptor源碼解析 本文基於okhttp3.10.0 1. 主要功能 主要功能其實就一句話按照http協議實現響應的緩存,那既然是按http協議去實現,我們先簡單過一下http緩存這塊。 1

原创 Activity

本系列主要是讀書筆記,知識點百分之90來自 <<安卓開發藝術探索>>和<<安卓羣英傳>>,還有百分之10是自己的擴展與理解.歡迎吐槽 生命週期 一.正常情況下生命週期如圖 正常生命週期 開起activity調用onCre

原创 Okio源碼解析

Okio是對java原生io的封裝,旨在簡化api同時優化io操作性能。接下來我會從下面幾個方面介紹 Okio特性概述 讀寫流程源碼查看 Buffer精華操作 Timeout超時處理 1. Okio特性概述 java已經提

原创 利用APT實現一個組件初始化庫

背景(爲什麼做) 在做組件化的過程中發現一個問題,之前我們都是把第三方庫和一些初始化的邏輯寫在Application,ok這樣在單Module的項目是沒有問題的,但是當拆成多Module項目的時候這個初始化邏輯在殼App的Appl

原创 Gradle入門(一)--Groovy常用語法

概述 Groovy是一種可以用於構建的DSL,基於Jvm支持所有的Java語法,同時又對Java進行了擴展,提供了大量的語法糖去簡化我們的代碼。在開發中既能像Java一樣用面向對象的方式編寫,也能像腳本一樣用面向過程的方式編寫。而

原创 組件化方案

近期公司有組件化的打算,因此對市面上的方案進行了調研,目前已經整理出一套作爲項目組件化的方案,這裏分享一波,當然組件化是沒法一步到位的,中間肯定少不了踩坑優化,所以本篇也會持續更新。 那麼我們先說說組件化是幹嘛的吧,組件化就是將單模塊

原创 Android插件化初體驗

最近把Activity啓動流程整體看了一遍,估摸着弄個啥來鞏固下,發現插件化正好是這塊技術的實踐,而說道插件化其實有好幾種實現方式,這裏我用的是hook的方式實現,主要目的呢是爲了對activity啓動流程有個整體的認識,當然了本篇

原创 View繪製源碼淺析(二)佈局的測量、佈局、繪製

前言 在第一篇View繪製源碼淺析(一)佈局的加載我們知道了setContentView()完成了DecorView的創建,並且將xml中的佈局標籤轉換成了對應的View、屬性轉換成了對應的LayoutParams然後添加到了id爲c

原创 View繪製源碼淺析(一)setContentView()和View顯示到Window

概述 View的繪製流程大致可以分爲兩大塊,一塊是setContentView()和View顯示在屏幕上這個整體流程的梳理,另外一塊是measure、layout、draw細節的實現,由於內容比較多所以我準備分兩篇博客講述。 那麼本篇

原创 Android開發應該知道的HTTPS相關知識

前言 越來越多的網站和APP將請求協議從HTTP轉換到了HTTPS,那麼作爲安卓程序員我們也有必要了解下HTTPS,不過本篇文章並不想講太多難懂的理論,更多的是講述HTTPS是如何實現數據加密並且身份驗證的,除此之外還有個額外補充是關