《想》
想把生活变成文字
想关心粮食和蔬菜
想给每一条河每一座山取一个可爱的名字
想塞外的牛羊
想与你执手看星
想在空旷的大漠中缱绻一生
扫描二维码的优化——QRzxingScan
项目地址
https://github.com/kangzhou/QRzxingScan
最终效果
在安利之前现看下最终结果,为放大效果,特意找来一部低性能的测试机,斜角度,稍远距离。
优化之前
统计多次扫描结果,单帧识别成功的时间为 2-5s。
优化之后
基本维持在50ms左右,如果设备性能好点的话,耗时还会更短。
Glide源码分析(二)
概述
上一篇《Glide源码分析(一)》我们讲到了Glide在经过with()和load()之后,最终返回了RequestBuilder,这篇来看看into(ImageView)里面发生了什么事,这也是整个Glide最核心复杂的地方。
Glide源码分析(一)
概述
在众多的图片加载的框架中,个人觉得Glide是表现的最好的,尤其是它缓存策略的设计,今天来根据源码来看一下Glide里面是如何运作的。由于Glide代码十分的庞大,而且隐晦难懂。这里主要是理解其中的含义,点到为止。该系列分为两篇来记录:
Glide源码分析(一)
Glide源码分析(二)
思维导图
异常记录
Android中的动画
HandlerThead原理及使用
简介
HandlerThread本质上是一个Thread,其内部增加了Looper和Handler。所以可以理解为一个原生SDK中封装好的一个异步类。能利用它执行耗时任务,并且通过内部的handler与其他线程进行通信。1
2
3
4
5
6
7
8
9
10
11
12
13public class HandlerThread extends Thread {
Looper mLooper;
private @Nullable Handler mHandler;
public HandlerThread(String name) {
// ... ...
mPriority = Process.THREAD_PRIORITY_DEFAULT;
}
@Override
public void run() {
// ... ...
}
}