C1☆ Blog

Thinking will not overcome fear but action will.

I/O回顾系列(二)Okio

I/O回顾系列

I/O回顾系列(二)Okio # 前言 上一篇文章回顾了Buffer I/O的读写优化策略,这一篇文章主要是从Okio的源码入手,看一下Okio它解决了什么问题,如何解决的 # Segment [Segment-> Field] final class Segment { // 一个segment可存储的最大字节数 static final int SIZE = 81...

I/O回顾系列(一)Buffer I/O

I/O回顾系列

I/O回顾系列(一)Buffer I/O # 前言 上一个数据结构回顾系列中回顾了一些android中以及java中常见的一些数据结构的实现,而最近终于有空可以抽出时间回顾下一个专题,这个专题其实早在apk学习系列后就想开启,因为当时不管是看Walle也好,VasDolly也好,其实它们内部都用到了NIO,不过无奈课真的太多了……,现在这个回顾系列会从Buffer I/O -> O...

数据结构回顾(五)ConcurrentHashMap1.8

数据结构回顾系列

数据结构回顾(五)ConcurrentHashMap1.8 前言 上一篇文章回顾了1.7版本下ConcurrentHashMap的实现,这一篇文章就是学习并记录下ConcurrentHashMap1.8的实现,分开两篇文章来写主要是还是想curd都走一遍,而且不让一篇文章太累赘 Field // 默认为0,用来控制table的初始化和扩容操作 private transient vo...

数据结构回顾(四)ConcurrentHashMap1.7

数据结构回顾系列

数据结构回顾(四)ConcurrentHashMap1.7 前言 上两篇笔记已经回顾了HashMap以及红黑树两种数据结构的实现,下一阶段想看的就是ConcurrentHashMap的1.7和1.8版本的不同实现 Field static final class Segment<K,V> extends ReentrantLock implements Serializa...

数据结构回顾(三)ArrayMap

数据结构回顾系列

数据结构回顾(三)ArrayMap 深度解读ArrayMap优势与缺陷

数据结构回顾(二)红黑树

数据结构回顾系列

数据结构回顾(二)红黑树 红黑树深入剖析及Java实现 红黑树动画演示

数据结构回顾(一)HashMap

数据结构回顾系列

数据结构回顾(一)HashMap 前言 时间越来越少,最近刷leetCode的时候发现大二学过的数据结构都有点记不得,所以现在才想狠下心来,把之前学过的东西都回顾一遍 [HashMap-> Field] static class Node<K,V> implements Map.Entry<K,V> { final int hash; ...

微信资源混淆AndResGuard源码解析(三)

apk学习系列

微信资源混淆AndResGuard源码解析(三) 前言 前两篇文章主要记录了,resources.arsc的读和写的流程和细节,这一篇文章,记录的主要就是在resources.arsc写回操作完成之后,构建apk的流程和细节 [Main-> buildApk] private void buildApk( ApkDecoder decoder, File apkF...

微信资源混淆AndResGuard源码解析(二)

apk学习系列

微信资源混淆AndResGuard源码解析(二) 前言 上一篇主要是针对整个resource.arsc文件的解析作分析,而这一篇除了上一篇的忽略的两个点之外,更多就是写回操作的分析 [ApkDecoder-> decode] public void decode() throws AndrolibException, IOException, DirectoryExceptio...

微信资源混淆AndResGuard源码解析(一)

apk学习系列

微信资源混淆AndResGuard源码解析(一) 前言 之前受到了AndResGuard激发开发出一款符合业务场景的多渠道打包的gradle-plugin,但是对于核心的resources.arsc文件的操作,并没有得到满意,所以想回顾和继续学习源码细节 [AndResGuardPlugin-> apply] @Override void apply(Project pro...