JIM'BLog

Thinking will not overcome fear but action will.

你真的看懂android事件分发了吗

引子 Android事件分发其实是老生常谈了,但是说实话,我觉得很多人都只是懂其大概,模棱两可。不信我可以先抛出几个问题: ACTION_DOWN和其他触摸事件的处理方式一样吗?如果不,有什么不同之处? 为什么如果所有子View都不消费ACTION_DOWN事件,后续的MOVE和UP事件就被拦截了? 子View能干预父View对ACTION_DOWN事件的拦截吗? 如果...

一张图理解rxjava原理

前言 Rxjava是NetFlix出品的Java框架, 官方描述为 a library for composing asynchronous and event-based programs using observable sequences for the Java VM,翻译过来就是“使用可观察序列组成的一个异步地、基于事件的响应式编程框架”。一个典型的使用示范如下: ...

Arouter核心思路浅析

Arouter核心源码和思路详解 前言 阅读本文之前,建议读者: 对Arouter的使用有一定的了解。 对Apt技术有所了解。 Arouter是一款Alibaba出品的优秀的路由框架,本文不对其进行全面的分析,只对其最重要的功能进行源码以及思路分析,至于其拦截器,降级,ioc等功能感兴趣的同学请自行阅读源码,强烈推荐阅读云栖社区的官方介绍。 对于一个框架的学习和讲解,我...

Gradle插件helloworld

Gradle插件Hello world实践 前言 Gradle是一个很强大的构建工具,掌握Gradle也是安卓开发人员走向高级的一项必备技能,当然,完全了解它需要花费不少功夫。在看本文之前,最好先去了解一下Gradle的一些基本概念,比如Project,Task,Gradle的生命周期等概念,了解了这些,我们就可以尝试编写gradle插件了,gradle插件可以说是gradle十分灵活强...

Leakcanary

LeakCanary原理浅析 LeakCanary是Android内存泄漏的框架,作为一个“面试常见问题”,它一定有值得学习的地方,今天我们就讲一下它。作为一名开发,我觉得给人讲框架或者库的原理,最好先把大概思路给读者讲一下,这样读者后面会按照这个框架往里填内容,理解起来也更容易一些,所以我先把LeakCanary的大致原理放出来: 其思路大致为:监听Activity生命周期->on...

白话https加密机制

在讲主题之前,我们先来区分两个概念:签名和加密有什么区别? 我们从字面意思看: 签名就是一个人对文件签署自己的名字,证明这个文件是我写的或者我认可的,所以只要别人看到我的签名,认识我字迹的人就知道这个文件确实是可以信任的,如果文件没有我的签名,或者签名不对,说明文件可能被改动了,是个假的,不可信。在网络安全中,签名的意义是防止文件篡改,只有签名正确的文件才可信。 ...

从activity启动流程看binder

简述 Activity启动流程和Binder的文章很多,但对于AMS如何“指挥”客户端的细节讲的都不太清楚,本文会着重讲这块。Activity的启动流程虽然调用比较复杂,主要复杂在Activity栈管理等细节方面,本文不去细究ActivityStack和ActivitySupervisor的调用流程,仅仅从AMS(ActivityManagerService简称)和App跨进程角度去理解二者...