
源码
文章平均质量分 84
Super-B
这个作者很懒,什么都没留下…
展开
-
Android compose源码浅析——Modifier
这里的modifier的操作函数,比较像kotlin协程中的context的操作,简直一摸一样,有兴趣可以看看我之前写的kotlin coroutine源码解析之coroutineContext篇。原创 2025-04-09 18:50:01 · 783 阅读 · 0 评论 -
安卓Loop机制剖析之Looper,handler
目录Looper是什么简单使用从源码了解loop原理myLooper()next()handler.dispatchMessagehandler分析消息入队同步屏障Looper是什么用于为线程运行消息循环的类。默认情况下,线程没有与之关联的消息循环。要创建一个,在要运行循环的线程中调用 prepare(),然后调用loop()让它处理消息,直到循环停止为止。与消息循环的大多数交互是通过 Handler类进行的。意思大概就是让线程有处理消息的能力,并且这种能力是无限循环的,直到被停止为止。简单使用原创 2020-08-29 21:44:28 · 1662 阅读 · 0 评论 -
安卓Loop机制剖析之ThreadLocal
ThreadLocal是什么ThreadLocal是Thread的局部变量,用于编多线程程序,对解决多线程程序的并发问题有一定的启示作用,ThreadLocal为解决多线程程序的并发问题提供了一种新的思路,使用这个工具类可以很简洁地编写出优美的多线程程序。简单使用解释其实还是很抽象的,下面展示一个demo,来看下threadLocal对象怎么使用的。 public void threadLocal(){ final ThreadLocal<String> t=new Thread原创 2020-08-29 18:02:54 · 442 阅读 · 0 评论 -
Okio基本使用以及源码分析
Okio是什么在OkHttp的源码中经常能看到Okio的身影,所以单独拿出来学习一下,作为OkHttp的低层IO库,Okio确实比传统的java输入输出流读写更加方便高效。Okio补充了java.io和java.nio的不足,使访问、存储和处理数据更加容易,它起初只是作为OKHttp的一个组件,现在你可以独立的使用它来解决一些IO问题。先看下okio库中类之间的关系:okio中最关键的是对于缓存队列的管理,这些优化操作使得okio在复制数据的时候可以减少拷贝次数,来看下okio中数据保存的数据结构是原创 2020-08-24 01:24:00 · 748 阅读 · 0 评论 -
从源码剖析RxJava基本工作原理(4),Schedule调度器的实现
Schedule调度器rxJava的调度器还是比较复杂的,继承关系比较复杂不说,而且有很多内部类,绕来绕去的有点恶心。但是嘛,先把图画出来再说,跟着图的路线走,总不会迷路的。首先我们使用的schedule的方式就是.subscribeOn(Schedulers.io()) 那么就从这个IO()函数入口去看下,里面是个什么东西, @NonNull public static Scheduler io() { return RxJavaPlugins.onIoScheduler(IO);原创 2020-08-20 17:26:05 · 470 阅读 · 0 评论 -
FutureTask的使用以及源码剖析
FutureTask类图我们首先来画一下类图,好分析这个类的逻辑流程以及功能:从图中可以知道,它继承了runnable接口以及future接口,那么说明这个类可以用来执行线程的异步任务,也可以用来将异步结果同步接受。 public static void main() { ExecutorService executor = Executors.newCachedThreadPool(); Task task = new Task(); Future原创 2020-08-19 15:35:06 · 236 阅读 · 0 评论 -
从源码剖析RxJava基本工作原理(3)
subscribeOn操作符上一节我们分析了observerOn操作符,它是可以切换onNext,onComplete所在线程的,也就是事件消费的线程;这一节我们来分析subscribeOn操作符,这个操作符是用来切换createEmitter类的subscribe方法的线程的,也就是切换事件发射所在的线程。demo实例按照惯例还是用一个demo代码来说明我们的subscribeOn操作符的作用以及用法。代码如下: Log.e(TAG,"主线程ID:"+Thread.currentT原创 2020-08-18 17:58:32 · 183 阅读 · 0 评论 -
从源码剖析RxJava基本工作原理(2)
RxJava线程切换我们知道使用rxJava的最重要使用场景就是获取网络请求数据或者是数据库数据等等异步耗时操作的,所以对rxJava线程切换的掌握也十分重要,这一章我们来讲一讲rxJava的线程切换是怎么实现的。简单demo使用 Log.e(TAG,"主线程ID:"+Thread.currentThread().getId()); Observable.create(new ObservableOnSubscribe<Integer>() {原创 2020-08-17 11:11:42 · 200 阅读 · 0 评论 -
从源码剖析RxJava基本工作原理(1)
什么是RxjavaReactiveX是一个通过使用可观察序列来编写异步和基于事件的程序的库。它扩展了观察者模式以支持数据和/或事件序列,并增加了运算符,使您可以声明性地组合序列,同时抽象出对低级线程,同步,线程安全性,并发数据结构和非线程等事物的关注阻塞I / O1.简单实例以上文字的描述很精炼的说出了rxJava是干啥的,以及它的优点,下面我会从简单的使用案例中去剖析rxJava的工作原理。Observable.create(new ObservableOnSubscribe<Intege原创 2020-08-15 21:28:42 · 265 阅读 · 0 评论