自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(20)
  • 资源 (1)
  • 收藏
  • 关注

原创 【代理模式】—— 业务中介

代理模式,提供了控制目标对象的访问接口。一、关键点1)先看下这个模式点关键点:中介: 该模式的主要特点就是实现了中介的效果,委托者处理了被委托者的事务,以中介的形式对外提供访问的接口;解耦:因为该模式的是以中介的形式进行的,这样就将委托者和被委托者解耦开来了,从而达到保护被委托者的目的。 2)我们再看下它的类图关系:Subject: 被为类的抽象对象;Rea...

2018-09-17 11:26:57 295

原创 【迭代器模式】—— 数据的遍历

迭代器模式,提供了接口访问容器中的元素,而不需要暴露容器的内部表现。一、关键点1)先看下这个模式点关键点:遍历:该模式的最大特点就是提供了遍历内部集合数据的接口,从而达到访问集合数据的目的;解耦:该模式以迭代器的身份去实现遍历集合对象的目的,从而不需要暴露内部的表示,达到了解耦的目的。 2)我们再看下它的类图关系:Iterator:迭代器接口;Concret...

2018-09-16 17:37:34 698

原创 【观察者模式】—— 订阅与发布

观察者模式,定义了一对多的关系,使得当对象状态改变时,其他目标对象会收到通知,并被自动更新。一、关键点1)先看下这个模式点关键点:监听:该模式的比较一个大大特点就是多对一的关系,即常说的 “订阅 — 发布” 的关系;解耦:该模式的重要作用就是解耦,即做到观察者和被观察者之间的无依赖。 2)我们再看下它的类图关系:Subject:抽象对象,即被观察的角色;Co...

2018-09-02 23:16:11 193

原创 【享元模式】—— 对象的复用

享元模式,通过共享对象的方式有效地支持大量细粒度的对象。一、关键点1)先看下这个模式点关键点:对象池:该模式的最大特点就是实现对象的缓存,以避免对象的重复创建,从而达到提升性能和内存使用优化的目的;状态外部化:为实现该模式,另外的一个特点就是状态外部化,以方便缓存对象的访问。 2)我们再来看下它的类图关系: FlyweightFactory:享元工厂,管理享...

2018-08-26 17:20:06 870

原创 【状态模式】—— 描述行为变化

状态模式,当一个对象的内部状态改变时它的行为也允许改变,这个对象看起来像是改变了它的类。一、关键点1)先看下这个模式点关键点:行为描述:该模式把对象的行为定义在不同的状态对象里,并通过状态的变化来改变行为;指针:状态模式的一个比较明显的特点就是状态间的关系类似于指针的关系,即根据条件的不同,当前指向的行为对象也不一样,这个模式也常常用于设计状态机模型。 2)我们再来看下...

2018-08-26 15:00:15 388

原创 【责任链模式】—— 责任处理分级与解耦

责任链 模式,将处理请求的对象链接成一条链,并根据链来传递请求,让符合条件的对象来处理请求。一、关键点1)先看下这个模式点关键点:业务处理链: 该模式就是将处理请求的对象按照一定的条件串成来“链子”,从“链子”的指定节点开始,按条件“递归执行”;分级与解耦:该“链子”是按照一定的条件进行来“分级”,从而即能让“链子”间灵活的调用,调用者不需要关系“链”的执行机制,从而达到解耦的...

2018-08-19 22:19:33 570

原创 【策略模式】—— 灵活的算法集

策略模式,定义与封装了一系列的算法,并能相互间进行替换,且独立于使用者进行变化。一、关键点1)先看下这个模式点关键点:算法集: 该模式根据业务定义了一系列的算法,进行了特殊的封装,相互间能相互替换,并能进行灵活的拓展;独立变化:该模式的一个比较明显的特点就是独立于客户端的变化,而不依赖与客户端,灵活地进行升级与策略实现。 2)我们再来看下它的类图关系:Conte...

2018-08-19 17:17:30 312

原创 【命令模式】—— 请求与执行解耦

命令模式,将行为实现抽象成对象,并使其与请求者解耦,并能对行为进行纪录、撤销、事务等操作。一、关键点1)我们先看下这个模式的关键点:行为与请求解耦:将一组行为抽象成对象,使之与请求者解耦开来,区别与之前请求者与行为的直接耦合,从而给控制的灵活变化带来了机会,并更容易对模块进行拓展;灵活控制:支持对命令对象的排队、取消、修改、事务等功能,整个执行过程变得更加灵活。2)我们再来...

2018-08-19 15:42:17 408

原创 【建造者模式】—— 构建与表现分离

建造者模式,将复杂对象的创建过程与它的表示分离,即容许用户在不知道对象内部细节的情况下,一步步创建对象的过程。并使得同样的构建过程可以创建不同的表示。一、关键点1)我们先来看下这个模式的关键点:构建与表现分离:这是找个模式的比较明显的特征,即将构建负责对象的过程与它的部件解耦了;构建过程:由于第一个特征,表现和构建分离,这样就使得同样的构建过程可以创建不同的表示。也能根据需要控...

2018-08-12 18:37:16 976

原创 【工厂方法模式】—— 广泛应用的模式

