自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

sp不会玩ps

开始的一小步是终点的一大步。

  • 博客(25)
  • 收藏
  • 关注

原创 十一、观察者设计模式

1. 观察者模式的介绍观察者模式定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化时,会通知所有观察者对象,使它们能够自动更新自己。例如:我们在使用应用市场下载应用时,我们的通知栏会有下载进度显示,我们的详情页会有进度显示,我们的列表中也会有下载进度显示,这就是一个典型的观察者设计模式,多个观察者监听同一个下载进度。2. 观察者模式的使用场景3. 观察者

2016-04-30 18:15:42 5498 5

原创 十、命令设计模式

1. 命令设计模式介绍将一个请求封装成一个对象,从而让用户使用不同的请求把客户端参数化;对请求排队或者记录请求日志,以及支持可撤销的操作。2. 命令模式使用场景整个调用过程比较复杂,或者存在多处这种调用。这时,使用Command类对该调用加以封装,便于功能的再利用。调用前后需要对调用参数进行某些处理。调用前后需要进行某些额外处理,比如日志,缓存,记录历史操作等等。3. 命令模式的UML类图4

2016-04-29 20:26:57 573

原创 九、解释器设计模式

1.解释器模式介绍解释器模式是类的行为模式,给定一个语言后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器。客户端可以使用这个解释器来解释这个语言中的句子。 解释器模式在实际运用上相对来说少很多,因为很少会自己去构造语言的文法。2.解释器模式使用场景重复发生的问题可以使用解释器模式。一个简单语法需要解释的场景。3. 解释器模式的UML类图由于解释器模式很好使用,下面的术语解释直接

2016-04-28 22:44:00 1000

原创 八、责任链设计模式

1. 责任链模式介绍使多个对象都有机会处理请求,从而避免了请求的发送者和接收者之间的耦合关系。将这些对象连成一条链,并沿着这条链传递该请求,直到有对象处理它为止。考虑到如下情景: 小李要出差,出差之后,小李要报销经费,小李申请了50000块的经费。 首先向组长提出,组长,他只能报销2000元以内的。组长把小李的请求向主管提出。 主管收到申请后,主管说他也无法批准,他只能批准5000以内

2016-04-28 22:40:06 1077

原创 七、状态设计模式

1. 状态设计模式介绍很多情况下,一个对象的行为取决于它的一个或者多个变化的属性,这些属性我们称之为状态,这个对象称为状态对象。对于状态对象而言,它的行为依赖于它的状态。举个例子: 我们买火车票,只有我们买票了之后,才会有退票这个选项。没有买票则没有退票的选项。所以说我们退票的行为依赖于我们已经买票了这个”状态”。状态模式和策略模式的结构很相似,但是它们的目的和本质上却不是一样的。状态模式是平行的,

2016-04-28 22:37:15 833 1

原创 六、策略设计模式

1. 策略设计模式介绍策略设计模式定义了一系列算法,并将每一个算法封装起来,而且使他们可以相互替换。策略设计模式让算法独立与使用它的客户而独立变化。2. 策略设计模式使用场景针对同一类型的问题的多种处理方式,仅仅是具体行为有差别时。需要安全地封装多种同一类型的操作时。出现同一抽象类有多个子类,而又需要使用if-else 或者switch-case来选择具体子类时。3. 策略设计模式的UML类

2016-04-27 10:19:56 513 1

原创 五、抽象工厂模式

1. 抽象工厂模式介绍抽象工厂模式起源于以前对不同操作系统的图形化解决方案,如不同操作系统中的按钮和文本控件其实现不同,展示效果也不一样。对于每一个操纵系统,其本身就构成了一个产品类,而按钮和文本控件也构成一个产品类,两种产品类两种变化,各自有自己的特性。2. 抽象工厂模式使用场景一个对象族有相同的约束时可以使用抽象工厂模式。例如,Android和IOS,WP下都有短信和拨号软件,两者都属于soft

2016-04-26 14:58:11 621 1

原创 四、工厂设计模式

