![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
项目实战
_ext
热爱编程。
展开
-
自定义gradle插件入门
Android GradleAndroid项目使用 Gradle 作为构建框架,Gradle 又是以Groovy为脚本语言。所以学习Gradle之前需要先熟悉Groovy脚本语言。Groovy是基于Java语言的脚本语言,所以它的语法和Java非常相似,但是具有比java更好的灵活性。下面就列举一些和Java的主要区别。Android Gradle 的 Project 和 Tas...原创 2018-09-01 22:39:25 · 1647 阅读 · 0 评论 -
自定义gradle插件进阶
上次写过自定义gradle插件入门的博客, 介绍了最基本的gradle构建和简单的自定义gradle, 运用生命周期函数、task依赖和扩展配置等。在上篇博客的基础上, 这篇博客继续研究下自定义gradle插件。动态编译技术在开源框架中的应用非常的广泛,现在市面上的插件化框架,热修复框架几乎都使用了动态编译技术,原理几乎都是在编译期间动态的在class文件中注入或者修改代码。AOP技术应...原创 2019-06-24 10:19:44 · 2109 阅读 · 0 评论 -
hook系统类方法的技术调研
需求背景前段时间组长让我调研一下一个技术需求, 需要在项目中每个调用Log.x(TAG, msg);的地方判断msg中是否有指定的字段来替换为我们自定义的方法来实现日志上报。需求调研首先想到了hook技术,Hook 又叫“钩子”,它可以在事件传送的过程中截获并监控事件的传输,将自身的代码与系统方法进行融入。这样当这些方法被调用时,也就可以执行我们自己的代码,这也是面...原创 2019-07-24 07:23:11 · 468 阅读 · 0 评论 -
glide流程梳理
glide现在已经4.x了, 就以该版本的源码进行分析了.glide优势通过Fragment来监听页面生命周期来控制图片的加载与取消; 使用@GlideModel的方式可动态注册、替换图片加载器; glide初始化时注册加载器、转码器、编码器等; Target通过ViewTreeObserver来监听控件的宽高提供给BitmapFactory.decodeStream()来解码原...原创 2019-08-19 21:24:24 · 361 阅读 · 0 评论