设计模式(创建型篇)
创建型设计模式有五个:单例模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式。这一系列全部使用极其简洁的方式来阐述,一个模式对应一段 Java 代码以及一张 UML 类图,所有均为个人原创,如有不同见解,或者想补充的,欢迎评论指出。完整的 23 种设计模式可移步我的 GitHub—>DesignPattern。
创建型设计模式有五个:单例模式,工厂方法模式,抽象工厂模式,建造者模式,原型模式。这一系列全部使用极其简洁的方式来阐述,一个模式对应一段 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 的引用类型。
Mac 下的 iTerm 终端真是炫酷到爆,而且超级好用,在调试 Android 应用的时候,在终端下使用一些 ADB 命令,能帮助我们提高不少效率,下面就整理常见的一些 ADB 操作。
说到 Handler,立马会联想到异步消息机制,从而扯出 Looper 以及 Message。一个异步消息机制的流程大致这样:Handler 发送一个 Message 进入到 MessageQueue 中,Looper 不断的轮询 MessageQueue 取出 Message,然后将消息 分发给 发送给它的 Handler 对象,最后我们复写 handler 的 handleMessage(msg) 方法处理消息。下面详细分析。