工厂方法模式,一种对象创建型的设计模式,提供创建对象的接口,让子类决定要实例化的对象。通过依赖注入的方式达到解耦、复用的目的。一、关键点1)我们先来说下这个设计模式的关键点,“简单工厂” 和 “依赖注入”, 对,就这两个。“简单工厂” :和简单工厂类似,该模式也是按需实例所需要的对象;“依赖注入” :在 “简单工厂” 对基础上,这个模式对不同点是将对象的选择判断移到了调用者中,...

2018-08-12 13:39:00 170

原创 【单例模式】—— 最常用的模式

在我们实际的开发过程中,最经常用到的设计模式,应该属于—— 单例模式 了吧。一、定义它是这样的定义的:保证一个类仅有一个实例,并提供一个访问它的全局访问入口。它的定义也非常简单,我们可以稍微整理下:如上图,其实定义就两个点:仅一个实例、确保它是唯一的。 二、实现上面简单描述了单例模式的定义,但在实际实现的过程中,大概需要注意以下几点:1)构造函数私有化。如果...

2018-08-05 22:30:38 285

原创 2017各大知名互联网公司Android面试题

Java基础1、阐述下对象的自动装箱和拆箱      自动装箱:                Integer i = 1;       其实编译器为你自动实现了:               Integer i = Integer.valueOf(1);                     自动拆箱:

2017-07-23 17:37:30 1823 2

原创 Android WebView详解

WebView用于展示网页,这个类可以使你在activity中滚动网页和简单地显示网页内容。 类结构如下: 一、 基本使用1.1 在AndroidManifest添加网络权限:1.2 如果你的需求实现想展示网页,不涉及到和应用的交互,可以直接使用手机本身带有浏览器服务的应用,如自带浏览器,第三方应用(UC、QQ等):

2016-09-30 19:17:01 21682

原创 React Native环境配置 —— window版

一、 安卓sdk配置       配置安卓sdk编译和运行的环境,即配置java和sdk以及环境变量,在sdk manager中,勾选如下选项: 注:如果这项没有配好,容易出现以下的错误: …make sure you have an android emulator running or a device connected and have…

2016-09-14 19:36:09 18447

原创 SurfaceView小结

SurfaceView视图表面是在Z轴上是依次排序的,通常位于window下面的surfaceview为了显示需要在界面上进行“打洞”。通常情况下view的各个层级能协调好与surfaceview的关系,使其正确地进行展示。 这个类其中的一个目的是提供了一个可以通过其他线程去渲染到屏幕的surface,如果你要使用,需要注意的

2016-09-09 10:21:23 17101

原创 高效地Android多渠道快速打包

背景:      为了运营的需要,我们需要对投放到市场上的apk安装包进行特定的标识,然后应用能将自身的渠道信息上传到运营后台,以方便运营部门对相应的渠道数据进行处理以及针对性的投放推广工作。     目前android的应用市场有上千个,特别多,所以设计个合理的多渠道打包策略非常重要,能直接影响版本的上线效率。 目前的多渠道的打包的方式主要有以下三种。 方式:一、 代码编译生成渠道包

2015-12-31 17:17:55 1158

原创 设计模式之——面向对象的六大原则

一、 单一职责原则     定义:Single Responsibility Principle,即SRP:一个类应该是相关性很高的方法与数据的封装,不同的职责应该分别封装到不同的类或模块当中。     原理:如果一个类的职责过多,就等于这些职责耦合了在一起,这样会使得设计容易变得脆弱,当发生变化时,设计容易发生非意料性的破坏。所以设计的时候应该遵守单一职责原则,其实它的核心就是解耦和内聚性的

2015-12-27 11:36:37 15639

原创 Android性能优化(一)

一、 对象的使用 手机设备分配给每个应用的内存是有限的,合理地使用对象利于移动设备内存压力的减少,这样就减少了GC的操作次数,从而提升用户交互体验。合理地创建和使用对象,主要有以下几点:1) Activity对象的复用。Activity对象是很占用资源的,所以应该尽可能地复用activity栈中的实例,从而应用内存的消耗。可以设置Activity 的launchMode或者使用

2015-12-24 11:09:18 16886

原创 Fresco特性与性能分析

Facebook于今年开源了一个非常强大的图片加载组件,Fresco。https://github.com/facebook/fresco主要有以下一些特性:内存管理  对于Android平台来说,图片一直是它需要关注的地方,如怎样进行高效图片显示和存储。我们知道每个像素由红、绿、蓝以及透明度组成,所以一个像素就占用了4个字节的大小内存空间,而设备本身分配给每个应用的内存大小是有限的,所以如何显示更......

2015-12-15 21:23:31 3176

原创 Android Handler 小结

Android Handler 小结 Handler主要用于异步消息处理。Android中以此作为子线程和主线程通信的桥梁,从而实现ui(主线程)的内容更新。背景:Android中的主线程主要管理界面中的UI控件以及进行事件的分发。但UI控件的操作并没有被设计成线程安全,所以需要主线程对界面进行统一的管理,这也就是所说的单线程模型。所以在主线程中就不应该进行耗时的任务操作,这样容易造成界面的卡顿

2015-12-11 10:02:47 17563

Android高级编程

Android高级编程,来自Google牛人Reto Meier的经典之作,原滋原味,本书结构清晰,内容新颖且覆盖范围广

2015-12-16

空空如也

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

TA关注的人

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