Alex Studio

To Be A Lean Developer

Kotlin基础之函数

函数声明fun double(x: Int): Int { return 2*x} 函数调用 类Java用法 var result = double(2) 使用冒号调用创建Sample对象并调用foo函数 Sample().foo() 中缀(Infix)表示法中缀表示法(或中缀记法)是一个通用的算术或逻辑公式表示方法, 操作符是以中缀形式处于操作数的中间(例:......

React-Native基础(4):组件引用Ref

在典型的React数据流中,父组件与子组件的唯一交互方式就是通过Props。修改子组件,就需要使用新的Prop来重新渲染。但是在有些情况,需要在数据流之外,直接来执行子组件的修改操作。React提供了使用Ref方式来解决直接修改子组件或子DOM元素的问题。 添加Ref到DOM元素ref是React组件一个特殊属性,使用回调函数作为属性,函数的接收组件的基本DOM元素作为它的参数。<C......

React-Native基础(2):聊聊Props与States

React-Native 基于状态实现对DOM控制和渲染。组件状态分为两种:一种是组件间的状态传递、另一种是组件的内部状态,这两种状态使用props和state表示。props用于从父组件到子组件的数据传递。组件内部也有自己的状态:state,这些状态只能在组件内部修改。 Props在React-Native中大多数组件创建时可以带有不同的参数,这些参数被称为props。如:React-Na......

React-Native基础(1):布局

Flex布局Flexbox布局旨在提供一个更佳有效的布局方式,更好的控制项目的对齐和自由分配容器空间,即使它们的大小是未知的或动态的。因此得其名”flex”。 父容器属性 flexDirection?: enum(‘row’, ‘column’,’row-reverse’,’column-reverse’) flexWrap?: enum(‘wrap’, ‘nowrap’) justifyC......

设计模式之命令模式

在软件设计中,经常需要向某些对象发送请,但是并不知道请求的接收者是谁,也不知道具体请求的操作者,只需要在程序运行时指定具体的请求接收者即可。此时可以使用命令模式来进行设计,使得请求发送者与请求接收者消除彼此之间的耦合,让对象之间的调用关系更加灵活。 1.1 命令模式定义命令模式 :将一个请求封装成对象,从而使我们可用不同的请求对客户端进行参数化;支持请求队列,日志记录和撤销操作。 1.2 结......

深入理解OkHttp3的Connections(3)

OkHttp3的网络连接创建和数据传输由责任链网络层的ConnectInterceptor和CallServerInterceptor完成。ConnectInterceptor为请求创建与服务器网络连接,CallServerInterceptor负责网络数据读写的具体操作。 1. StreamAllocationStreamAllocation类似中介者模式,协调Connections、S......

深入理解OkHttp3的DiskLruCache(2)

磁盘缓存是将网络资源先保存到系统分配出的内存空间中,当内存中的资源容量达到某个限度时,在将内存中的资源保存的磁盘中。这样做可以有效减少磁盘的读写操作。 OkHttp3的网络缓存主要实现由DiskLruCache这个类来实现。缓存保存在应用指定的内部缓存文件夹中,在调用磁盘缓存时,DisLruCache读取缓存文件快照到内存。涉及到缓存的读写任务都由类DiskLruCache.Edit.jav......

深入理解OkHttp3的Interceptors(1)

Version : okhttp:3.6.0 Interceptors是OkHttp3整个框架的核心,包含了请求监控、请求重写、调用重试等机制。它主要使用责任链模式,解决请求与请求处理之间的耦合。 1.1 责任链模式将接收对象放入链中,按照链中顺序让多个对象处理请求。请求者不用知道具体是由谁处理。解决请求与接收之间的耦合,提高灵活性。责任链负责对请求参数的解析,所有的扩展都是针对链中节点......

Android:DFM弹幕开发之基本配置

DanmakuFlameMaster(以下简称DFM)是哔哩哔哩开源的Android弹幕解析绘制引擎项目。DFM使用多种方式(View/SurfaceView/TextureView)实现高效绘制,支持自定义字体,支持多种弹幕参数设置等 一、配置Gradle repositories { jcenter()}dependencies { compil......

Android:SurfaceView基础与原理

普通的View以及派生类都是共享同一个surface的,所有的绘制都必须在UI线程中执行。而SurfaceVAiew比较特殊,并不与其他普通View共享Surface,而是在内部持有了一个独立的surface。SurfaceView负责管理这个Surface的格式,尺寸以及显示位置。由于UI线程还要同事处理其他交互逻辑,因此对View的更新速度和帧率无法保证,而SurfaceView由于持有......