大家应该都知道,Android 的消息机制是基于 Handler 实现的。还记得一年前的自己就看了几篇博客,知道了 Handler、Looper、MessageQueue 就自以为自己知道了 Handler 的原理。但其实看源码的过程中慢慢就会发现,Handler 的内容可不止...
我们都知道在 Activity 的启动过程,当 AMS 对启动 Activity 相关的信息进行校验确认无误后会调用 ActivityThread 中的 handleLaunchActivity 方法。 首先它会调用 performLaunchActivity 方法。在其中会调用 Instrumentation::callAc...
setContentView 首先先来到了 Activity::setContentView,它其实调用了 getWindow().setContentView, Window 在我们这里的实现类是 PhoneWindow,所以最后来到了 PhoneWindow::setContentView。 ...
缓存概述 在 Android 开发的过程中常常需要用到缓存的功能来减少应用对用户流量的消耗(如图片缓存,文章缓存等等)。而对于用户的手机而言,其内存/存储空间的大小一般都是有限的,在一些缓存量大或缓存十分频繁的情况下,如果我们不...
TCP 在 IP 协议不可靠(尽力而为也就是无服务)之上建立了可靠的数据传输服务。它确保了发送方发送的字节流与接收方所接收到的字节流是完全相同的。那么它又是如何实现的呢? 累积确认机制 首先,我们需要清楚,TCP 报文段中具有两个...
这段时间看了看工作室的工具库的下载组件,发现其存在一些问题: 下载核心逻辑有 bug,在暂停下载或下载失败等情况时有概率无法顺利完成下载。 虽然原来的设计是采用多线程断点续传的设计,但打了一下日志发现其实下载任务都是在同...
Picasso 是 Square 公司出品的一款十分优秀的开源图片框架,也是目前 Android 开发中十分流行的一款图片加载框架。提到 Square 公司大家一定不会陌生,OkHttp、Retrofit、LeakCanary 等等 Android 开发者十分熟悉的开源库都出自他们...
在计算机网络的数据传输的过程中可能遇到数据的损坏问题: 分组的数据(bit)在传输过程中发生损坏,部分从 1 变成了 0 或者从 0 变成了 1 分组在传输过程中丢失,如到达中转路由器时,由于其输入队列已满,导致该分组被丢弃 分组未...
之前学习容器的时候缺少了一些笔记,现在补一下笔记顺便重新理解一遍这些容器的源码。 HashMap 是我们在 Java 开发中经常接触到的容器,今天就让我们从它的源码入手来了解它的实现原理。本文为上部分,不包含其有关红黑树的操作,下一...