Android设计模式2--工厂方法模式

1. 定义 工厂方法模式定义一个用于创建对象的接口,让子类决定实例化哪一个类。工厂方法使一个类的实例化延迟到其子类。 2. 使用场景 复杂对象的生成,代替new的方式来屏蔽产品类的创建过程:需要一种产品,而不想知道也不需要知道工厂是如何生产出来的,只需要知道具体对应的工厂就行。 产...

2019-04-12 10:05:51

阅读数 22

评论数 0

Android设计模式1--原型模式

1. 定义 原型模式:用原型实例指定创建对象的种类,并且通过拷贝这些原型创建新的对象。 2. 使用场景 资源优化场景:类初始化需要消化非常多的资源,这个资源包括数据、硬件资源等。 性能和安全要求的场景:通过new产生一个对象需要非常繁琐的数据准备或访问权限,则可以使用原型模式。 ...

2019-04-01 14:15:30

阅读数 37

评论数 0

Android网络基础3——HTTP协议原理

1. HTTP简介 HTTP协议用于客户端与服务器之间的通信,在通信线路两端,必定一端是客户端,另一端是服务器。 注意:客户端与服务器的角色不是固定的,一端充当客户端,也可能在某次请求中充当服务器,这取决与请求的发起端。HTTP协议属于应用层,建立在传输层协议TCP之上。客户端通过与服务器建立...

2019-03-27 11:25:39

阅读数 25

评论数 0

Android网络基础2——TCP协议的三次握手和四次挥手

HTTP协议用于客户端与服务器之间的通信,在通信线路两端,必定一端是客户端,另一端是服务器。HTTP协议属于应用层,建立在传输层协议TCP之上。也就是说,客户端与服务器通信之前要建立TCP连接,之后发送HTTP请求与接收HTTP响应都是通过访问Socket接口来调用TCP协议实现;通信之后要断开T...

2019-03-22 16:37:51

阅读数 36

评论数 0

Android网络基础1——网络分层

OSI模型 OSI 模型(Open System Interconnection model)是一个由国际标准化组织提出的概念模型,试图提供一个使各种不同的计算机和网络在世界范围内实现互联的标准框架。 OSI 模型各层间关系和通讯时的数据流向如图所示: 七层模型介绍 物理层: 物理层负...

2019-03-19 13:13:10

阅读数 30

评论数 0

Android错误码转换

Android程序员和后天交互时,后台会返回数据或错误码,当我们拿到错误码时,不能直接把错误码展示给用户,而是要把错误码转换为用户能够理解的信息。 1. 先在资源文件夹string中定义错误码对应的字符串,如下: <string name="N500"&am...

2019-03-19 10:35:56

阅读数 49

评论数 0

设计模式六大原则(6):迪米特原则

定义:一个对象应该对其他对象有最少的了解。 场景:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 解决方案:遵循迪米特原则,尽量降低类与类之间的耦合。 迪米特原则英文全称为Law of Demeter,简称LOD,又叫最少知道原则,还有一个英文解释是:Onl...

2018-08-29 09:55:50

阅读数 134

评论数 0

设计模式六大原则(5):接口隔离原则

定义:客户端不应该依赖它不需要的接口。另外一种定义:类间的依赖关系应该建立在最小的接口上。 场景:在接口I中定义多个方法(假如A,B,C,D),类C1通过实现接口I来扩展自己需要的方法A、B;类C2通过实现接口I来扩展自己需要的方法C、D;那么接口I对于类C1和类C2来说不是最小接口,则类C1和...

2018-08-27 09:49:46

阅读数 116

评论数 0

设计模式六大原则(4):依赖倒置原则

定义:高层模块不应该依赖低层模块,两者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 场景:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带...

2018-08-24 09:28:52

阅读数 136

评论数 0

设计模式六大原则(3):里氏替换原则

定义:如果对每一个类型为 T1的对象 o1,都有类型为 T2 的对象o2,使得以 T1定义的所有程序 P 在所有的对象 o1 都代换成 o2 时,程序 P 的行为没有发生变化,那么类型 T2 是类型 T1 的子类型。这种描述不太好理解,里氏替换原则还有第二种定义:所有引用基类的地方必须能透明地使用...

2018-08-23 09:42:29

阅读数 278

