看本文前,我希望你对链表的操作有个基本的认识,否则你会看得比较痛苦,因为我不会解析链表的操作。Segment要想搞明白 okio 的运作机制,Segment 是首先要弄清楚的,Segment 是用作 okio包下的 Buffer 和 SegmentPool 的结点。参数说明final class Segment {
/** The size of all segments in b
数据移动这一块,主要由3个关键类在控制Buffer 里面保存了一个segment双向循环链表,从head segment读取,从tail segment写入Segment 真正保存数据的类,pos和limit保存了可以读写的位置,shared和owner表示是否可以修改此Segment里面的值SegmentPool 保存了一个单向Segment链表,最大包含有8个Segment。recylce方法
转载
2024-09-05 15:38:10
32阅读
OKio的原理分析,准备分3个部分来分析:字符编码 先了解一些背景知识,Okio里面基本上是基于UTF-8来编码实现的Okio简介 熟悉OKio里面引入的一些概念,如Source、Sink、Timeout、Buffer、Segment、SegmentPool、ByteString等Okio里面Segment数据移动管理 OKio高效的原因,在数据移动方面的一些巧妙的设计,来节约内存和节省CPU1.
转载
2024-05-30 10:53:40
46阅读