@我是龙俊 是的,是的,我看错了,谢谢指正
okhttp(二)之线程池分析Okhttp中使用到了ThreadPoolExecutor进行线程池的创建, 下面我们对ThreadPoolExecutor这个类的构造方法进行详细分析。 参数一:coreP...
@我是龙俊 是的,是的,我看错了,谢谢指正
okhttp(二)之线程池分析Okhttp中使用到了ThreadPoolExecutor进行线程池的创建, 下面我们对ThreadPoolExecutor这个类的构造方法进行详细分析。 参数一:coreP...
有什么问题?难道最大线程数能大于核心线程数么?
okhttp(二)之线程池分析Okhttp中使用到了ThreadPoolExecutor进行线程池的创建, 下面我们对ThreadPoolExecutor这个类的构造方法进行详细分析。 参数一:coreP...
前言想要实现简单数据的持久化,我们首先会想到的方法肯定是SharedPreferences,有没有思考过这个我们使用了很久的类有什么缺点。getSharedPreferenc...
故名思议,ThreadLocal翻译就是线程本地,可以理解为只有本地线程才能取到的数据。下面我们看一个例子: 按照我们以前的思路,在线程中将ThreadLocal对象中的值改...
LRU(Least Recently Used)是一种常见的页面置换算法,在计算中,所有的文件操作都要放在内存中进行,然而计算机内存大小是固定的,所以我们不可能把所有的文件都...
类加载机制 要想了解Tinker热修复的原理我们就必须知道类加载机制。 首先,我们需要知道ClassLoader中的分类,ClassLoader:BootClassLoade...
介绍 AOP(Aspect Oriented Programming)面向切面编程。通过预编译的方式和运行期间的动态代理实现程序功能的统一维护的一种技术。业务逻辑各个部分进行...
前言 上一篇我们讲完了gif动图格式,这篇文章我们将以代码的形式实现gif图片在手机屏幕上加载。 新建一个NDK项目,配置相关库、CMakeLists。 添加如下几个库到cp...
上图是一个简单的100x100的gif图片,使用16进制程序打开的数据是: 数据头(Header)数据:47 49 46 38 39 61。ASCII表示GIF89a,89a...
LZW算法(Lempel-Ziv-Welch)又叫“串表压缩算法”就是通过建立一个字符串表,用较短的代码来表示较长的字符串来实现压缩。LZW算法基于转换串表(字典)T,将输入...
前言 ButterKnife又名黄油刀,是一款知名的Andorid框架,通过注解绑定,省去初始化控件等重复工作,简化代码,极大提高工作效率。 使用非常简单,但这里需要注意,使...
前言 我们在上面的篇幅讲了Rxjava的使用、操作符、背压模式,这篇文章,我们将对Rxjava主线流程进行分析。 Rxjava的实现代码 我们经过前面的分析,会发现方法执行的...
前言 我们在上面的篇幅讲解了Rxjava的操作符的使用,那么这篇文章我们将讲解Rxjava的背压模式。在Rxjava1.0的时候还没有背压模式,当我们被观察者大量发送事件,远...
前言 上文我们介绍了过滤操作符和条件操作符。这里我们接着介绍合并操作符和异常处理操作符。 合并型操作符 合并操作符,是将两个或多个被观察者合并为一个被观察者,并向观察者传递事...
前言 上文我们介绍了创建操作符和变换操作符。这里我们接着介绍过滤操作符和条件操作符。 过滤型操作符 过滤型操作符顾名思义是过滤掉被观察者中发送的数据,然后将过滤后的数据再发送...
前言 Rxjava之所以如此受欢迎,与其强大的操作符是息息相关的。它几乎能完成所有的功能需求。下面我们开始介绍常见的操作符。 创建型操作符 常见的创建型操作符有,create...
前言 Rxjava由于其基于事件流的链式调用、逻辑简洁 & 使用简单的特点,深受各大 Android开发者的欢迎。Rxjava是一个基于时间流,实现异步操作的库。定义:Rxj...