自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(44)
  • 资源 (6)
  • 收藏
  • 关注

原创 Android进程间(IPC机制)通信(Bundler,Messenger,AIDL,ContentProvider)

在Android中每个app都由Activity和Service组成的,这而Activity和Service可能运行在同一个进程中,也可能在不同的进程中。那么,不在同一个进程的Activity或者Service是如何通信的呢?这时候就要用到Binder进程间通信机制了。而接下来要使用的一切都是基于Binder完成的,在Android中,无Binder不Andorid.Bundlepublic fin

2017-09-08 17:21:06 1188

原创 Android 图片内存控制重采样加载高分辨率图片,拒绝OOM

在平常的开发中,经常容易遇到的问题便是OOM的内存泄漏,而在泄漏的过程中,图片的问题一般占据榜首位置,即便在当前已经有了诸多优秀开源的图片缓存框架的情况下,有时候依旧不可避免.图片的加载消耗内存,大量的图片进行内存消耗,使用以后不加以回收等等都是导致图片内存泄漏的问题所在.这时需要我们来理解图片的内存使用情况,如何来解决问题.图片由一个个的像素点构成,加载过程会创建一个二维数组,在数组中图片分辨率为

2017-09-07 17:00:35 1279

原创 Java/Android中的强引用、软引用、弱引用、虚引用

引用分为四个,从高到低的级别以此为强引用-软引用-弱引用-虚引用.引用类型 类别 回收机制 用途 生存时间 强引用 从不回收 对象状态 JVM停止运行时 软引用 内存不足时进行回收 缓存 内存不足 弱引用 对象不被引用时回收 缓存 GC运行后 虚引用 对象被回收时 管理控制精确内存稳定性 unknown强引用Qiang

2017-09-06 17:24:27 453

原创 Android设计模式之(23)----享元模式

享元模式享元模式属于结构型模式.主要用于解决系统中存在的内存性能消耗等问题.当项目中存在多个同一个对象的时候,对象的回收创建成本不断增加,导致内存性能等问题,使用享元模式将减少内存消耗,在相同的对象上可以有不同的状态处理内部与外部状态.内部状态 内部状态属于可以共享的,不会随着环境改变而改变,在构造参数进行构造或者set外部状态 外部状态属于不可共享的,随着环境改变而改变.对于内部状态与外

2017-09-05 18:41:50 330

原创 Android设计模式之(22)----桥接模式

桥接模式桥接模式属于结构型模式.主要用于将抽象化与具体实现化解耦,无乱抽象化的扩展变化或者实现化的扩展变化都不会影响互相影响.将各自的耦合解除.举例:现在有3个人,青年人/中年人/老年人,他们喜欢的食物口味有3种,甜味/麻辣味/清淡味.常规设计怎么样做?设计3个类ABC分别代表青年人/中年人/老年人,QWE3个类代表甜味/麻辣味/清淡味. 具体的实现有很多种比如A+Q=青年人喜欢甜的口味A+W=青

2017-09-05 15:49:55 417

原创 Android设计模式之(21)----外观模式

外观模式外观模式属于结构型设计模式.简单来说外观模式就是一个比较牛逼的封装理解而已.将一系列的操作,功能封装在一起,供外部调用,外部调用者不关心内部实现细节.比如常规开发中的网络框架封装,会定义一个顶层的类,将一系列的请求方法,缓存处理,tag标识等全部封装在一个类暴露方法给外部使用者调用,这样即便在后期我们更换了网络框架,所修改的也仅仅只是最顶层的类,而不会影响到外部的调用.应用场景为复杂的模块

2017-09-05 11:21:16 220

原创 Android设计模式之(20)----装饰器模式

装饰器模式装饰器模式属于结构型设计模式.可以动态将需要修改的内容添加到原有的被装饰类上.例如:网游中的游戏人物,佩戴的装备有头盔/衣服/下装/武器/鞋子等等。头盔/衣服/下装/武器/鞋子等又有不同的属性.这时你会怎么做呢?常规的设计一个超类进行set/get方法,然后算出不同的组合的方法?如果这么做,就等着加班吧,当你加班完成后又来了新需求…每个装备还有不同的颜色…甚至在后来要求可以让玩家自行搭配颜

2017-09-04 16:03:07 318

原创 Android设计模式之(19)----组合模式

