前言 前一段时间,在公司内部进行了一次QUIC协议的演讲。当时因为时间有限,没有仔细的讨论Cronet 的源码细节,仅仅只是介绍了QUIC的协议细节。本文就从Cronet源码...
前言 前一段时间,在公司内部进行了一次QUIC协议的演讲。当时因为时间有限,没有仔细的讨论Cronet 的源码细节,仅仅只是介绍了QUIC的协议细节。本文就从Cronet源码...
目录 一、提出问题 1.OkHttp底层也是通过Socket发送和接收请求,是如何支持http/https请求的?2.连接池的实现原理,如何支持多路复用?怎样从连接池选择复用...
耳目一新的分析。
Glide 4.9 源码分析(一) —— 一次完整加载流程前言 若想把握 Glide 图片加载的精髓, 首先要理清 Glide 图片加载的一次流程 好的, 可以看到 Glide 的使用方式极为简单, 但往往越是简单的背后, 越是隐藏...
在应用 AOP 之前,应该思考几个问题: 明确你应用 AOP 在什么项目 小范围试用,选择一个侵入性小的 AOP 方法 明确切入点的相似性 考虑切入点的数量和相似性,确定你是...
前言 旨在使用定制化Json内容,快速生成客户端界面,并带一定的业务逻辑, 第一个迭代选取最常用的基础组件,及容器类组件,以求能达到快速生成展示类页面;并在后面迭代快速增加类...
EasyMvp 一个简单强大且灵活的MVP框架。项目地址:EasyMvp 特点 一个 Activity 可以绑定多个 Presenter,以达到最大的复用功能。 采用注解的方...
写的太好了 非常清晰
OkHttp 3.7源码分析(二)——拦截器&一个实际网络请求的实现OkHttp3.7源码分析文章列表如下: OkHttp源码分析——整体架构 OkHttp源码分析——拦截器 OkHttp源码分析——任务队列 OkHttp源码分析——缓存策略...
是AMNative的成员变量没错的 文章上写成AMProxy了
3分钟看懂Activity启动流程背景介绍 从事开发到了一定阶段,想要提高就必须搞明白系统的一些工作原理。为什么?因为只有明白了这些,你才能针对平台的特性写出优质的代码。当遇到棘手的问题时,你才能更快速的结合...
主要在 静态的引用变量instance本身也是gcroot的一员
Android开发从GC root分析内存泄漏我们常说的垃圾回收机制中会提到GC Roots这个词,也就是Java虚拟机中所有引用的根对象。我们都知道,垃圾回收器不会回收GC Roots以及那些被它们间接引用的对象。但是...
“应用运行过程中非动态加载的类都是通过dalvik.system.PathClassLoader的实例加载到虚拟机中的。这些类对象是GC root的一种,它们带来的静态变量永远不会被垃圾回收” 这句话是有问题的。
静态变量指向GC堆的引用也属于GC ROOT,例子里静态变量instance 指向 AccountMananger对象的引用,所以instance 也是gcroot成员,因为静态成员变量生命周期贯穿进程始终,所以被instance 这个root成员引用的AccountMananger对象无法回收
Android开发从GC root分析内存泄漏我们常说的垃圾回收机制中会提到GC Roots这个词,也就是Java虚拟机中所有引用的根对象。我们都知道,垃圾回收器不会回收GC Roots以及那些被它们间接引用的对象。但是...
上一节有介绍了一些和内存相关的基础知识,这一节就讲一下怎么发现和处理内存问题。对于我们来说,最容易发现的内存问题当然是OOM(OutOfMemoryError),应用直接Cr...
昨天组里的同事遇到一些切换多语言的细节问题,发现在Android N版本上配置应用内多语言没有生效,正好拿出来做为一个面试题讲解一下。 面试题:如何实现应用内多语言切换? 我...