1. 工厂设计模式介绍工厂设计模式定义了一个用于创建对象的接口,让子类决定实例化哪个类。是创建型设计模式之一。2. 工厂设计模式使用场景在任何需要生成复杂对象的地方,都可以使用工厂方法模式。复杂对象适合使用工厂模式,用new就可以完成创建的对象无需使用工厂模式。3. 工厂设计模式UML类图4. 工厂设计模式简单实现 情景描述,汽车A,B,C内部的结构差异不大,整体一致,所以用一个生产线就可以生产

2016-04-26 10:44:18 664 1

原创 三、原型设计模式

1. 原型设计模式介绍用原型实例指定创建对象的种类,并通过拷贝这些原型创建新的对象。原型设计模式多用于创建复杂的或者构造耗时的实例。因为这种情况下,复制一个已经存在的实例可使程序运行更高效。2. 原型设计模式使用场景类初始化需要消耗非常多的资源,这个资源包括数据、硬件资源等,通过原型拷贝避免这些消耗。通过new产生一个对象需要非常繁琐的数据准备或访问权限,这时可以使用原型模式。一个对象需要提供

2016-04-25 21:14:20 619 3

原创 二、Builder设计模式

1. Builder模式的介绍 将一个复杂对象的构建和它的表示分离,使得同样的构建过程可以创建不同的表示。2. Builder模式使用场景相同的方法,不同的执行顺序,产生不同的事件结果时。多个部件或零件,都可以装配到一个对象中,但是产生的运行结果又不相同时。产品类型非常复杂,或者产品类中调用顺序不同产生了不同的作用,这个使用建造者模式非常适合。当初始化一个对象特别复杂,如参数多,且很多

2016-04-25 14:51:02 508 1

原创 一、 单例设计模式

1. 单例设计模式介绍单例设计模式必须保证只有一个实例存在。例如使用ImageLoader,ImageLoader中包含线程池、网络请求等。非常消耗资源,使用单例模式可以节省系统内存的开销。2. 单击设计模式使用场景 确保这个类只有一个对象的场景,避免产生多个对象消耗过多的资源,或者某种类型的对象只应该只有一个。3. 单例设计模式UML类图4. 单例设计模式java代码1.懒汉模式:

2016-04-24 12:51:34 752 2

原创 android下的MVP架构

android下的MVP架构1. MVP概述MVP代表Model,View和Presenter。View层负责处理用户事件和视图部分的展示。在Android中,它可能是Activity或者Fragment类。Model层负责访问数据。数据可以是远端的Server API,本地数据库或者SharedPreference等。Presenter层是连接(或适配)View和Model的桥梁。2. MVC

2016-04-23 20:39:56 493 1

原创 第十二章 、Bitmap的加载和Cache

第十二章 、Bitmap的加载和Cache目前常用的缓存策略是LruCache和DiskLruCache,其中LruCache常被用作内存缓存,而DiskLruCache常被用作存储缓存。Lru是Least Recently Used的缩写,即最近最少使用算法。1. Bitmap的高效加载BtimapFactory提供了四种加载方法 decodeFile 文件系统decodeResour

2016-04-21 08:48:17 364

原创 第十一章、Android的线程和线程池

第十一章、Android的线程和线程池概述从用途来说,线程分为主线程和子线程,主线程主要处理和界面相关的事情,而子线程则往往用于耗时操作。在操作系统中,线程是操作系统调度的最小单元,同时线程又是一种受限的系统的资源,并且线程的创建和销毁都有相应的开销。一个线程池会缓存一定数量的线程,通过线程池就可以避免因为频繁替换和销毁线程所带来的系统开销。Android中的线程池来源于Java,主要是通过E

2016-04-21 08:47:28 415

原创 第十章、Android的消息机制

第十章、Android的消息机制Handler是Android消息机制的上层接口,使得我们在开发过程中只需要和Handler交互即可。Android的消息机制主要是指Handler的运行机制,Handler的运行需要底层MessageQueue和Looper的支撑。MessageQueue的内部存储结构并不是真正的队列,而是采用单链表的数据结构来存储消息的列表。Looper会以无限循环的形式

2016-04-21 08:46:50 379

原创 第九章、 四大组件的工作过程

