12
2020
05

设计模式之观察者模式

场景我们接到一个来自气象局的需求:气象局需要我们构建一套系统,这系统有两个公告牌,分别用于显示当前的实时天气和未来几天的天气预报。当气象局发布新的天气数据(WeatherData)后,两个公告牌上显示的天气数据必须实时更新。气象局同时要求我们保证程序拥有足够的可扩展性,因为后期随时可能要新增新的公告牌。概况这套系统中主要包括三个部分:气象站(获取天气数据的物理设备)、WeatherData(追踪来自气象站的数据,并更新公告牌)、公告牌(用于展示天气数据)WeatherStationWeather
12
2020
05

EventBus

01 前言当我们进行项目开发的时候,往往是需要应用程序的各组件、组件与后台线程间进行通信,比如在子线程中进行请求数据,当数据请求完毕后通过Handler或者是广播通知UI,而两个Fragment之家可以通过Listener进行通信等等。当我们的项目越来越复杂,使用Intent、Handler、Broadcast进行模块间通信、模块与后台线程进行通信时,代码量大,而且高度耦合。现在就让我们来学习一下EventBus 3.0吧。02 什么是EventBusEventBus Github地址进入官网,
12
2020
05

Android EventBus 的使用

1、EventBus 简介EventBus是一种用于Android的事件发布-订阅总线,由GreenRobot开发,Gihub地址是:EventBus。它简化了应用程序内各个组件之间进行通信的复杂度,尤其是碎片之间进行通信的问题,可以避免由于使用广播通信而带来的诸多不便。1.1 三个角色Event:事件,它可以是任意类型,EventBus会根据事件类型进行全局的通知。Subscriber:事件订阅者,在EventBus 3.0之前我们必须定义以onEvent开头的那几个方法,分别是onEvent
10
2020
01

高速电路设计/信号完整性的一些基本概念

1.信号完整性(Signal Integrity):就是指电路系统中信号的质量,如果在要求的时间内,信号能不失真地从源端传送到接收端,我们就称该信号是完整的。2.传输线(Transmission Line):由两个具有一定长度的导体组成回路的连接线,我们称之为传输线,有时也被称为延迟线。3.集总电路(Lumped circuit):在一般的电路分析中,电路的所有参数,如阻抗、容抗、感抗都集中于空间的各个点上,各个元件上,各点之间的信号是瞬间传递的,这种理想化的电路模型称为集总电路。4.分布式系统
10
2020
01

PCB EMI设计规范

1 、IC的电源处理  1.1)保证每个IC的电源PIN都有一个0.1UF的去耦电容,对于BGA CHIP,要求在BGA的四角分别有0.1UF、0.01UF的电容共8个。对PCB走线的电源尤其要注意加滤波电容,如VTT等。这不仅对稳定性有影响,对EMI也有很大的影响。2、 时钟线的处理  2.1)建议先走时钟线。  2.2)频率大于等于66M的时钟线,每条过孔数不要超过2个,平均不得超过1.5个。  2.3)频率小于66M的时钟线,每条过孔数不要超过3个,平均不得超过2.5个  2.4)长度超过
10
2020
01

【转】数据段、代码段、堆栈段、BSS段的区别

5个数据段       进程(执行的程序)会占用一定数量的内存,它或是用来存放从磁盘载入的程序代码,或是存放取自用户输入的数据等等。不过进程对这些内存的管理方式因内存用途 不一而不尽相同,有些内存是事先静态分配和统一回收的,而有些却是按需要动态分配和回收的。对任何一个普通进程来讲,它都会涉及到5种不同的数据段。Linux进程的五个段下面我们来简单归纳一下进程对应的内存空间中所包含的5种不同的数据区都是干什么的。BSS段:BSS段(bss segment)通
10
2020
01

【转】C语言8大经典排序算法(2)

二、插入类排序 插入排序(Insertion Sort)的基本思想是:每次将一个待排序的记录,按其关键字大小插入到前面已经排好序的子文件中的适当位置,直到全部记录插入完成为止。  插入排序一般意义上有两种:直接插入排序和希尔排序,下面分别介绍。3、直接插入排序基本思想:最基本的操作是将第i个记录插入到前面i-1个以排好序列的记录中。具体过程是:将第i个记录的关键字K依次与其前面的i-1个已经拍好序列的记录进行比较。将所有大于K的记录依次向后移动一个位置,直到遇到一个关键字小于或等于K的
10
2020
01

【转】C语言8大经典排序算法(1)

算法一直是编程的基础,而排序算法是学习算法的开始,排序也是数据处理的重要内容。所谓排序是指将一个无序列整理成按非递减顺序排列的有序序列。排列的方法有很多,根据待排序序列的规模以及对数据的处理的要求,可以采用不同的排序方法。那么就整理下网上搜索的资料,按自己的理解,把C语言的8大排序算法列出来。普通意义上,排序算法可以分为三大类:1 交换类排序法2 插入类排序法3 选择类排序法一.交换类排序法所谓交换排序法是指借助数据元素之间互相交换进行排序的方法。冒泡排序与快速排序法都属于交换类排序方

09
2020
01

【转】电源分布网络分解

笔者之前从事硬件研发工作,曾经对高速信号的信号完整性工作做过一些研究,但是始终没有找到门径,现在在美国一家公司从事芯片的电源完整和信号完整性性能测试方面的工作,开始对电源完整性和信号完整性有了一定的认识,从现在开始我将会和大家分享一些对信号完整性和电源完整性方面的心得,有一部分内容可能不是原创,是我之前的学习笔记,我在这里分享出来,主要是想梳理清楚思路,如果有侵犯到您的版权,请与我联系,我会及时删改,谢谢!同时我之前使用的是latex写的学习笔记,因为知乎不支持语法编辑,我无法实现一些诸如上标和
09
2020
01

【转】电源分布网络介绍

笔者之前从事硬件研发工作,曾经对高速信号的信号完整性工作做过一些研究,但是始终没有找到门径,现在在美国一家公司从事芯片的电源完整和信号完整性性能测试方面的工作,开始对电源完整性和信号完整性有了一定的认识,从现在开始我将会和大家分享一些对信号完整性和电源完整性方面的心得,有一部分内容可能不是原创,是我之前的学习笔记,我在这里分享出来,主要是想梳理清楚思路,如果有侵犯到您的版权,请与我联系,我会及时删改,谢谢!同时我之前使用的是latex写的学习笔记,因为知乎不支持语法编辑,我无法实现一些诸如上标和