个人精炼的 Android 数据库框架
CommonDao 总共只有 8 个类,核心类文件只有 5 个,客观来说,代码的可读性还是比较强的,但相比各大成熟的数据库框架,无论是性能或者可定制方面,亦或稳定性,都要逊色不少。算是一个学习的过程吧,最近一直在完善 CommonAndroid 基础库,刚把数据库部分弄好,决定把它单独作为一个模块来维护。欢迎各路大牛 star 或者 fork 来共同完善。数据库 CommonDao 地址,Android 基本库 CommonAndroid 地址。
CommonDao 总共只有 8 个类,核心类文件只有 5 个,客观来说,代码的可读性还是比较强的,但相比各大成熟的数据库框架,无论是性能或者可定制方面,亦或稳定性,都要逊色不少。算是一个学习的过程吧,最近一直在完善 CommonAndroid 基础库,刚把数据库部分弄好,决定把它单独作为一个模块来维护。欢迎各路大牛 star 或者 fork 来共同完善。数据库 CommonDao 地址,Android 基本库 CommonAndroid 地址。
创建型设计模式有五个:单例模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式。这一系列全部使用极其简洁的方式来阐述,一个模式对应一段 Java 代码以及一张 UML 类图,所有均为个人原创,如有不同见解,或者想补充的,欢迎评论指出。完整的 23 种设计模式可移步我的 GitHub—>DesignPattern。
Android 中 当遇到滑动冲突的问题,就会涉及到事件的分发与响应。事件分发,事件拦截,事件处理 是 理清各个 view 所要处理的事件的三个重要的方法。这里就结合源码分析一下 从点击 Activity 上的一个控件开始,到事件响应结束的 事件传递的整个流程。包括 Activity 对事件的处理,ViewGroup 对事件的处理,View 对事件的处理。
Android 项目设计到大量 图片,文件时,都会使用到缓存技术,一般项目框架都会帮助我们封装好,我们只需要指定具体的缓存策略就可以了;缓存的策略或者说算法有很多种,比如 FIFO,FILO,LRU 等,本文主要分析一下 LruCache 以及 DiskLruCache。LruCache 在 Android 3.1 之后就出现在 Android 源码中了,DiskLruCache 得到官方推荐,但还未出现在源码里。查看 DiskLruCache.java 源码,另外,JakeWharton 也有一份 DiskLruCache,可以看看。
前面有一篇谈内存泄漏,当 Activity 使用到 AsyncTask 更新 UI 时,需要使用 WeekReference 来引用 Context,以免造成 Activity 不被回收,内存泄漏。可见合理的使用引用类型是多么的必要。这里就专门挑一块土地,梳理一下 Java 的引用类型。