- 博客(48)
- 资源 (2)
- 收藏
- 关注
原创 相机基础概念介绍
1. 莱卡2. 大光圈: 镜头 进光量大 快速对焦 虚化背景3.广角镜头 焦距 短于 标准镜头 视角大于标准镜头4 虚化 : 背景虚化,景深变浅5 景深 : 照片中清晰距离范围6. 焦距不变 光圈越大 景深越浅1.长焦焦距在60mm以上的摄像镜头。其具备类似望远镜的功能,3X及以上的模组都属于这个范围。FOVHDR:(高动态范围,High Dynamic Range)指的是在拍摄的相同画面内,能正常显示画面中最亮和最暗物体的区间范围。
2023-12-17 22:57:26 1466
原创 Android 开发基础知识点
1.多点触控android:splitMotionEvents:定义布局是否bai传递du触zhi摸事件(touch)到子布局,daotrue表示传zhuan递给子布局,false表示不传递。
2021-01-11 16:29:12 322
原创 Camera
1. 莱卡2. 大光圈: 镜头 进光量大 快速对焦 虚化背景3.广角镜头 焦距 短于 标准镜头 视角大于标准镜头 4 虚化 : 背景虚化,景深变浅5 景深 : 照片中清晰距离范围6. 焦距不变 光圈越大 景深越浅’...
2018-12-23 23:55:58 203
原创 Gradle Task
project.tasks.findByPath(':Application:assembleDmRelease').doLast{ println "Hello World"}// Copy APKs to another foldertask copyApks(type: Copy) { println "$projectDir/Applicatio...
2018-12-09 16:27:24 200
原创 Sublime 快捷键
可以打开项目并进行搜索Ctrl + RCtrl+L 选择整行(按住-继续选择下行)Ctrl+KK 从光标处删除至行尾Ctrl+Shift+K 删除整行Ctrl+Shift+D 复制光标所在整行,插入在该行之前Ctrl+J 合并行(已选择需要合并的多行时)Ctrl+KU 改为大写Ctrl+KL 改为小写Ctrl+D 选词 (按住-继续选择下个相同的字符串)...
2018-12-09 16:24:55 151
原创 App Bundle
Dynamic Features动态功能介绍https://developer.android.com/guide/app-bundle/configurehttps://developer.android.com/guide/app-bundle/test#generate_apks 结合Google Play Dynamic Delivery (动态交付) , 实现动态功能...
2018-12-09 16:17:00 1047
原创 Hashcode的作用
Hashcode的作用:hashCode的存在主要是用于查找的快捷性,如Hashtable,HashMap等,hashCode是用来在散列存储结构中确定对象的存储地址的;2、如果两个对象相同,就是适用于equals(Java.lang.Object) 方法,那么这两个对象的hashCode一定要相同;3、如果对象的equals方法被重写,那么对象的hashCode也尽量重写,并且产生h...
2018-10-20 12:05:15 550
原创 常用技术网站
音视频https://www.cnblogs.com/renhui/p/7478527.html思维工具:百度脑图:http://naotu.baidu.com/home在线工具箱:https://www.toolfk.com/常见网站gradle 官方网站翻译https://blog.csdn.net/maosidiaoxian/article/detail...
2018-09-12 22:04:37 555
原创 设计模式之HeadFirst
设计原则: 找出应用中可能需要 变化的地方,取出并封装起来,不要和那些不需要变化的代码混在一起;(换句话说 :如果每次新的需求一来, 都会使某方面的代码发生变化,那么你就可以确定,这部分的代码需要被抽出来,和其他稳定的代码有所区分;把变化的部分封装起来,以后可以轻易地改动或扩充此部分;) 针对接口编程,而不是 针对实现编程;(利用多态执行时会根据实际情况执行真正
2018-01-23 16:25:49 390
原创 设计原则 之开闭原则(Open Close Principle)
开闭原则(Open Close Principle)定义:一个软件实体如类、模块和函数应该对扩展开放,对修改关闭。问题由来:在软件的生命周期内,因为变化、升级和维护等原因需要对软件原有代码进行修改时,可能会给旧代码中引入错误,也可能会使我们不得不对整个功能进行重构,并且需要原有代码经过重新测试。解决方案:当软件需要变化时,尽量通过扩展软件实体的行为来实现变化,而不是通过修改已有的代码来
2018-01-23 15:36:28 887
原创 设计模式之迪米特法则
迪米特法则(Law Of Demeter)定义:一个对象应该对其他对象保持最少的了解。问题由来:类与类之间的关系越密切,耦合度越大,当一个类发生改变时,对另一个类的影响也越大。解决方案:尽量降低类与类之间的耦合。自从我们接触编程开始,就知道了软件编程的总的原则:低耦合,高内聚。无论是面向过程编程还是面向对象编程,只有使各个模块之间的耦合尽量的低,才能提高代码的复用率。低耦合的优点不
2018-01-23 15:33:13 253
原创 设计模式之接口隔离
接口隔离原则(Interface Segregation Principle)定义:客户端不应该依赖它不需要的接口;一个类对另一个类的依赖应该建立在最小的接口上。问题由来:类A通过接口I依赖类B,类C通过接口I依赖类D,如果接口I对于类A和类B来说不是最小接口,则类B和类D必须去实现他们不需要的方法。解决方案:将臃肿的接口I拆分为独立的几个接口,类A和类C分别与他们需要的接口建立依赖关
2018-01-23 15:25:20 210
原创 设计模式 之依赖倒置原则
依赖倒置原则(Dependence Inversion Principle)定义:高层模块不应该依赖低层模块,二者都应该依赖其抽象;抽象不应该依赖细节;细节应该依赖抽象。问题由来:类A直接依赖类B,假如要将类A改为依赖类C,则必须通过修改类A的代码来达成。这种场景下,类A一般是高层模块,负责复杂的业务逻辑;类B和类C是低层模块,负责基本的原子操作;假如修改类A,会给程序带来不必要的风险。
2018-01-23 15:17:24 193
原创 设计模式之 里氏替换原则(Liskov Substitution Principle)
里氏替换原则(Liskov Substitution Principle)肯定有不少人跟我刚看到这项原则的时候一样,对这个原则的名字充满疑惑。其实原因就是这项原则最早是在1988年,由麻省理工学院的一位姓里的女士(Barbara Liskov)提出来的。定义1:如果对每一个类型为 T1的对象o1,都有类型为 T2 的对象o2,使得以T1定义的所有程序 P 在所有的对象 o1 都代换成o2
2018-01-23 15:14:18 453
原创 设计模式之单一职责
单一职责原则(Single Responsibility Principle)定义:一个类应该只有一个引起变化的原因。通俗的说,即一个类只负责一项职责。问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成
2018-01-23 15:11:19 223
原创 Android长连接怎么处理心跳机制
1.心跳机制 维护任何一个长连接都需要心跳机制,客户端发送一个心跳给服务器,服务器给客户端一个心跳应答,这样就形成客户端服务器的一次完整的握手,这个握手是让双方都知道他们之间的连接是没有断开,客户端是在线的。
2018-01-23 14:16:06 1123
转载 你为什么得不到梦想中的开发工作?
为什么,我们得不到梦想中的工作呢?写在前面你可能对现在的工作不是很满意或者谈不上喜欢与不喜欢, 不然你也不会来看这篇文章。很多开发者都梦想在一个这样的地方工作:工程师文化、极客、自由、对外宣称自己和 Airbnb 等硅谷公司一样。
2017-12-12 19:45:24 299
原创 类的加载顺序
什么时候类加载 第一次需要使用类信息时加载。 类加载的原则:延迟加载,能不加载就不加载。 触发类加载的几种情况: (1)、调用静态成员时,会加载静态成员真正所在的类及其父类。 通过子类调用父类的静态成员时,只会加载父类而不会加载子类。 (2)、第一次 new 对象的时候 加载(第二次再 new 同一个类时,不需再加载)。 (3)、加载子类会先加载父类。(覆盖父类方法时所抛出的
2017-12-01 17:13:50 6938 2
原创 线程和Service区别
1.Thread:Thread 是程序执行的最小单元,它是分配CPU的基本单位。可以用 Thread 来执行一些异步的操作2.Service :四大组件之一,后台服务,一般运行在主线程之上。Thread 的运行是独立于 Activity 的,也就是说当一个 Activity 被 finish 之后,如果你没有主动停止 Thread 或者 Thread 里的 run 方法没有执行完毕的话,Thread
2017-12-01 17:07:16 3437
原创 Android 事件总线 Otto
Otto 介绍 Otto is an event bus designed to decouple different parts of your application while still allowing them to communicate efficiently.Forked from Guava, Otto adds unique functionality to an al
2017-11-03 15:03:02 395
原创 git 配置
Git 使用方法Git 常用命令git init here – 创建本地仓库(repository),将会在文件夹下创建一个 .git 文件夹,.git 文件夹里存储了所有的版本信息、标记等内容git remote add origin git@github.com:winter1991/helloworld.git – 把本
2017-11-03 15:01:14 228
原创 快速排序 算法
package datastruct;import java.util.Arrays;public class QuickSort { /*** * 思想:选择一个基准元素,通常选择第一个元素或者最后一个元素,通过一趟扫描, * 将待排序列分成两部分,一部分比基准元素小, * 一部分大于等于基准元素,此时基准元素在其排好序后的正确位置, *
2017-11-03 11:16:31 270
原创 MD5
public class Md5Utils { public static byte[] md5(String s) { MessageDigest algorithm; try { algorithm = MessageDigest.getInstance("MD5"); algorithm.reset(); algorithm.update(s.getBytes
2017-11-01 22:08:24 229
原创 SurfaceView 实现动态曲线
public class SurfaceViewTest extends SurfaceView implements SurfaceHolder.Callback { private Timer timer; SurfaceHolder holder; private MyTimerTask timerTask;//---------------------------
2017-11-01 22:04:20 863
原创 Android 实现全屏的Activity
import android.annotation.SuppressLint;import android.app.Activity;import android.app.AlertDialog;import android.os.Bundle;import android.os.Handler;import android.view.GestureDetector;import an
2017-11-01 21:59:16 667
原创 Java中堆内存和栈内存详解
Java把内存分成两种,一种叫做栈内存,一种叫做堆内存1.在函数中定义的一些基本类型的变量和对象的引用变量都是在函数的栈内存中分配。当在一段代码块中定义一个变量时,java就在栈中为这个变量分配内存空间,当超过变量的作用域后,java会自动释放掉为该变量分配的内存空间,该内存空间可以立刻被另作他用。 2. 堆内存用于存放由new创建的对象和数组。在堆中分配的内存,由java虚拟机自动垃圾回收器来
2017-10-29 01:03:44 225
翻译 算法
编程论到极致,核心非代码,即思想。所以,真正的编程高手同时是思想独到及富有智慧(注意与聪明区别)的人。每一个算法都是一种智慧的凝聚或萃取,值得我们学习从而提高自己,开拓思路,更重要的是转换思维角度。
2017-10-29 00:46:54 158
原创 状态机 和 状态模式
状态机简写为FSM(Finite State Machine),主要分为2大类:有限状态机,(英语:Finite-state > machine, FSM),又称有限状态自动机 。 第一类,若输出只和状态有关而与输入无关,则称为Moore状态机 第二类,输出不仅和状态有关而且和输入有关系,则称为Mealy状态机1 . 介绍状态机可归纳为4个要素,即现态、条件、动作、次态。这样的归纳
2017-10-29 00:41:59 5880
转载 Java中的泛型方法
Java中的泛型方法 泛型是什么意思在这就不多说了,而Java中泛型类的定义也比较简单,例如:public class Test{}。这样就定义了一个泛型类Test,在实例化该类时,必须指明泛型T的具体类型,例如:Test t = new Test();,指明泛型T的类型为Object。 但是Java中的泛型方法就比较复杂了。 泛型类,是在实例化类的时
2017-10-29 00:31:35 237
原创 Java 变量什么时候需要初始化?
1 .类里定义的数据成员称为属性,属性可不赋初值,若不赋初值则JAVA会按上表为其添加默认值;方法里定义的数据成员称为变量,变量在参与运算之前必须赋初值。有了这个模板,就可以用它来创建对象:Vehicle veh1 = new Vehicle(); 通常把这条语句的动作称之为创建一个对象,它包含了四个动作。 1)右边的“new Vehicle”,是以Vehicle类为模板,在堆空间里创建一个Ve
2017-10-29 00:09:29 3463 1
原创 Java 基本算法实现
1、冒泡算法 冒泡排序算法的运作如下: 1. 比较相邻的元素。如果第一个比第二个大,就交换他们两个。 2. 对每一对相邻元素作同样的工作,从开始第一对到结尾的最后一对。在这一点,最后的元素应该会是最大的数。 3. 针对所有的元素重复以上的步骤,除了最后一个。 4. 持续每次对越来越少的元素重复上面的步骤,直到没有任何一对数字需要比较 public static void bubbleSort
2017-10-28 10:25:26 606 1
原创 合并多个module到一个文件下
例子:1.root工程下新建CommomPlatom文件夹 2.将一个module拖进CommomPlatom文件夹 3.在setting.gradle中将原有的:moduleName为:extra:moduleName,编译一下,完成。如图:
2017-10-24 18:48:22 933
原创 Android开发
1. Java的四种引用的区别强引用:如果一个对象具有强引用,它就不会被垃圾回收器回收。即使当前内存空间不足,JVM 也不会回收它,而是抛出 OutOfMemoryError 错误,使程序异常终止。如果想中断强引用和某个对象之间的关联,可以显式地将引用赋值为null,这样一来的话,JVM在合适的时间就会回收该对象软引用:在使用软引用时,如果内存的空间足够,软引用就能继续被使用,而不会被垃圾回收器回收
2017-10-20 17:40:57 249
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人