android

okhttp拦截器之CacheInterceptor

CacheInterceptor拦截器官方给个注释:Serves requests from the cache and writes responses to the cache.用于从缓存中获取相应和把相应写入缓存中,okhttp缓存默认是不开启,需要通过如下方式设置Cache

okhttp拦截器之BridgeInterceptor

BridgeInterceptor的内容很简单,先看它的介绍:从应用程序代码到网络代码的桥梁。首先,它根据用户请求构建网络请求。然后它继续调用网络。最后,它从网络响应构建用户响应。

okhttp拦截器之RetryAndFollowUpInterceptor

okhttp源码版本: 4.9.0

承接上篇okhttp框架解析

第一个内置拦截器,RetryAndFollowUpInterceptor如它的名字所诉重试&重定向。它会对特定的网络错误类型和需要重定向的请求进行请求网络重试,那么要想做到重试估计要开启一个循环不停的处理,那它具体是如何工作的呢?

okhttp框架解析

作为Android程序员除了Google官方提供Android源码,开发项目时还要用很多优秀的三方开源库帮助我们快速开发,OKhttp3作为square开源的网络库,已成Android程序员必用的网络库,因为其优秀的代码设计、完善的网络请求功能,也被Google收入官方源码实现。作为开发者学习作为网络的网络有很多分析OkHttp的文章,大多都是讲OkHttp的使用、框架结构以及设计模式等这些内容。而这些只是OkHttp的一些手段和方式,它本质上一个网络请求的库,我们阅读源码的时,实现只不过是为了达到目的一种方式,脱离目的的实现,如缘木求鱼。所以在分析OkHttp源码的时一定要结合http本身的特性,不然就很容易偏离事物本质。

Java Binder解析

在Native Binder的系统服务注册过程中,核心是ServiceManager,在Java Binder中,也有一个ServiceManager,然而这个ServiceManager是个Java文件。在Java Binder注册系统服务到也需要用到ServiceManager,那么需要选择一个系统服务来窥探这一过程,这里以常见的ActivityManagerServcie(AMS)为例。

Java Binder的JNI注册

在Binder机制的架构中,分为Java Binder和Native Binder。Java层的Binder可以说是Native层的Binder的镜像,而Java Binder这个镜像归根结底还是依赖Native Binder层的运转,那么Java Binder要和Native Binder肯定需要建立某种联系进行通信,这种联系就是通过JNI,

Native Binder机制之ServiceManager

上篇文章以MediaPlayService为例,讲解了系统服务进程注册到ServiceManager的过程,那与之相对应的过程是服务的获取过程。但在这之前需要先了解ServiceManager,之前有说到过defaultServiceManager函数返回BpServiceManager,然后通过命令发送给handle为0的服务端,这个服务端就是ServiceManager。所以首先要了解ServiceManager的启动过程,这样更有助于理解系统服务的注册过程和获取过程。