评论数 0

设计模式六大原则(2):开闭原则

定义:软件中的对象(类、模块、函数等)应该对于扩展是开放的,但是,对于修改是封闭的。即对扩展开放,对修改关闭。 场景:在软件的生命周期内,产品需要不断的升级、维护,没有一个产品从第一个版本开发完就不需要再变化了,除非在下个版本诞生之前它已经终止了。而产品的升级需要修改原来的代码,这可能会给原来的...

2018-08-22 10:15:11

阅读数 142

评论数 0

设计模式六大原则(1):单一职责原则

定义:就一个类而言,应该仅有一个引起它变化的原因。简单来说,即一个类只负责一项职责。 场景:类C负责两个不同的职责:职责T1,职责T2,当职责T1的需求发生改变而需要修改类C时,有可能导致原本运行正常的职责T2出现错误。也就是说职责T1和T2被耦合在了一起。 解决方案:使用单一职责原则。分别建...

2018-08-21 16:22:55

阅读数 142

评论数 0

深入源码解析Android中的Handler,Message,MessageQueue,Looper

原文地址:点击打开链接本文主要是对Handler和消息循环的实现原理进行源码分析,如果不熟悉Handler可以参见博文《 Android中Handler的使用》,里面对Android为何以引入Handler机制以及如何使用Handler做了讲解。概括来说,Handler是Android中引入的一种...

2018-06-27 16:40:54

阅读数 77

评论数 0

Android全局捕获异常并生成崩溃日志文件的工具类

开发Android项目时,经常会遇到程序崩溃的情况,这时我们可以在logcat中查看崩溃日志,但有时错误的堆栈信息并没有显示出来,这时找起来很不方便;另外一种情况就是项目在测试阶段,如果有崩溃,只需让测试人员把崩溃日志发过来即可。   /** * 全局异常捕获 * Created by ...

2017-11-30 13:58:56

阅读数 2343

评论数 2

Android使用Handler+postDelayed实现简单计时器

使用Handler+postDelayed实现计时器:timeHandler.postDelayed(runnable, 1000);timeHandler.removeCallbacks(runnable); 使用Chronometer实现计时器:timer.setBase(SystemCloc...

2017-11-28 13:19:02

阅读数 1394

评论数 0

AlertDialog修改标题、内容、按钮的颜色和字体大小

Android开发中,AlertDialog因为使用起来方便,用的还是很多的,但有时领导还是很会挑刺的,说默认的按钮不够大、提示信息不够醒目。。。这里介绍一种不用通过自定义view便可修改这些样式的方法: AlertDialog dialog = new AlertDialog.Builder(...

2017-11-15 11:40:34

阅读数 3675

评论数 0

Android屏蔽EditText软键盘

最近在做一个PDA项目,因为PDA上自带的有键盘,所以要屏蔽掉输入框EditText在点击时弹出的软键盘,网上的方法基本上测试了一个遍,最后发现只有这个既能保证屏蔽掉软键盘,又能使光标正常显示: /**  * 禁止Edittext弹出软件盘,光标依然正常显示。  */ public void...

2017-08-14 18:06:15

阅读数 540

评论数 0

Android自定义属性实现显示两行文字的button

最近项目有个需求是实现一个button上显示两个按钮,而且这两行文字可以改变,最终是通过自定义属性来解决的,下面是全部过程和代码: 一、在res/values文件下定义一个attrs.xml文件,format表示参数类型。 ...

2017-07-19 19:03:53

阅读数 1587

评论数 0

android热修复之Robust使用(真正的入门)

目前能够实现热修复的方案很多,各个方案的优缺点这里也不在一一比较了,这篇文章主要针对第一次尝试集成美团点评基于Instant Run的热修复方案的开发者。 Robust的GitHub地址: https://github.com/Meituan-Dianping/Robust 。 1.在APP的bu...

2017-06-28 17:02:22

阅读数 2704

评论数 10

Android7.0下载Apk自动安装

这是一篇非常有价值的文章,详细介绍了获取root权限,实现静默安装的逻辑,代码层次也十分清晰。 原文地址:http://blog.csdn.net/cfy137000/article/details/70257912 1. 整体需求 下载APK文件  使用DownloadM...

2017-06-26 14:42:04

阅读数 753

评论数 0

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