源码分析-GLSurfaceView的内部实现 发表于 2017-09-01 | 前言GLSurfaceView类是继承自SurfaceView的,并且实现了SurfaceHolder.Callback2接口。GLSurfaceView内部管理着一个surface,专门负责OpenGL渲染。GLSurfaceView内部通过GLThread和EGLHelper为我们完成了EGL环 ... 阅读全文 »
源码分析-Retrofit 发表于 2017-09-01 | 分类于 Android | 一、Retrofit的大致使用123456789101112131415161718192021222324public interface ZhihuService { /** * 获取消息具体内容 * @param new_id 消息对应ID * @return */ @GET("api/4/news/{new_id}") Observable<NewsDetailInfo> getNewsDetail(@Path("new_id") String new_id);}public static final String API_URL = "http://news-at.zhihu.com/";Retrofit retrofit = new Retrofit.Builder() .baseUrl(API_URL) .client(mOkHttpClient) .addCallAdapterFactory(RxJavaCallAdapterFactory.create()) .addConverterFactory(GsonConverterFactory.create()) .build();retrofit.create(ZhihuService.class) .getNewsDetail("19") .subscribeOn(Schedulers.io()) .observeOn(AndroidSchedulers.mainThread()) .subscribe(); 阅读全文 »
源码分析-RxJava 发表于 2017-08-29 | 一、前言Rxjava是用Java实现的ReactiveX框架开源库,ReactiveX就是大名鼎鼎的响应式编程。而响应式编程和观察者模式又是紧紧相关联的。 二、观察者模式1)基本原理观察者模式时对象的行为模式,又叫发布-订阅模式,即让多个观察者对象同时监听某一个主题对象。这个主题对象在状态上发生变化 ... 阅读全文 »
源码分析-ZeroMQ连接的建立与重连机制 发表于 2017-08-11 | ZeroMQ,作为一个消息通信的框架,最重要的还是通信的可靠性,而这其中最重要的就是连接断开之后的重连接机制。在这里,我们分别分析一下ZMQ的连接建立过程和重连接过程。 回顾在分析之前,我们先来回顾一下SocketBase、SessionBase和Poller这几个类的关系。 ZeroMQ是一个 ... 阅读全文 »
史上最快的消息队列:ZeroMQ 发表于 2017-08-09 | ZeroMQ最近在公司实习使用到这个消息传输框架,发现传输效率真的不是一般的快,而且还非常任性地支持随机连接顺序,即可以client先连接、server后上线,在服务器的应用上还可以用于分布式扩展。这里向大家安利一波,也算是记录自己在ZMQ方面的学习的过程~ 官方说法: ZMQ是一个简单好用的传输层 ... 阅读全文 »
synchronized与对象的Monitor 发表于 2017-08-07 | synchronized介绍关于synchronized我们已经在《synchronized与Lock》一文中进行了比较全面的介绍。 当我们使用synchronized修饰方法名时,编译后会在方法名上生成一个ACC_SYNCHRONIZED标识来实现同步;当使用synchronized修饰代码块时, ... 阅读全文 »
Thread和Runable的区别 发表于 2017-08-06 | 1、 Thread是类,Runable是接口;java中要实现多线程,要么继承Thread类并覆写本类中的run()方法,要么实现Runnable接口的run()方法。 这两中方式最终都是通过调用start()方法来实现多线程。切记不能直接调用Thread类或Runnable对象的run()方法,因 ... 阅读全文 »