首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
插桩
订阅
舒大飞
更多收藏集
微信扫码分享
微信
新浪微博
QQ
13篇文章 · 0订阅
AOP 利器 ASM 基础入门
1. ASM 介绍 ASM 是一个 Java 字节码操作框架,它能用来动态生成类或者增强既有类的功能。ASM 可以直接生成二进制 class 文件,也可以在类被加载到 Java 虚拟机之前动态改变类行为。ASM 框架中提供了常见的字节码分析和生成工具,可以快速进行类的生成或分析…
牛逼的Transform Plus | Transform进阶教程
之前写过一篇文章介绍了下关于Transform增量如何编写。这次我想展开说些别的。 先抛出几个奇奇怪怪的问题。 如果要写R文件内联的情况下,各位大佬会咋操作,可能会碰到什么问题? 如果Trans
字节码插件平台 ByteX 源码解析|技术点评
写这篇文章的目的有三个原因,首先在 ByteX 的交流群里有同学反馈源码不易阅读,看起来比较费力,所以希望通过自己的理解和梳理能够帮助大家学习 ByteX 的源码。其次,有同学在阅读我的博客 AOP 利器 ASM 基础入门 之后反馈,不知道如何在工作中发现 ASM 的使用场景,…
可代替 ASM,使用 AnnotationProcessor 做代码插桩
1. 前言 说到代码插桩,你可能会想到 AspectJ、Transfrom Api + ASM 等等。 代码插桩的用处自不必说,可以做埋点、热修复、组件化路由等等。 然而,AspectJ感觉不好用,ASM 比较复杂,需要自定义 gradle 插件。好在前段时间,我遇到了新的方法…
AOP 最后一块拼图 | AST 抽象语法树 —— 最轻量级的AOP方法
Aspect 语法难懂?ASM 字节码操作繁琐?APT 难以精准找到切入点?你该试试 AST 了!编辑器级别,效率高,更轻量。 这就是抽象语法树 AST。AST(abstract syntax tree)即抽象语法树,是源代码的抽象语法结构的树状表现形式,每一个节点代表一个语法…
滴滴开源 DroidAssist : 轻量级 Android 字节码编辑插件
▍前言 近日,滴滴发布的开源项目 DroidAssist ,提供了一种简单易用、无侵入、配置化、轻量级的 Java 字节码操作方式,只需要在 XML 配置中添加简单的 Java 代码即可实现编译期对 Class 文件的动态修改。 DroidAssist 和其他 AOP 方案不同…
字节码插桩--你也可以轻松掌握
听到关于“插桩”的词语,第一眼觉得会很高深,那到底什么是插桩呢?用通俗的话来讲,插桩就是将一段代码通过某种策略插入到另一段代码,或替换另一段代码。这里的代码可以分为源码和字节码,而我们所说的插桩一般指字节码插桩。 图1是Android开发者常见的一张图,我们编写的源码(.jav…
一次 Android 字节码插桩实战
利用 Android 字节码插桩技术可以很方便地帮助我们实现很多手术刀式的代码设计,如无埋点统计上报、轻量级 AOP 等。本文通过一次实战,把这门技术真正用起来。
会用就行了?你知道 AOP 框架的原理吗?
本文将从另一个角度讲解 AOP,从宏观的实现原理和设计本质入手。大部分讲 AOP 的博文都是一上来就罗列语法,然后敲个应用 demo就完了 。但学习不能知其然,不知其所以然。 敲一个小 Demo 来引入主题,假设我想不依赖任何 AOP 方法,在特定方法的执行前后加上日志打印。 …
Android 字节码插桩
我们都知道JAVA是面向对象(继承、封装、多态),而插桩的意义在于面向切面(AOP),可想而知单方面的面向对象开发有许多的局限性,而结合面向切面编程可以说补足了我们的这种局限性。举个例子:在onClick中一般都要做防抖动操作,这样是为了避免多次打开页面的问题。一般实现的话是在…