孙青云的博客

勤能补拙!

Camera

1. 莱卡 2. 大光圈: 镜头 进光量大  快速对焦 虚化背景 3.广角镜头 焦距 短于 标准镜头 视角大于标准镜头  4 虚化 : 背景虚化,景深变浅 5 景深 : 照片中清晰距离范围 6. 焦距不变 光圈越大 景深越浅 ’...

2018-12-23 23:55:58

阅读数 16

评论数 0

Gradle Task

project.tasks.findByPath(':Application:assembleDmRelease').doLast{ println "Hello World" } // Copy APKs to another f...

2018-12-09 16:27:24

阅读数 19

评论数 0

Sublime 快捷键

可以打开项目并进行搜索 Ctrl + R Ctrl+L 选择整行(按住-继续选择下行) Ctrl+KK 从光标处删除至行尾 Ctrl+Shift+K 删除整行 Ctrl+Shift+D 复制光标所在整行,插入在该行之前 Ctrl+J 合并行(已选择需要合并的多行时) Ctrl+K...

2018-12-09 16:24:55

阅读数 15

评论数 0

App Bundle

Dynamic Features动态功能介绍 https://developer.android.com/guide/app-bundle/configure https://developer.android.com/guide/app-bundle/test#generate_apks ...

2018-12-09 16:17:00

阅读数 270

评论数 0

Hashcode的作用

Hashcode的作用: hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的; 2、如果两个对象相同,就是适用于equals(Java.lang.Object) 方法,那么这两个对象的hashCode...

2018-10-20 12:05:15

阅读数 22

评论数 0

常用技术网站

音视频https://www.cnblogs.com/renhui/p/7478527.html 思维工具:百度脑图:http://naotu.baidu.com/home 在线工具箱:https://www.toolfk.com/ 常见网站 gradle 官方网站翻译https:...

2018-09-12 22:04:37

阅读数 76

评论数 0

设计模式之HeadFirst

设计原则:   找出应用中可能需要 变化的地方,取出并封装起来,不要和那些不需要变化的代码混在一起; (换句话说 :如果每次新的需求一来, 都会使某方面的代码发生变化,那么你就可以确定,这部分的代码需要被抽出来,和其他稳定的代码有所区分;把变化的部分封装起来,以后可以轻易地改动或扩充此...

2018-01-23 16:25:49

阅读数 188

评论数 0

设计原则 之开闭原则(Open Close Principle)

开闭原则(Open Close Principle) 定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。 问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新...

2018-01-23 15:36:28

阅读数 101

评论数 0

设计模式之迪米特法则

迪米特法则(Law Of Demeter) 定义:一个对象应该对其他对象保持最少的了解。 问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。 解决方案:尽量降低类与类之间的耦合。 自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论...

2018-01-23 15:33:13

阅读数 83

评论数 0

设计模式之接口隔离

接口隔离原则(Interface Segregation Principle) 定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。 问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不...

2018-01-23 15:25:20

阅读数 79

评论数 0

设计模式 之依赖倒置原则

依赖倒置原则(Dependence Inversion Principle) 定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。 问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负...

2018-01-23 15:17:24

阅读数 87

评论数 0

设计模式之 里氏替换原则(Liskov Substitution Principle)

里氏替换原则(Liskov Substitution Principle) 肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。 定义1:如果对每一个类型为 T1的对...

2018-01-23 15:14:18

阅读数 74

评论数 0

设计模式之单一职责

单一职责原则(Single Responsibility Principle) 定义:一个类应该只有一个引起变化的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功...

2018-01-23 15:11:19

阅读数 85

评论数 0

Android长连接怎么处理心跳机制

1.心跳机制 维护任何一个长连接都需要心跳机制,客户端发送一个心跳给服务器,服务器给客户端一个心跳应答,这样就形成客户端服务器的一次完整的握手,这个握手是让双方都知道他们之间的连接是没有断开,客户端是在线的。

2018-01-23 14:16:06

阅读数 444

评论数 0

你为什么得不到梦想中的开发工作?

为什么,我们得不到梦想中的工作呢?写在前面你可能对现在的工作不是很满意或者谈不上喜欢与不喜欢, 不然你也不会来看这篇文章。很多开发者都梦想在一个这样的地方工作:工程师文化、极客、自由、对外宣称自己和 Airbnb 等硅谷公司一样。

2017-12-12 19:45:24

阅读数 114

评论数 0

类的加载顺序

什么时候类加载 第一次需要使用类信息时加载。 类加载的原则:延迟加载,能不加载就不加载。 触发类加载的几种情况: (1)、调用静态成员时,会加载静态成员真正所在的类及其父类。 通过子类调用父类的静态成员时,只会加载父类而不会加载子类。 (2)、第一次 new 对象的时候 加载(...

2017-12-01 17:13:50

阅读数 4275

评论数 2

线程和Service区别

1.Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作2.Service :四大组件之一,后台服务,一般运行在主线程之上。Thread 的运行是独立于 Activity 的,也就是说当一个 Activity 被 finish 之后...

2017-12-01 17:07:16

阅读数 1263

评论数 0

InstanceOf

1. result = object instanceof class

2017-12-01 11:24:09

阅读数 79

评论数 0

大脑黑客

1.列完成事项清单

2017-11-22 21:40:47

阅读数 114

评论数 0

Android 事件总线 Otto

Otto 介绍 Otto is an event bus designed to decouple different parts of your application while still allowing them to communicate efficiently.Forked f...

2017-11-03 15:03:02

阅读数 165

评论数 0

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