获得徽章 9
- EaseLint-Android 适配了 7.4.2,核心代码终于撸完了 。以巧妙的下刀角度,轻轻的Hook一下,无反射完成自定义扫描。几乎是通读了整个Lint扫描的源码,无非是4个下刀的地方,这个专门搞篇博客来细说吧。代码在这里:
github.com,分支:dev_7.0_lintOptions
这次从7.0里偷学了一手 基于JVM 共享变量,来完成跨ClassLoader的变量共享,这比反射简直方便太多啦,代码完全透明,非常易读,源码还没细看,但势必要搞办它!
这等于是立了要连续写两篇博客的Flag了,也确实很想写。展开赞过评论2 - 3行代码 完成 无反射 Hook AGP 7.0+ 完成 增量Lint
project.gradle.taskGraph.whenReady {
// after afterEvaluate
val task = project.tasks.getByName("lintAnalyzeDebug") as AndroidLintAnalysisTask
LintHook.loadHookFile(task.lintTool, project)
}
中间写了超400行代码,最后只需80行,这次主打就一个:心态要稳。一共尝试三四个方向,最后走通的只有2个。展开评论点赞
![[奋斗]](http://lf-web-assets.juejin.cn/obj/juejin-web/xitu_juejin_web/img/jj_emoji_29.2801857.png)
很多时候都是被困难吓倒的,每当你爬过一座山,你都会觉得“有点困难,不过也没啥”肝一篇《JVM共享变量 技术》