docs: 内容

This commit is contained in:
杭城小刘
2020-11-08 15:51:47 +08:00
parent a744b950b0
commit e89fe0ca1c
27 changed files with 11290 additions and 10341 deletions

32
Chapter1 - iOS/1.90.md Normal file
View File

@@ -0,0 +1,32 @@
# YYImage 框架原理,探索图片高效加载原理
## 图片显示流程
![image-20200813130942777](/Users/lbp/Desktop/Github/knowledge-kit/assets/2020-08-13-ImageRenderProcess.png)
```objective-c
UIImage *image = [UIImage imageNamed:@"test"];
_imageView.image = image;
```
上述的代码叫做“隐形解码”。 代码测试一张图片从磁盘读取到内存中,通过 Instrucments 中的 Time Profiler 分析得到,从磁盘调用 ImageIO 中方法加载到内存中,这个过程比较耗时。
图片大,则需要更大的空间去将 Data Buffer 计算得到 Image Buffer
所以将图片解码过程,放到异步线程中去。
## YYImage 源码
![image-20200813131944130](/Users/lbp/Desktop/Github/knowledge-kit/assets/2020-08-13-YYImageClassLevel.png)
很多框架使用锁都是 pthread_mutex_lock分析原因
pthread_mutex_lock
pthread_mutex_unlock