
源码学习
文章平均质量分 84
咖啡老师
爱看书,喜欢的计算机
展开
-
关于Okhttp 报javax.net.ssl.SSLHandshakeException: Handshake failed
一、问题最近把环境切换到灰度环境,有一个接口一直报“javax.net.ssl.SSLHandshakeException: Handshake failed”。二、分析看这个描述,是网络连接时握手失败。这下不得不跟到源码里看了,联想到OkHttp的网络请求流程,出问题的地方应该是网络连接的地方出了问题,即ConnectInterceptor,打断点跟进去,果然,在执行到 HttpCodec httpCodec = streamAllocation.newStream(client, chain,原创 2021-05-24 17:38:45 · 7161 阅读 · 2 评论 -
漫聊 Android 插件化
前言聊完了热修复,那么它的好姐们插件化怎么能不说。原理剖析一、加载类即加载外部的dex,这里有两步操作第一步:安装即把外部的apk里的dex拷贝系统目录下。(这里以掌阅为例)掌阅的apk 来源分两种,一种来自内置在Assert目录下的插件,一种是来自网络下载的。拷贝包含三个部分:将插件(apk)拷贝到创建的存储插件的文件夹下,data/data/包名/插件名创建一个dex 输出文件夹,即dexOutputDir ,这个在创建加载插件的ClassLoader时需要需要(在构造这个Class原创 2021-01-10 22:33:09 · 594 阅读 · 0 评论 -
漫聊开源源码——Okhttp3 (上篇), 缓存那点儿零碎
概述Ok3 源码学习是我去年给自己立的flag,同时也是我去年难得兑现的几个flag之一,这里我想再重温下之前的学习状态,整理下我当时学习的思路。OK3的源码非常多,如果算上Okio,那就更多了,而且还涉及到很多我了解很少的网络知识(比如这篇要讲的OK3 缓存,前半部分我几乎先把http 的缓存套路说明白),庆幸的是OK3 的源码注释写的非常详尽,代码结构设计的也不错,理解起来不难,学起来收获满满。这个系列我准备分三篇博客来讲,今天先聊缓存。...原创 2020-07-26 16:23:01 · 519 阅读 · 0 评论 -
Android系统源码分析-Bitmap系列
概述Bitmap 在我们日常开发过程中使用频次非常高,因为和它经常关联的关键词要么是图片,要么就是内存,有时甚至还会谈到OOM。大家在谈论关于内存优化,一定绕不开关于Bitmap 的使用优化。因此今天就来和大家聊聊Bitmap 的源码,了解它,所谓知彼知己,百战不殆。再次重申,看源码一定要有目的性,否则你一定很难坚持下去。我的目的,1、学习源码的设计精髓,2、解BUG(或者说避免开发阶段踩坑),其中2的占比比较多,哈哈哈哈。...原创 2020-06-27 19:10:21 · 1100 阅读 · 0 评论