Glide 之磁盘缓存
Glide 提供了灵活的磁盘缓存策略,用户可以定义自己的缓存策略,只需要实现 DiskCache 接口即可。Glide 中已经有两个 DiskCache 实现,一个是 DiskCacheWrapper,这个类什么都没干,就是一个空壳,用来包装其他的 DiskCache 实现类;另一个类是 DiskLruCaheWrapper,它是基于 DiskLruCache 实现的。接下来从 DiskLruCahce 分析一下 Glide 的磁盘缓存。
Android 中的应用是支持多进程的,我们只要在 AndroidManifest 中给四大组件指定 android:process 属性即可让其运行在独立的进程当中。那么应用的主进程又是如何被创建的呢?一般来说,当我们的应用没有任何组件处于运行状态,此时其他应用启动我们应用的组件时,应用的主进程就会被创建,进程相当于是提供了组件运行的空间。最常见的触发应用主进程被创建的方式是应用 A 通过 startActivity 或者 startActivityForResult 启动应用 B,并且应用 B 此时没有任何组件处于运行状态,那么系统先会通过 AMS 为 B 创建一个进程,等进程创建好了再通知应用 B 创建并运行该 Activity。AMS 是运行在 system_server 进程当中的,这个进程并不会 fork 出应用进程,那么应用进程到底是哪个进程创建的呢?这就得从 Zygote 进程说起。