设计模式之建造者模式(Builder模式) 发表于 2018-12-27 | 分类于 设计模式 本文字数: 3.1k | 阅读时长 ≈ 3 分钟 转载自刘望舒博客建造者模式 1,建造者模式定义建造者模式(builder),将一个复杂对象的构建与它的表示分离,使得同样的构建过程可以创建不同的表示。 阅读全文 »
Http协议浅析 发表于 2018-12-27 | 分类于 网络 本文字数: 3.4k | 阅读时长 ≈ 3 分钟 一、基本网络相关概念1,网络分层分层为了将网络节点所要完成的数据的发送或转发、打包或拆包,以及控制信息的加载或拆出工作,分别由不同的硬件和模块来完成,这样分层的好处是可以可以将通信和网络互联这一原本复杂的问题简单化,网络分层有经典的七层网络和五层,一般来说五层协议更加常用,应用更广泛,因为它更好理解。网络分层的每一层都是为了完成某一种功能而设计的。为了实现这些功能就要遵守共同的规则,就是协议规则。 阅读全文 »
跨程序共享数据--Android之内容提供器(ContentProvider)学习 发表于 2018-12-25 | 更新于 2018-12-26 | 分类于 安卓 本文字数: 19k | 阅读时长 ≈ 17 分钟 一、访问其他程序中的数据内容提供器的用法一般有两种,一种是使用现有的内容提供器来读取和操作相应程序的数据,另一种是创建自己的内容提供器给我们程序的数据提供外部访问接口。 阅读全文 »
View的工作原理 发表于 2018-12-25 | 更新于 2019-01-05 | 分类于 安卓 本文字数: 215 | 阅读时长 ≈ 1 分钟 一、ViewRoot和DecorViewViewRoot对应ViewRootImpl类,它是连接WindowManager和DecorView的纽带。View的三大流程均是通过ViewRoot来完成的。在ActivityThread中,当activity对象创建完毕后,会将DecorView添加到W ... 阅读全文 »
volatile的使用及原理 发表于 2018-12-24 | 更新于 2018-12-25 | 分类于 java 本文字数: 4k | 阅读时长 ≈ 4 分钟 一、volatile的使用我们先理解可见性、有序性以及原子性三个概念,通常我们用synchronized关键字来解决这些问题,不过synchronized是重量级锁,对系统的性能有比较大的影响,所以如果有其他解决方案,我们都会优先考虑其他方案,避免使用synchronized关键字。而volatile关键字是就是java提供的解决可见性和有序性问题的关键字。注意:对于原子性,volatile变量的单次读写操作可以保证原子性,如long、double类型变量,但是不能保证i++这种操作的原子性,因为i++本质上是读、写两次操作。 阅读全文 »
设计模式之观察者模式 发表于 2018-12-23 | 更新于 2018-12-24 | 分类于 设计模式 本文字数: 2.8k | 阅读时长 ≈ 3 分钟 一、观察者模式简介观察者模式的定义本文章学习自刘望舒的博客。观察者模式也叫发布–订阅模式,属于行为模式的一种,它定义了一种一对多的依赖关系,让多个观察者对象同时监听某一个主题对象。这个主题对象在状态变化时,会通知所有的观察者对象,使他们能够自动更新自己。同时观察者模式还是效率很高的模式,常用语GUI系统,订阅—发布系统,这个模式的一个重要作用就是解耦,将被观察者和观察者解耦,使得他们之间的依赖性更小,甚至做到毫无依赖。以GUI系统来说,应用的UI更有易变性。 阅读全文 »