摘要: 简单工厂概念 又叫做静态工厂方法(Static Factory Method)模式,由一个工厂对象决定创建出哪一种产品类的实例。 代码示例 Car是要得到的目标类型,BigCar、MiniCar可能的不同具体的产品,有可能扩展。 CarFactory定义了不同品牌Car的获取方式。 客户端代码使用C 阅读全文
posted @ 2017-01-03 21:52 everhad 阅读(190) 评论(0) 推荐(0) 编辑
摘要: 简介 建造者模式(Builder),将一个复杂对象的表示和它的构建分离,这样同样的构造过程可以创建出不同的对象状态。 类图 下面的Product是要创建的对象的目标类型,产品。 Builder 创建一个Product对象涉及的操作的抽象接口,定义了Product各个部分的创建方法。 Director 阅读全文
posted @ 2017-01-03 21:50 everhad 阅读(187) 评论(0) 推荐(0) 编辑
摘要: 简介 单例模式使得一个类的实例是唯一的,外部对它的访问都针对同一个对象。 单例模式的使用可以是业务上的原因,比如一个User对象需要全局唯一,或者是性能上的考虑,避免创建代价较高的对象反复实例化。 实现方式 饿汉式:性能不是问题时,且对象一定需要被实例化,线程安全 双重锁定 线程安全,较高的性能,无 阅读全文
posted @ 2017-01-03 21:39 everhad 阅读(218) 评论(0) 推荐(0) 编辑
摘要: TODO: 待修正 Binder简介 Binder是android系统中实现的一种高效的IPC机制,平常接触到的各种XxxManager,以及绑定Service时都在使用它进行跨进程操作。 它的实现基于OpenBinder项目,属于核心库。framework层的Binder通信用到的相关java类型 阅读全文
posted @ 2017-01-03 21:38 everhad 阅读(13656) 评论(2) 推荐(2) 编辑
摘要: 为了方便app开发过程中,不受服务器接口的限制,便于客户端功能的快速测试,可以在客户端实现一个模拟服务器数据接口的MockApi模块。本篇文章就尝试为使用gradle的android项目设计实现MockApi。 阅读全文
posted @ 2016-12-25 16:23 everhad 阅读(16235) 评论(8) 推荐(14) 编辑
摘要: Fragment概述 在Fragment出现之前,Activity是app中界面的基本组成单位,值得一提的是,作为四大组件之一,它是需要“注册”的。组件的特性使得一个Activity可以在整个app甚至是不同app间被复用。 随着android 3.0中安卓平板的新增,app对不同尺寸屏幕的适配需求 阅读全文
posted @ 2016-12-22 00:23 everhad 阅读(596) 评论(0) 推荐(0) 编辑
摘要: 文章介绍ImageView(方法也可以应用到其它View)圆角矩形(包括圆形)的一种实现方式,四个角可以分别指定为圆角。思路是利用`“Xfermode + Path”`来进行Bitmap的裁剪。 阅读全文
posted @ 2016-12-11 23:54 everhad 阅读(30197) 评论(0) 推荐(0) 编辑
摘要: 本文内容来自开发文档“Traning > Displaying Bitmaps Efficiently”,包括大尺寸Bitmap的高效加载,图片的异步加载和数据缓存。 阅读全文
posted @ 2016-12-02 15:53 everhad 阅读(1068) 评论(0) 推荐(1) 编辑
摘要: 本文是手势识别输入事件处理的完整学习记录。内容包括输入事件InputEvent响应方式,触摸事件MotionEvent的概念和使用,触摸事件的动作分类、多点触摸。根据案例和API分析了触摸手势Touch Gesture的识别处理的一般过程。介绍了相关的GestureDetector,Scroller和VelocityTracker。最后分析drag和scale等一些手势的识别。 阅读全文
posted @ 2016-11-17 22:05 everhad 阅读(4364) 评论(0) 推荐(0) 编辑
摘要: 从纯sdk及framwork的角度看,android中界面框架相关的类型有:Window,WindowManager,View等。下面就以这几个类为出发点来概览下安卓开发的“界面架构”。 Window 该类接触不多,和它密切相关的View类就比较熟悉了。 Window和View的关系 View是可视 阅读全文
posted @ 2016-11-05 14:26 everhad 阅读(3858) 评论(1) 推荐(3) 编辑