12 2021 档案

摘要:前言 在前面的文章中,我们介绍完了所有OkHttp自带的拦截器,再回顾一下整个拦截器责任链图: 在整个拦截器责任链中,用户还可以添加自定义的拦截器,有两个位置可以添加,对应的方法分别是: OkHttpClient.Builder::addInterceptor方法 fun addIntercepto 阅读全文
posted @ 2021-12-19 00:54 Giagor 阅读(553) 评论(0) 推荐(0)
摘要:前言 接下来我们要分析的是拦截器链上的最后一个拦截器CallServerInterceptor,它用于写入请求与获取响应,这里不需要再调用拦截器责任链的proceed方法,CallServerInterceptor在intercept方法中将自己的工作做完后,就直接将响应返回给上一拦截器。 Call 阅读全文
posted @ 2021-12-19 00:52 Giagor 阅读(2040) 评论(0) 推荐(0)
摘要:前言 上一篇文章我们介绍了CacheInterceptor拦截器,这篇文章我们要介绍的拦截器是ConnectInterceptor,该拦截器的作用是获得一个健康可用的与目标服务器的连接,然后就将请求交给下一个拦截器处理。 该拦截器的内部实现非常的复杂,涉及到OkHttp许多的机制,例如路由选择机制、 阅读全文
posted @ 2021-12-19 00:34 Giagor 阅读(2834) 评论(1) 推荐(1)
摘要:前言 上一篇文章,我们介绍了BridgeInterceptor,这一篇文章我们就来介绍CacheInterceptor,它与OkHttp的缓存机制有关。 在介绍OkHttp的缓存机制之前,我们先来了解下Http的缓存机制。 Http的缓存机制 缓存主要指代理服务器或客户端的磁盘中保存的资源副本,通过 阅读全文
posted @ 2021-12-19 00:19 Giagor 阅读(1189) 评论(0) 推荐(0)
摘要:前言 上一篇文章,我们介绍了RetryAndFollowUpInterceptor拦截器,该拦截器的下一个拦截器就是BridgeInterceptor,本篇文章我们就对BridgeInterceptor进行一个介绍。 从BridgeInterceptor的名字可以看出,它起的是一个桥接的作用: 将用 阅读全文
posted @ 2021-12-19 00:15 Giagor 阅读(597) 评论(0) 推荐(0)
摘要:前言 在上一篇文章「探索OkHttp系列 (一) 请求的发起与响应」,我们介绍了请求的发起与响应的整个过程,在介绍请求响应的时候,最关键的点是拦截器机制与责任链模式,关于责任链模式在请求的响应中是如何运用的,我们已经在上篇文章讲述了,但是上篇文章没有去详细地介绍各个拦截器的作用,从这篇文章开始,我们 阅读全文
posted @ 2021-12-19 00:13 Giagor 阅读(1836) 评论(0) 推荐(0)
摘要:前言 OkHttp是个人使用的比较多的网络请求库,但是一直没有探究它的实现原理,这次就对OkHttp的源码进行分析,探究其实现原理。 分析的okhttp源码版本:4.9.2。 基本使用 GET 同步地发起请求,会阻塞线程,不能直接在主线程当中调用 private fun getData() { th 阅读全文
posted @ 2021-12-19 00:11 Giagor 阅读(1521) 评论(0) 推荐(0)
摘要:分析的源码基于android-8.0.0_r4 《安卓进阶解密》读书笔记 应用程序进程启动过程 在「Android系统启动」笔记中提到,Zygote进程中会有一个Server端的Socket,等待AMS请求"创建新的应用程序进程",这里会将「AMS请求」与「Zygote进程响应,创建应用程序进程」这 阅读全文
posted @ 2021-12-17 10:46 Giagor 阅读(210) 评论(0) 推荐(0)
摘要:《安卓进阶解密》读书笔记 这里分析的源码基于android-8.0.0_r4. 「根Activity的启动过程」和「Activity的启动_5.0」笔记记录的,有大部分过程是一样的. 概述 根Activity启动过程中涉及到的进程及其交互 时序图如下 这里将根Activity的启动划分为四部分 La 阅读全文
posted @ 2021-12-17 10:43 Giagor 阅读(69) 评论(0) 推荐(0)
摘要:分析的源码基于android-8.0.0_r4 《安卓进阶解密》读书笔记 Android系统启动 在Android系统启动的流程中,主要介绍下面几点 init进程启动过程 Zygote进程启动过程 SystemServer进程启动过程 Launcher启动过程 其中,init、Zygote、Syst 阅读全文
posted @ 2021-12-17 10:28 Giagor 阅读(127) 评论(0) 推荐(0)
摘要:源码分析基于 Android 5.0.0_r2 这里分析Activity的启动,沿着思路:在一个app的已有的Activity之上,启动另外一个Activity,这两个Activity属于同一个app、同一个进程 整体流程 相关类介绍 Instrumentation:仪表盘,具体到应用程序中是管理A 阅读全文
posted @ 2021-12-16 19:50 Giagor 阅读(132) 评论(0) 推荐(0)
摘要:本篇文章不关注ViewModel是如何使用的,主要讨论的是ViewModel的原理以及它是如何创建的 ViewModel的创建 我们在创建ViewModel的时候,有多种方式,比如,我们可以直接调用它的构造方法 val model = MyViewModel() 我们也可以使用下面的方法来创建 va 阅读全文
posted @ 2021-12-15 14:55 Giagor 阅读(240) 评论(0) 推荐(0)
摘要:本篇为《深入理解Java虚拟机 第3版》读书笔记 文中,《Java虚拟机规范》简称《规范》 类文件结构 平台无关性和语言无关性的基石:Java虚拟机和字节码存储格式 平台无关性:Java虚拟机可以运行在各种不同的硬件平台和操作系统上,这些虚拟机都可以载入和执行同一种平台无关的字节码,从而实现程序的“ 阅读全文
posted @ 2021-12-14 21:35 Giagor 阅读(69) 评论(0) 推荐(0)
摘要:本篇为《深入理解Java虚拟机 第3版》读书笔记 文中,《Java虚拟机规范》简称《规范》 内存区域与内存溢出异常 运行时数据区域 程序计数器 字节码解释器工作时,通过改变这个计数器的值,来选取下一条需要执行的字节码指令 程序计数器特点 每条线程有一个独立的程序计数器「即线程私有」 执行Java方法 阅读全文
posted @ 2021-12-13 21:24 Giagor 阅读(101) 评论(0) 推荐(0)