Activity 渲染流程
我们刚开始学习安卓时,第一课就是在 Activity
的 onCreate
方法中,调用 setContentView
设置布局,且我们知道,在 onResume
时,画面才会渲染;所以要分析 Activity
的渲染流程,就要从这三部分入手。
Logan 源码解析(下) - Native
本文对美团开源的日志 sdk Logan
进行源码分析,涉及 Android
和 Native
两部分。
由于篇幅问题,会将这两部分拆成两篇文章,本篇为 Native
端的解析。
Logan 源码解析(上) - Android
本文对美团开源的日志 sdk Logan
进行源码分析,涉及 Android
和 Native
两部分。
由于篇幅问题,会将这两部分拆成两篇文章,本篇为 Android
端的解析。
RxJava2 源码简析
Observable
内部有许多静态方法(操作符),比如我们常用的 create
、 map
、flatmap
等,调用这些静态方法,会返回操作符对应的 Observable
子类,比如 ObservableCreate
、 ObservableMap
、ObservableFlatMap
等;同时,新的 Observable
子类会将调用方保存到 source
变量中;
最后我们会调用 subscribe
方法,传入 Observer
,该方法内部会调用到 Observable
子类的 subscribeActual
方法;在 subscribeActual
方法中,通过 source::subscribe
来调用上一个 Observable
子类的 subscribe
方法,传入自己的 Observer
,直到最上面的 Observable
;
然后又从最上面的 Observable
开始,对传入的 Observer
调用 onSubscribe
、onNext
等,最后调用到我们传入的 Observer
;
在整个过程中,最重要的便是 subscribeActual
方法,和传入 source::subscribe
的 Observer
子类。
Java 线程池源码解析
ExecutorService::newFixedThreadPool()
、ExecutorService::newSingleThreadExecutor()
、ExecutorService::newCachedThreadPool()
创建的都是 ThreadPoolExecutor
对象,ExecutorService::newScheduledThreadPool()
方法可以创建支持延时任务的线程池 ScheduledThreadPoolExecutor
,这个类也是 ThreadPoolExecutor
的子类,所以直接从 ThreadPoolExecutor
类开始分析;
ps: 《阿里巴巴Java开发手册》中不建议使用 ExecutorService
来创建线程池。
conan 实战之 cpp-httplib
前言
最近在搭建 c++ 的基础库,使用了 conan 来进行管理;其中团队几个项目同时使用了 cpp-httplib 库,另外一个项目由于设备限制,只能通过系统提供的代理方式来进行网络请求,所以还是手搓的网络请求;现在目标是修改 cpp-httplib 以支持被限制的设备,同时使用 conan 管理 cpp-httplib。
共计 12 篇文章,2 页。