组合模式组合模式属于结构型设计模式.组合模式又可叫做【部分-整体】模式.它将部分与整体的关系通过树的形式表现出来.分为安全模式与透明模式.常规的数上会有各种枝干树枝与树叶,树干的每一个分叉点则理解为一个子节点,而树叶则认为是末节点, 将树枝也树叶理解为每一个部分,所有的部分组合起来就是一个整体.比如城市: - 四川省–成都市-成都 - 四川省–绵阳市-绵阳组合模式将使单个具体的对象与整体对象具

2017-09-04 11:10:52 269

原创 Android设计模式之(18)----适配器模式

适配器模式适配器模式数据结构型设计模式.适配器模式主要用于将2个不能兼容的物件结合在一起.分为类适配器和对象适配器.比如由于2个类因为接口问题没办法在一起工作,可以使用适配器模式将其结合起来.比如生活中的电源适配器,A物品需要100V电压,B物品需要220V电压,直接作用其中有一个无法达到效果,而电源适配器支持100~220V就可以完美解决这样的问题.应用场景重构过程中要具体使用当前某个类,但是因

2017-09-01 10:44:26 201

原创 Android设计模式之(17)----代理模式

代理模式代理模式属于结构型模式.分为静态代理与动态代理.比如说 用户现在要买车,只要一辆车直接去车商买,肯定不会卖给你啊.这个时候用户就会找到4S店让4S店帮忙购买,在从4S那儿买到车子.在整个交易过程中4S的存在就是一个代理商,用户作为委托者,代理商帮委托者完成委托者的述求.应用场景为一个对象的引用提供额外操作控制一个对象的访问,为不同的用户提供不同的权限级别被访问对象不想暴露所有细节方法,

2017-08-31 16:18:49 212

原创 Android设计模式之(16)----中介模式

中介模式中介模式属于行为模式。理解起来很简单,例如公司新接了好几个项目,那如何告诉公司的各位同学要负责项目是哪一个呢呢,不可能一个人一个人的互相转达这个时候为了统一通知,就采用公司的企业邮箱统一发送放假消息到各个同学的个人企业邮箱来进行通知这时公司的企业邮箱就充当了一个中介者的角色.对比两种情况:没有中介者的情况通过公司邮箱终结者 应用场景多个对象之间存在相互通信关系多个对象彼此依赖,后续希望

2017-08-30 16:30:09 236

原创 Android设计模式之(15)----访问者模式

