趁着西安出差,学习了几个框架,稍作总结
1、Glide框架原理
该框架类似于顾客去银行办业务,顾客很多,但是银行的消费窗口有限,银行应该建立消费窗口,每个窗口都是挨个自动的从任务队列中取任务。
请求类:BitmapRequest.java,
任务处理类,也就是图中的消费窗口,其初始化时应该包含有任务队列,一旦工作就不断(无限循环)从任务队列中取出任务进行处理。
**管理者:**RequestManager,利用任务队列去建立消费窗口,并且启动他们
2、OkHttp框架原理
框架原理是建立线程池,利用调度线程,不断的取任务进行处理:
请求:Request,activity发送很多请求,请求封装成Request类,其中包含URL等信息,包含有execute()方法,可以发起请求任务。
请求任务:HttpTask,包含有request,并且能够自主开线程运行,最终会被添加到任务队列中。
线程池管理者:创建一个线程池进行管理,ThreadPoolManager,其中包含有请求队列Request,同时包含有一个调度线程,不断的从请求队列中国去取请求,扔给线程池进行处理。
3、EventBus框架原理
创建EventBus类,由getDefault返回单例对象
其中register方法,会循环查找注册的类中所有被标注了@Subscribe的方法,兵=并且加入到队列中。
post方法会无限循环,查找消息队列,如果有可以处理的方法,就进行反射调用。