Android

Rx2:小create,大文章

前言 自从去年8月底《浅谈RxJava与2.0的新特性》,已经过去快一年。笔者也没想到此文竟有读者等笔者填坑快一年了,不禁汗颜。所以笔者打算写关于一个 RxJava2 的系列文章,既为填坑,也为回报读者对我的支持。本文为第一篇。 读本系列文章,你可能有如下收获: 了解其设计原理,代码实现 掌握操作符的正确使用姿势,避免采坑 强化 Rx 编程思想,写出更 Rx 的代码 跟读精彩的源码,强化编程功底 废话不多说,进入正题。 Reactive Streams 之前在《浅谈RxJava与2.

  • dieyidezui
    dieyidezui
9 min read
Android

聊聊 Android HTTPS 的使用姿势

HTTPS 简介 HTTPS 全称 HTTP over TLS。TLS是在传输层上层的协议,应用层的下层,作为一个安全层而存在,翻译过来一般叫做传输层安全协议。 对 HTTP 而言,安全传输层是透明不可见的,应用层仅仅当做使用普通的 Socket 一样使用 SSLSocket 。 TLS是基于 X.509 认证,他假定所有的数字证书都是由一个层次化的数字证书认证机构发出,即 CA。另外值得一提的是 TLS 是独立于 HTTP 的,任何应用层的协议都可以基于 TLS

  • dieyidezui
    dieyidezui
9 min read
Java

从Java类加载初始化到Android热修复

近日笔者在研读 Java Language Specification ,对 Java 类的加载过程略有所得。又联想到最近公司同事分享的一个QZone的Android热修复的技术,正是利用Android的类加载机制来完成的。故写文分享,如有不当之处,还请大家指正。 类加载过程 一个类的加载过程,经历了加载、验证、准备、解析(可选) 这几个阶段,其中验证、准备、解析合称为连接阶段。 加载 那什么是加载,简单的说就是根据一个类名,去寻找这个类的二进制信息,并转化为Class对象。一个类何时被加载,Java 虚拟机规范没有明确的指明,但是何时初始化,是有严格的要求的,

  • dieyidezui
    dieyidezui
13 min read
okhttp

OkHttp3.4.x源码剖析

OkHttp在一个月前迎来了3.4.x时代,内部对架构做了大量的修改,移除了HttpEngine的概念,通过Interceptor与Chain用职责链模式来完成整个请求的过程,内部透明的进行了重试,重定向,header替换,gzip解压,存取cookie,读写缓存等过程。 笔者研读了源码后觉得十分精彩,于是想分享一下OkHttp的网络请求执行流程与架构。因而不会过多关注其API,但是OkHttp提供了很多实用简洁的API来帮助用户完成网络请求,具体的用法可以关注官方wiki OkHttp简介 OkHttp是一个精巧的网络请求库,有如下特性: 支持http2,对一台机器的所有请求共享同一个socket 内置连接池,支持连接复用,减少延迟 支持透明的gzip压缩响应体 通过缓存避免重复的请求 请求失败时自动重试主机的其他ip,自动重定向 好用的API 其本身就是一个很强大的库,再加上Retrofit2、Picasso的这一套组合拳,

  • dieyidezui
    dieyidezui
15 min read