瘟疫青年

瘟疫青年

it's better to burn out than to fade away

六大设计模式
设计模式六大原则(1):单一职责原则 定义:不要存在多于一个导致类变更的原因。通俗的说,即一个类只负责一项职责。 问题由来:类T负责两个不同的职责:职责P1,职责P2。当由于职责P1需求发生改变而需要修改类T时,有可能会导致原本运行正常的职责P2功能发生故障。 解决方案:遵循单一职责原则。分别建立两个类T1、T2,使T1完成职责P1功能,T2完成职责P2功能。这样,当修改类T1时,不会使职责P2发生故障风险;同理,当修改T2时,也不会使职责P1发生故障风险。 说到单一职责原则,很多人都会不屑一顾。因为它太简单了。稍有经验的程序员即使从来没有读过设计模式、从来没有听说过单一职责原则,在...
AnimatedVectorDrawable总结
在更新Android N之后 会注意到状态栏上的快捷方式有了新的变化 当我们点击的时候,从开启到关闭状态,会有一个顺滑自然的过渡动画,在学习完AnimatinVectorDrawable的api用法之后,你就会知道该怎么实现这些类似的效果了。 Vector在开始之前,想先说明一下安卓中的矢量图标文件Vector,我们经常会用到矢量图,将一张SVG的图片通过AS自动生成一个以vector为根节点的xml文件,可以直接通过1R.drawable.xx 的格式引用它。矢量图形不管我们如何拉伸都不会模糊,因此广受开发者青睐。看一下一个典型的vector文件结构 12345678910111213...
Rxjava2操作符
Rxjava2 操作符 Createcreate操作符,主要用于产生一个 Obserable 被观察者对象,因为Observable主要用于发射事件,Observer主要用于消费时间,所以以后统一把被观察者 Observable 称为发射器(上游事件),观察者 Observer 称为接收器(下游事件)。 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253Observable.create(new ObservableOnSubscribe<...
socket未释放导致句柄泄露
问题描述客户反馈话机的voipsdk demo在运行起来之后 放置不动,几小时过后,应用进行任何操作都会崩溃。通过logcat 报错信息 发现出现了句柄泄露。通过ls -l /proc//fd可以查看到在demo进程下,持有的socket数量会规律性上升。 12345lrwx------ system system 2018-03-08 14:11 60 -> socket:[4027431]lrwx------ system system 2018-03-08 14:11 61 -> socket:[4025517]lrw...
线程阻塞和中断的四种方式
1、线程阻塞一个线程进入阻塞状态可能的原因: 通过调用sleep(millseconds)使任务进入休眠状态;123456789101112class Demo1 implements Runnable throws InterruptedException{ public void run(){ Thread.sleep(1000); }}②通过调用wait()使线程挂起,直到线程获取notify()/notifyAll()消息,(或者在Java SE5中java.util.concurrent类库中等价的si...
mac搭建Pyqt5环境
1.首先基于virtualenv 搭建一个python3的运行环境virtualenv是一个十分好用的python工具,可以为不同的软件创建独立的“隔离”的Python运行环境。 1. 首先,我们用pip安装virtualenv:1$ pip3 install virtualenv 2.创建一个pyhton3的运行环境1jiangxqdeMBP:~ jiangxq$ virtualenv py3 --python=python3 可以通过python=python3来指定要安装的python版本,python3是mac的写法,其他linux系统需要制定为python2.7 或者pytho...
MQTT相关总结
MQTT相关MQTT官网:http://mqtt.org/ MQTT介绍:http://www.ibm.com MQTT Android github:https://github.com/eclipse/paho.mqtt.android MQTT API:http://www.eclipse.org/paho/files/javadoc/index.html MQTT Android API: http://www.eclipse.org/paho/files/android-javadoc/index.html MQTT服务器搭建 环境:windows7 64位 JAVA环境:j...
view 绘制机制
View的绘制和事件处理是两个重要的主题,上一篇《图解 Android事件分发机制》已经把事件的分发机制讲得比较详细了,这一篇是针对View的绘制,View的绘制如果你有所了解,基本分为measure、layout、draw 过程,其中比较难理解就是measure过程,所以本篇文章大幅笔地分析measure过程,相对讲得比较详细,文章也比较长,如果你对View的绘制还不是很懂,对measure过程掌握得不是很深刻,那么耐心点,看完这篇文章,相信你会有所收获的。 Measure过程对于测量我们来说几个知识点,了解这几个知识点,之后的实例分析你才看得懂。 1、MeasureSpec 的理解对...
linux用户控件、内和空间
用户空间就是用户进程所在的内存区域,相对的,系统空间就是操作系统占据的内存区域。 用户进程和系统进程的所有数据都在内存中。 是谁来划分内存空间的呢? 在电脑开机之前,内存就是一块原始的物理内存。什么也没有。开机加电,系统启动后,就对物理内存进行了划分。当然,这是系统的规定,物理内存条上并没有划分好的地址和空间范围。这些划分都是操作系统在逻辑上的划分。不同版本的操作系统划分的结果都是不一样的。 为什么要划分用户空间和系统空间呢?当然是有必要的。操作系统的数据都是存放于系统空间的,用户进程的数据是存放于用户空间的。这是第一点,不同的身份,数据放置的位置必然不一样,否则大混战就会导致系...
webrtc音频总结
webrtc/modules/audio_device/android/audio_record_jni.cc 这个文件,是音频采集jni类文件。 Android Audio Record 和 JNI 通信接口包括: 123// java 调用 c++ 接口nativeCacheDirectBufferAddressnativeDataIsRecorded 123456// c++ 回调 java 接口initRecordingstartRecordingstopRecordingenableBuiltInAECenableBuiltInNS nativeCacheDirectBuffe...
avatar
QuincyJiang
Coder & FilmPlayer
FRIENDS
google