访问者模式访问者模式属于行为模式。访问者模式中属于相对比较复杂的一类,它会在A中让B访问,而实际在B中实际调用的是A的方法.class A { public void method1(){ System.out.println("AAAAAA"); } public void method2(B b){ b.showA(this); }

2017-08-30 12:42:24 267

原创 Android设计模式之(14)----模板模式

模板模式模板模式属于行为模式.简单理解,某一套程序的流程是不改变的,但是具体的内容是可以更改的。例如公司的财务报表,需要进行申请,然后经理签字以后才可以审批下来。流程:下属财务资金审核提交—->经理审核—->经理签字—->审批完成 内容:有2个人去申请资金,他们执行的流程是一样的,但是具体申请的资金以及经理审批后给予的资金是作为内容可以改变的。使用场景虚公用方法通用流程抽象到父类,由子类完成具

2017-08-29 15:27:08 291

原创 Android设计模式之(13)----迭代器模式

迭代器模式迭代器模式属于行为模式.主要用于解决对一个聚合对象中的所有元素的获取,但是同时又不会暴露该对象的内部细节。主要分为迭代器接口,具体实现迭代器,容器,具体实现的容器使用场景访问一个对象内部的元素而不暴露内部细节要获取多个对象的内部元素,提供统一的接口访问代码示例(一) 迭代器接口public interface Iterator { boolean hasNext();

2017-08-28 17:02:32 215

原创 Android设计模式之(12)----备忘录模式

备忘录模式备忘录模式属于行为模式。字面意思理解,备忘录是一个存储的东西。备忘录模式主要用于保存对象状态,便于之后的状态恢复或者使用。典型的备忘录就犹如我们平常玩游戏存档一样,在某一时刻挑战BOSS之前满血满蓝存档,在战斗过程中如果死亡(0血0蓝),可以加载存档重新恢复状态继续挑战。同时备忘录模式中的对象状态要保存状态的安全性完整性,因此不允许对象从外部来获取内部的状态。Android中的状态恢复就属

2017-08-25 11:15:58 266

原创 Android设计模式之(11)----观察者模式

观察者模式观察者模式属于行为模式。主要用于解耦观察者与被观察者之间的联系。实现观察者一对一或者一对多的关系,当被观察者有状态改变的时候通知观察者,观察者根据改变的状态做出相应的事件动作。使用场景消息队列,事件总线情况数据状态更新,对象变化对象行为关联变化代码示例观察者与被观察者用接口实现具体方法。(一) 观察者刷新接口public interface ObserverListener {

2017-08-24 10:55:01 197

原创 Android设计模式之(10)----命令模式

命令模式命令模式属于行为模式。如你的上级领导指派给你的A,B,C三项任务。让你做A,你就做A,让你做B就做B。指哪打哪。 外部的人对于你和你的领导来说,知道你的领导派发了ABC任务给你,你也完成ABC任务,任务具体是怎么完成的外部的人并不需要关心。使用场景某一对象有一系列的事物操作具有抽象行为的动作,支持多种类型的操作代码示例大学的新生入学都会进行军训,军训的项目有正步,齐步,军姿等等… 而这

2017-08-23 14:02:19 383

原创 Android设计模式之(9)----解释器模式

解释器模式解释器模式属于行为模式。 提供接口,实现了一个表达式接口,用来解释具体的上下文联系。应用场景(java android里很少用到)多次重复出现的问题,可以用具体的语言表达解释简单的特定的需要进行描述解释的行为语言模式代码示例比如特定的三辆车,奔驰GLK,宝马X5,奥迪R8,保时捷911保时捷911和奥迪R8都属于跑车奔驰GLK是否属于奔驰系列的SUV,而宝马X5不属于奔驰系列的SU

2017-08-22 16:02:55 244

原创 Android设计模式之(8)----责任链模式

责任链模式责任链模式一般分为处理者与请求者。具体的处理者分别处理请求者的行为。Android中的时间分发机制就属于一种责任链模式,父View包含N个子View,如果父View不处理的内容就会分发到具体的子View上进行,直到处理为止。应用场景处理者不明确的情况下,提交了一条任务多个请求者请求行为一样,交由处理中处理代码示例列如小说中经常有一系列赏金任务,分为普通难度,中等难度,高等难度的任务,

2017-08-21 10:38:33 212

原创 Android设计模式之(7)----状态模式

状态模式所谓状态模式,就是代表一个事物有多个状态。因为状态的变化而导致一系列的变化。听起来和策略模式很相似,都是类似if-else,实际上策略模式侧重于算法的区别,而 状态模式梗看着行为的控制。应用场景同一个产品,有多个状态产生多个行为有明显的状态区别优点:代码结构清晰,逻辑流程完善。将状态行为和结果封装在同一个具体实现类中,易维护阅读,若有新增状态,只需要增加具体的状态以及行为状态以及得到

2017-08-19 11:21:13 231

原创 Android设计模式之(6)----策略模式

策略模式一个功能的效果,有不同的算法与策略,根据不同的选择选择不同的结果。简单来说,只要你写过程序就用过策略模式,不要说没用过,难道if-else(switch)没用过吗…..if-else在其实就是一个策略模式的体现,根据不同的选择处理不同的结果。问题如果把所有的方法全部用if-else(switch)来处理,从功能上说没问题,但是冲代码层面的维护与使用来说,if-else多了之后会让类变的过于庞

2017-08-18 11:25:40 241

原创 Android设计模式之(5)----抽象工厂模式

抽象工厂模式一个抽象的接口可以实现多个产品一个抽象工厂可以实现多个具体工厂例:一个公司有多个程序猿,有多个产品经理,那么程序猿下面分为Android,iOS,PHP等程序猿,产品经理也分为多个类型。在之前的工厂模式中已经建立了程序猿,这个时候在造一个产品,这个产品其实就是产品经理的角色。1.建立产品经理的接口public interface ProductManager { public

2017-08-17 09:49:55 314

原创 Android设计模式之(4)----工厂方法模式

工厂方法模式比如富士康是一个工厂,为其他外部厂商提供相同或者不同的产品,而外部厂商不用关心富士康内部的实现过程,只需要接受结果即可。如果有新的产品,也只需要告诉富士康,富士康负责生产输出就好。因此工厂模式可大幅度降低模块之间的耦合,加强扩展性。应用场景需要生成一个或者多个复杂对象的具体实现工厂模式分类工厂方法模式 标准工厂简单工厂反射工厂缓存工厂私有工厂抽象工厂模式本文主要介绍工厂方

2017-08-16 14:51:14 241

原创 Android设计模式之(3)----原型模式

原型模式用原型实例指定创建对象的,拷贝这些对象生成新的对象进行使用。也可以直接进行new一个对象,但是当对象的构造复杂时,new的效率会很低,使用clone更好new适用于简单的构造clone适用于复杂的构造应用场景资源消耗大的对象节省资源,比如在for循环内创建相同的对象一个对象要让其他人使用,并且使用过程中要改变这个对象的某些属性,可考虑将原有对象拷贝,并且修改需要改变的属性,在进行使用

2017-08-16 11:08:50 259

原创 Android设计模式之(2)----Builder模式

Builder模式Builder模式使用链式结构创建复杂对象,将过程与结果分开,创建过程中可以自行组合。使用场景一个对象,不同组合,不同顺序生成不同的结果优点:封装性更规范,程序调用不用关系内部细节,注重结果即可 缺点:如果builder对象过多,会加大内存消耗public class TabInfoBean { private int count;//Tab的个数 必选 pri

2017-08-16 11:04:58 242

原创 Android设计模式之(1)----单例模式

单例模式一个类只有一个实例,并且可以全局访问使用应用场景如账户管理类,数据库操作类等(某个对象频繁被访问使用)常用方式饿汉式懒汉式同步加锁DCL双重加锁验证静态内部类枚举单例饿汉式加载类的同时立即进行初始化操作,对资源消耗很大public class SingleTest { public static final SingleTest singleTest1=new Si

2017-08-15 18:37:12 256

原创 快速实现自定义Tab复用

当然的应用太多Tab+Fragment. 实现方式多种多样: TabLayout+Fragment 常规布局+Frament FragmentTabHost+Fragment然后遇到特殊的Tab,比如一个Tab含有右上角有一个数字提醒或者Label,可能需要自行布局才能满足需求。为了方便以后的复用,使用自定义的Tab来满足需求。TabInfo:public class TabInfo {

2017-08-10 15:57:12 407

原创 Android QQ/微信第三方登陆 分享,支付宝微信支付

Android QQ/微信第三方登陆分享 支付宝/微信支付

2017-01-24 09:44:47 1845

原创 AndroidStudio Gradle一直卡在Refreshing XXX Project

使用便捷无痛离线包下载 升级Studio后重新导入新项目会提示Refreshing xxx gradle projectgradle download http://services.gradle.org/distributions/gradle-2.14.1-all.zip手动使用上述地址进行下载。下载得到gradle-2.14.1-all.zip,获取解压文件放入以下路径,重启Androi

2017-01-23 16:24:09 1098

原创 Android 组件化案例

Android组件化案例

2017-01-18 11:28:57 7120 8

原创 Android6.0 权限管理

Android6.0 权限

2017-01-10 15:21:21 877

原创 ViewPager打造轮播图(Banner)\引导页(Guide)

ViewPager 轮播图Banner 引导页Guide

2016-12-23 14:47:00 2296 1

原创 Android Studio接入Fabric- Crashlytics统计错误信息

第三方统计工具Crashlytics

2016-12-08 11:43:17 9140 9

原创 Android组件化、模块化开发

Android 组件化开发

2016-12-02 17:21:04 16912 4

原创 React-Native与原生的View桥接(二)

React-Native 桥接原生控件(Android)

2016-12-01 16:28:37 3952

原创 React-Native与原生的模块桥接(一)

React-Native 与原生Android的模块桥接

2016-11-30 11:46:30 3359

原创 React-Native Android集成Code-Push 热更新

React-Native 继承Code-Push(Android)热更新

2016-11-29 16:42:28 3949

原创 React-Native 与原生的3种交互通信(Android)

React-Native与原生(Android)的交互通信

2016-11-28 10:26:37 16230 2

原创 创建你的首个React-Native 项目

react-native 项目

2016-11-25 15:02:16 2546

原创 android使用Gradle统一配置依赖版本

模块化 Android 多Moudle 统一配置

2016-11-24 17:18:15 5599 4

Android的组件化开发

如何在Android使用组件化开发

2016-12-02

React-native 桥接原生控件

如何将原生控件桥接到React-Native

2016-12-01

React-Native与原生的模块桥接

简单示例React-Native 与原生Android进行交互桥接模块的使用。

2016-11-30

React-Native与原生交互通信方式

React-Native与原生(Android)的三种交互通信方式

2016-11-28

TestGradle

统一app与多个libs的gradle的配置

2016-11-24

AndroidMvp

android MVP设计,博客地址:http://blog.csdn.net/asddavid/article/details/47130753

2015-07-31

空空如也

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

TA关注的人

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