这段时间看了看工作室的工具库的下载组件,发现其存在一些问题: 下载核心逻辑有 bug,在暂停下载或下载失败等情况时有概率无法顺利完成下载。 虽然原来的设计是采用多线程断点续传的设计,但打了一下日志发现其实下载任务都是在同...
Picasso 是 Square 公司出品的一款十分优秀的开源图片框架,也是目前 Android 开发中十分流行的一款图片加载框架。提到 Square 公司大家一定不会陌生,OkHttp、Retrofit、LeakCanary 等等 Android 开发者十分熟悉的开源库都出自他们...
MMKV 是腾讯于 2018 年 9 月 20 日开源的一个 K-V 组件,下面是官方对它的介绍: MMKV 是基于 mmap 内存映射的 key-value 组件,底层序列化/反序列化使用 protobuf 实现,性能高,稳定性强。从 2015 年中至今在微信上使用,其性能...
本文是独立解析源码的第二篇,SharedPreference 是一个 Android 开发自带的适合保存轻量级数据的 K-V 存储库,它使用了 XML 的方式来存储数据,比如我就经常用它保存一些如用户登录信息等轻量级数据。那么今天就让我们来分析一下它的...
之前写过了很多常用的库的源码解析,但都需要大量参考其他大牛的博客才能彻底理解一个库的原理,这样总感觉会有遗漏。现在想检验一下自己的代码阅读能力,因此尝试靠自己去独立地完成一篇源码解析,看看效果如何。我们先从 EventBus ...
Binder 是 Android 系统进程间进行跨进程通信的主要方式。我们都知道 Android 系统是基于 Linux 的,那么 Linux 已经提供了如管道(Pipe)、信号(Signal)、套接字(Socket)、报文队列(Message)、共享内存(Share Memory)、信号...
Java中的ClassLoader 任何的Java程序都是由若干的.class文件组成的完整Java程序。程序运行时需要将.class文件加载到JVM中使用。而负责加载.class文件的就是ClassLoader机制。 ClassLoader的作用简单来说就是加载.class文件,提供给程...