OKHTTP3源码2-连接池管理 ?>

OKHTTP3源码2-连接池管理

整体架构

《OKHTTP3源码和设计模式-1》,中整体介绍了 OKHttp3 的源码架构,重点讲解了请求任务的分发管理和线程池以及请求执行过程中的拦截器。这一章我们接着往下走认识一下 OKHttp3 底层连接和连接池工作机制。

RealCall 封装了请求过程, 组织了用户和内置拦截器,其中内置拦截器 retryAndFollowUpInterceptor -> BridgeInterceptor -> CacheInterceptor 完执行层的大部分逻辑 ,ConnectInterceptor -> CallServerInterceptor 两个拦截器开始迈向连接层最终完成网络请求。

连接层连[……]

继续阅读

OkHttp3源码和设计模式-1 ?>

OkHttp3源码和设计模式-1

《打车APP实战》课程中,我们使用 OkHttp3 简单搭建了一个网络框架, 实践了 OkHttp3 的用法。不过课程本身的重点是 MVP 架构的实践,所以没有进一步 OkHttp3 底层的实现细节。本文来探究一下 OkHttp3 的源码和其中的设计思想。

关于 OkHttp3 的源码分析的文章挺多,不过大多还是在为了源码而源码。个人觉得如果读源码不去分析源码背后的设计模式或设计思想,那么读源码的意义不大。 同时,如果熟悉的设计模式越多,那么读某个框架的源码的时候就越容易,两者是相辅相成的,这也是许多大牛认为多读源码能提高编程能力的原因。

整体架构

整体架构

为了方面后面的理解,我这里简单画[……]

继续阅读

区块链入门-概念原理篇 ?>

区块链入门-概念原理篇

比特币和区块链

2008年,中本聪发布了一篇名为《比特币:一种点对点的电子现金系统》论文,之所以选择在金融危机这年发布,也许别有深意。他认为传统货币最根本的问题在于信任,银行必须让人信任它能帮我们管好钱财,但是银行却在用货币制造信贷泡沫,通货膨胀使人财富缩水。首先中本聪把比特币定义为一种点对点的电子现金系统, 目的很明确:希望这套系统不要依赖任何一个中心,比如中央银行,所以这个系统肯定是分布式系统。
区块链的概念是在中本聪设计比特币系统的时候首次提出,也是区块链技术第一次得以落地并且运用得最成功的一次。比特币是一种业务场景, 区块链是比特币这种业务场景实现的技术基础,要了解区块链,先简单了解[……]

继续阅读

Hook Android 应用启动页 ?>

Hook Android 应用启动页

问题

前两天看到联通沃商店的 SDK 能让接入方应用的入口 Activity 在联通的闪屏页面结束之后出现, 我想他是不是采用什么黑科技 hook 了人家应用的入口 Activity? 反编译看了下,并无什么黑科技, 而是要求接入方声明它的闪屏页面为入口页面。那么能不能在接入方无知觉的情况下 hook 应用的入口 Activity,先 hold 住等我们自定义的 Activity 完成之后再进入?

问题再简化一下:如何 hook 一个应用的入口 Activity,插入自己的Activity?

思路

我们首先要知道一个应用的入口Activiy是怎么被创建,然后被现实出来的?如果看过插件化[……]

继续阅读

Hook Android 应用启动页 ?>

Hook Android 应用启动页

问题

假如你现在要开发一个 SDK,比如说广告SDK吧,你希望在应用的入口 Activity 之前插入你的 Activity,在你的 Activity 中显示广告, 怎么做? 我看过联通沃商店的做法, 要求接入方声明自己的 Ativity 为入口 Activity,这种做法显然不符合一个技术人的追求的。那么我们能不能在接入方无感知的情况把我们的 Activity 强制插入到入口 Activity创建前来显示呢?

问题再简化一下:如何 hook 一个应用的入口 Activity,插入自己的Activity?

思路

我们首先要知道一个应用的入口Activiy是怎么被创建,然后被现实出来的?[……]

继续阅读