经典排序算法之一 插入排序

插入排序,简单来说,就是将一组数据一个一个地插入到已经排好序的数组中,从而形成一个有序数组。完整的代码可以到我的 GitHub 上查看 Algorithm

Read More

关于应用中网络状态变化的一点思考

本人所在的项目中,由于历史原因,存在大量可以优化的地方,本文就网络状态这块,给出自己的一点思考。如果有更好的方法,可以评论告诉我。另外,网络状态这块以已经集成到我的基础库 CommonAndroid 中了,如果你对基础库的封装也有兴趣,也欢迎 star 或者 fork。

Read More

个人精炼的 Android 数据库框架

CommonDao 总共只有 8 个类,核心类文件只有 5 个,客观来说,代码的可读性还是比较强的,但相比各大成熟的数据库框架,无论是性能或者可定制方面,亦或稳定性,都要逊色不少。算是一个学习的过程吧,最近一直在完善 CommonAndroid 基础库,刚把数据库部分弄好,决定把它单独作为一个模块来维护。欢迎各路大牛 star 或者 fork 来共同完善。数据库 CommonDao 地址,Android 基本库 CommonAndroid 地址

Read More

设计模式(创建型篇)

创建型设计模式有五个:单例模式工厂方法模式抽象工厂模式建造者模式原型模式。这一系列全部使用极其简洁的方式来阐述,一个模式对应一段 Java 代码以及一张 UML 类图,所有均为个人原创,如有不同见解,或者想补充的,欢迎评论指出。完整的 23 种设计模式可移步我的 GitHub—>DesignPattern

Read More

View 的 事件分发体系 及 滑动冲突解决方案

Android 中 当遇到滑动冲突的问题,就会涉及到事件的分发与响应。事件分发,事件拦截,事件处理 是 理清各个 view 所要处理的事件的三个重要的方法。这里就结合源码分析一下 从点击 Activity 上的一个控件开始,到事件响应结束的 事件传递的整个流程。包括 Activity 对事件的处理,ViewGroup 对事件的处理,View 对事件的处理。

Read More

Android 中 Lru 缓存算法分析

Android 项目设计到大量 图片,文件时,都会使用到缓存技术,一般项目框架都会帮助我们封装好,我们只需要指定具体的缓存策略就可以了;缓存的策略或者说算法有很多种,比如 FIFO,FILO,LRU 等,本文主要分析一下 LruCache 以及 DiskLruCache。LruCache 在 Android 3.1 之后就出现在 Android 源码中了,DiskLruCache 得到官方推荐,但还未出现在源码里。查看 DiskLruCache.java 源码,另外,JakeWharton 也有一份 DiskLruCache,可以看看。

Read More