自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(6)
  • 收藏
  • 关注

原创 速读Java线程池

一、前言线程池是开发中绕不开的一个知识点 。对于移动开发而言,网络框架、图片加载、AsyncTask、RxJava, 都和线程池有关。正因为线程池应用如此广泛,所以也成了面试的高频考点。我们今天就来讲讲线程池的基本原理和周边知识。先从线程的生命周期开始。二、线程生命周期线程是程序执行流的最小单元。Java线程可分为五个阶段:新建(New): 创建Thread对象,并且未调用...

2019-04-14 11:03:01 129

原创 SQLite数据库修复方案(For Android App)

一、前言SQLite性能好,对SQL支持全面,是久经考验的轻量的关系型数据库。移动开发者对SQLite应该都不陌生了,只是不同的 APP 对数据库的依赖程度不同(有的甚至不需要数据库-_-)。SQLite虽然是可靠性较高的数据库,但是在复杂的使用场景之下,也会不时地出点问题。比如说有时候索引损坏,select count(*) from t_XXX 查询出的结果和select * from...

2019-03-12 21:56:35 370

原创 基数排序的原理与实现

一、前言基数排序是一种非比较型整数排序算法,其原理是将整数按位数切割成不同的数字,然后按每个位数分别比较。比较型排序:常见的快速排序,归并排序,冒泡排序……等等,都是基于比较的排序算法。比较型排序算法时间复杂度下界为O(N*log2N) ,而非比较型排序算法有:计数排序,桶排序,基数排序等;其中,计数排序,桶排序的时间复杂度分别为O(n+m)和O(n),线性的时间复杂度。计数排序和桶排...

2019-03-12 21:44:30 2284

原创 如何实现一个图片加载框架

一、前言图片加载的轮子有很多了,Universal-Image-Loader, Picasso, Glide, Fresco等。网上各种分析和对比文章很多,我们这里就不多作介绍了。古人云:“纸上得来终觉浅,绝知此事要躬行”。只看分析,不动手实践,终究印象不深。用当下流行的“神经网络”来说,就是要通过“输出”,形成“反馈”,才能更有效地“训练”。当然,大千世界,包罗万象,我们不可能任何事...

2018-10-27 21:25:55 322

原创 超轻量事件总线的实现

开发过程中,总会遇到一些需要通信的场景。如果逻辑比较简单,通过常规的传参,回调,返回值等即可实现。而如果调用层次较深(如跨模块,跨线程等),光靠传参和回调等手段,耦合度较高,对于需要主动通知,通知多个组件等场景,更是捉襟见肘。为解耦事件的发布与订阅主体,简化组件间通信,可引入事件通信机制。事件通知包含哪些内容?事件的定义,注册/注销,通知。事件框架如何实现?一个接口,一个事件管理类...

2018-10-27 21:23:34 286

原创 LightKV-高性能key-value存储组件

LightKV是基于Java NIO的轻量级,高性能,高可靠的key-value存储组件。一、起源Android平台常见的本地存储方式, SDK内置的有SQLite,SharedPreference等,开源组件有ACache, DiskLruCahce等,有各自的特点和适用性。SharedPreference以其天然的 key-value API,二级存储(内存HashMap, 磁盘xml文...

2018-10-27 21:21:41 551

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除