说完Flow,再来看看它的两个子类,SharedFlow和StateFlow。
Kotlin的Channel
Channel,直译过来就是通道的意思,有从通道读取别人数据的通道,也有将数据写给别人的通道,当然,也有既可以读数据也可以写数据的通道。这是通俗的解释,专业一点来讲,通道就是生产者消费者的模型。
Kotlin Flow
Kotlin的Flow和RxJava有着很多相似之处,提供了很多操作符来操作数据流。简单写一些使用笔记
Retrofit使用
上篇文章简单说了OkHttp的使用,这篇来说Retrofit。同样,Retrofit也是Square公司出品。
OkHttp使用
说到网络请求框架,OkHttp应该是当下较为流行的了,原因就在于它简单易用,且高效。同样,也是Square公司的作品。
Kotlin之属性代理
属性代理是Kotlin独有的功能。
LeakCanary分析
LeakCanary主要用在Android中分析内存泄漏。何为内存泄漏?简单说便是,当一个对象所占用堆存储空间该被系统GC回收时,却由于种种原因没有被回收,那么这些内存就称为泄漏的内存。举个例子,退出一个Activity时,这时这个Activity该被回收,但是因为Activity内声明的Thread还在跑,Thread持有Activity的引用,导致Activity无法被回收,这时就造成了内存泄漏。
Linux命令--tee
tee,这个单词没有什么实际性的含义,就是T型管道的意思,在--
的基础上,变成T
型,这样就多了一个输出。所以,这个命令的作用就是,在不改变输出原有行为的基础上,将其额外的导向文件中。
Android WebView使用
当需要打开一个URL时,常规操作是用系统浏览器打开,很方便、便捷,不足之处就是只能显示,无法交互。使用SDK提供的WebView可以解决这一点,自然也需要多做一些额外的工作。
SurfaceView的使用
我们在View中绘制的内容,是由系统绘制的,每隔16ms,系统发出一次VSYNC信号,重新绘制屏幕,这个操作在主线程,所以如果我们在两次绘制之间做的操作耗时超过16ms,页面就会出现卡顿。而SurfaceView则是由我们主动绘制,在子线程,不会卡主线程,同时,SurfaceView实现了双缓存机制。