源码分析 - Glide4 之 into()

承接上文 源码分析 - Glide4 之 with() 和 load() ,前面 with() 和 load() 都讲完了, load() 后返回后的是一个 RequestBuilder ,所以就从 RequestBuilder 的 into() 开始玩吧 现在说是into() //RequestBuilder.java public ViewTarget<ImageView, TranscodeType> into(@NonNull ImageV...

阅读更多

源码分析 - Glide4 之 with() 和 load()

GlideAPP 是个啥玩意 Glide4 之前的版本,一般使用 Glide 就是 Glide.with(context).load("http:xxxx").into(target) 这种形式,可是突然发现,在 Glide4 后竟然多了一个 GlideApp ,这是个啥玩意啊, Glide 框架中没有这个类啊,从哪里过来的呢,原来这个使用的是 APT 技术,通过 GlideModule 这个注解动态生成的,本质上还是使用的 Glide 的接口。 APT 技...

阅读更多

街题系列 - 进程和线程的区别

面试的时候,竟然几次都被问到这个问题,其实这种问题稍微百度一下,就有一大堆,大体总结一下吧。不然下次问的时候又是回到的遮遮掩掩的。说不到点子上。 根本区别: 进程是操作系统分配的基本单元,但线程是任务调度和执行的基本单元 开销方面: 每个进程都有自己独立的代码和数据空间(程序上下文),程序直接的切换会有较大的开销。 线程可以看做是轻量级的进程,同一类线程共享代码和数据空间。每个线程都有自己独立运行的栈和线程计数器(PC),线程之前切换开销小 所处环境: 操作系...

阅读更多

源码分析 - ANR 的机制

之前面试的时候,被一位技术总监问到这样一个问题: 如果让你去设计一套 ANR 的机制,你怎么做? 你可以修改 Android 任何源码的。怎么能做到自定义 ANR 的时间,然后在 ANR 发送的时候,弹出相应的对话框提示 ANR 了。 ANR 机制在哪里进行监听? 这一下子就把我问住了,虽然我也想了几种方式,可是还是没说到点子上, 回来就只好查资料,看源码了。原来是通过一个 HandlerThread ,在一个子线程中开启一个 Handler ,然后在主线程开...

阅读更多

街题系列 - 接口和抽象类的区别

面试的时候,竟然几次都被问到这个问题,虽然我也大概知道他们两个的区别,可是还是得全面总结一下。 不同点: 抽象类使用 abstract 关键字修饰;接口使用 interface 修饰。 抽象类中有构造方法(不写会有隐式构造方法),但不能实例化;接口没有构造方法。 抽象类中可以有非抽象方法,接口中一般只有抽象方法。 抽象类中可以有变量;接口中只能是常量 抽象类只能单继承类;接口可以继承多个接口 实现类只能继承一个抽象类;但可以实现多个接口...

阅读更多

Pro Git 笔记

远程仓库 git remote -v 显示对应的克隆地址,如果有多个远程仓库,将会全部列出来 git remote add pb 添加一个远程仓库 , pb 是远程仓库的地址,例如 git@github.com:hoyouly/LearnGit.git git remote show 查看某个远程仓库的详细信息 git remote rename pb paul 修改某个仓库的简短名称,比如把 pb 改为paul git remote rm ...

阅读更多

源码分析 - Glide4 之 概况

–> 概况 Glide 是一个资源从不同形态之间相互转换的框架,而不仅仅是一个图片加载框架。 下图是 Glide 的总体架构。 主要包括一下几个步骤。 资源->model : 把资源(URL, uri , File ,资源 ID , Drawable ,byte[]等)转换成一个 Model 。 Model->Data : 通过 DecodeJob 把 Model 转换成 Data ,例如 URL 进行网络请求得到InputStrea...

阅读更多

从一个小例子理解 Binder 整个流程

之前已经写了一篇关于 Android Binder 总结的文章,但是总感觉还是不太明白,于是就又想了一个感觉还不错的例子再来理解 Binder 流程。 我们来看个例子。 小明同学要打电话的向公安局揭发有人聚众赌博这件事。 然后结合 Android AIDL 总结 中的例子,一起说。 前提条件: 一. 公安局 能处理聚众赌博这件事。 IBookManager 中 有 getBookList() 二. 公安局中有具体人负责聚众赌博这事,比如王队长,专...

阅读更多