随笔分类 - Android原理
对Android源码,或者Android第三方库的原理解析
摘要:## 概述 为了避免多个线程同时更新 UI,导致不可预知的错误;所以现今几乎所有的 GUI 框架都只允许在主线程修改 UI;因此这些框架都选择了消息驱动编程模型; 消息驱动编程模型有以下几个组件: 1. 消息队列:存储待处理的消息 2. 分发器:将不同事件分发到不同的业务逻辑单元 3. 消息通道:
阅读全文
摘要:概论 当前版本com.squareup.retrofit2:retrofit:2.9.0 虽然okhttp很好用,但是开发者所需要关心的细节太多了,所以square又开发了retrofit简化流程。 retrofit主要使用流程如下: interface GithubService { @GET("
阅读全文
摘要:okhttp详解 概论 okhttp是一个网络库,其功能主要有两点: 请求的发起与响应的接收 多个请求的管理 当前版本为4.9.0。 请求的发起与响应的接收 这个过程是U型的,如拆轮子系列:拆 OkHttp中的流程图所显示的: 先是向下一步一步地加工报文,到最底端将报文发送到服务端,然后拿到服务器返
阅读全文
摘要:概论 RecyclerView是一个在有限窗口显示大量数据的灵活视图; 绘制过程 ChildView的实际绘制过程由LayoutManager所掌控; onMeasure @Override protected void onMeasure(int widthSpec, int heightSpec
阅读全文
摘要:title: 自定义View categories: Android原理 概论 所谓自定义View其实就是在屏幕大小画布的某一区域内作画的过程,这里面分为两个部分:在哪画?,画什么?; 在哪画? 这里面同样包含两部分:获得这片区域的宽高,获得这片区域左上角相较于屏幕左上角的坐标; 至于为什么顺序是这
阅读全文
摘要:整体分发流程 Android Input Framework 这篇详细讲解了触摸事件从硬件分发到Activity之前的过程。 graph TD; a(Input Hardware)-->b(Kernel/Driver); b-->c(EventHub); c-->d(InputReader); d-
阅读全文
摘要:offscreenPageLimit = 0 的情况 此种情况表示不会预先加载其他的Fragment,仅仅加载第一个Fragment,其生命周期如下: Test fragment 0 onAttach Test fragment 0 onCreate Test fragment 0 onCreate
阅读全文