第九章、 四大组件的工作过程1. 四大组件的运行状态Android的四大组件中除了BroadcastReceiver以外,其它三种组件都必须在AndroidManifest中注册,对于BroadRecevier来说,它既可以在AndroidManifest注册也可以通过代码注册。在调用方式上,Activity、Service和BroadcastRecevier需要借助Intent,而Content

2016-04-21 08:43:46 577

原创 Android全局异常统一处理

全局异常处理主要用到的类: 1. BaseException extends Exception 2. ExceptionHandler BaseExceptionpublic class BaseException extends Exception { public BaseException() { super(); }

2016-04-21 08:39:12 2153

原创 第八章、理解Window和WindowManager

第八章、理解Window和WindowManager> Window表示一个窗口的概念。Window是一个抽象类,它的具体表现是PhoneWindow。通过WindowManager即可创建一个Window。Window的具体实现位于WindowManagerService中,WindowManager和WindowManagerServide的交互是一个IPC的过程。Android的中所有的视图都

2016-04-16 21:52:59 466

原创 第七章、Android动画深入分析

第七章、Android动画深入分析> Android动画可以分为三种:View动画,帧动画、属性动画。其实帧动画也属于View动画,只不过它和平移、旋转等常见的View动画在表现形式上略有不同而已。1. View动画 View动画的作用对象是View,支持四种动画:平移、缩放、旋转、透明度。 1. View动画的种类 1. View动画的四种变化效果对应着An

2016-04-16 21:52:06 433

原创 第六章、android的Drawable

第六章、android的DrawableDrawable 简介 Drawable有很多种,它们都表示一中图像的概念,但是它们又不全是图片,通过颜色也可以构造出各式各样的图像效果。在实际开发中,Drawable常用来作为View的背景使用。Drawable一般都是通过XML来定义的,我们也可用通过代码来创建具体的Drawable对象。Drawable的分类 BitmapDrawable 、Nin

2016-04-16 21:51:12 428

原创 第五章、理解RemoteView

第五章、理解RemoteView RemoteView在Android中的使用场景有两种:通知栏和桌面小部件。RemoteViews的应用 RemoteViews在实际开发中,主要用在通知栏和桌面小部件的开发过程中。主要是通过NotificationManager的notify方法实现的。桌面小部件则是通过AppWidgetProvider来实现的。AppWidgetProvider本质上是一

2016-04-16 21:50:03 1243

原创 第四章、View的工作原理

第四章、View的工作原理> 为了更好的自定义View,还需要掌握View底层工作原理,比如View的测量布局,布局流程以及绘制流程。掌握了这几个流程后,我们就对View的底层更加了解,这样就可以做出一个比较完善的自定义View。ViewRoot和DecorViewView的绘制流程是从ViewToot的performTraversals方法开始的,经过的measure、layout和draw三个过

2016-04-11 19:59:39 664

原创 第三章View的事件体系

第三章View的事件体系View基础知识什么是View? View是Android中所有控件的基类。View是一种界面层控件的一种抽象,它代表了一个控件。ViewGroup也是继承自ViewView的位置参数 View 的位置主要是由它的四个顶点来决定的,分别对应于View的四个属性:top、left、right、bottom.这些坐标都是相对于View的父容器来说的,是一种相对坐标。Mo

2016-04-11 19:58:27 2015

原创 第二章 IPC机制

第二章 IPC机制Android IPC简介 IPC 含义为进程间通信,是指两个进程间进行数据交换的过程。 在Android 中最有特色的进程间通信方式就是Binder,通过Binder可以轻松地实现进程间通信。同时,Android还支持Socket通信Android中的多进程模式开启多进程模式 方法只有一个,就是在AndroidMenifest中给四大组件指定android:proc

2016-04-09 20:18:42 452

原创 第一章 Activity的生命周期和启动模式

第一章 Activity的生命周期和启动模式生命周期全面分析典型情况 : 正常情况启动Activity第一次启动某个特定Activity,回调:onCreate()->onStart()-> onResume()用户打开新的Activity或者切换到桌面,回调如下:onPause()-> onStop(),如果Activity采用了透明主题,当前Activity不会调用onStop().再次回

2016-04-09 20:12:53 474

空空如也

空空如也

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

TA关注的人

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