首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
AOP 插桩
订阅
juejingtest
更多收藏集
微信扫码分享
微信
新浪微博
QQ
12篇文章 · 0订阅
gradle插件、注解、javapoet和java asm库实战
首先来介绍一下实战项目的所解决的问题 : 当一个Android工程中如果已经使用不同的module来做业务隔离。那我们就可能有这种需求,module1想实例化一个module2的类,一般要怎么解决呢? module1依赖module2 把module2的这个类沉到底层库,然后m…
ASM 实战统计方法耗时
实际业务开发中有很多需要不改变原业务代码,而需额外增加一些包括各种统计的需求,如 APM、无数据埋点等,也就是耳熟能详的 AOP,本文以统计方法耗时为例,不使用 Aspectj,采用原生态的方式进行实践。
【Android】函数插桩(Gradle + ASM)
第一次看到插桩,是在Android开发高手课中。看完去查了一下:“咦!还有这东西,有点意思”。 本着不断学习和探索的精神,便走上学习函数插桩的“不归路”。 插桩:目标程序代码中某些位置插入或修改成一些代码,从而在目标程序运行过程中获取某些程序状态并加以分析。简单来说就是在代码中…
教你用Java字节码做点有趣的事(二)之ASM
本篇是本系列的第二篇,主要介绍什么是ASM,以及如何使用ASM。 如果没有阅读之前的教你用Java字节码做点有趣的事,还请阅读一下,因为需要上一章的部分需求。 在上节我们知道,通过javac编译生成之后生成的是字节码,但是我们可能会有一些需求,比如需要AOP切面,事务的统一管理…
通过Gradle的Transform配合ASM实战路由框架和统计方法耗时
首先,现在世面上的项目基本上都是N多个module并行开发很容易就会出现moduleA想跳转到moduleB某一个界面去如果你没有把moduleB在对应的build.gradle中配置的话,AS就会友
可代替 ASM,使用 AnnotationProcessor 做代码插桩
1. 前言 说到代码插桩,你可能会想到 AspectJ、Transfrom Api + ASM 等等。 代码插桩的用处自不必说,可以做埋点、热修复、组件化路由等等。 然而,AspectJ感觉不好用,ASM 比较复杂,需要自定义 gradle 插件。好在前段时间,我遇到了新的方法…
从 Java 字节码到 ASM 实践
1. 概述 AOP 是一种编程思想,但是它的实现方式有很多,比如:Spring、AspectJ、JavaAssist、ASM 等。由于我是做 Android 开发的,所以会用 Android 中的一些例子。 二. Java 字节码 & 虚拟机 从上图中,我们可以看到,.clas…
fat-aar原理分析
我们发布aar时,会带有一个aarName-x.x.x.pom文件(aarName是aar的名字,x.x.x是版本号),这个pom文件里面定义了我们aar内部依赖的aar,外部project依赖该aar会在编译时去下载其内部依赖的aar;对外发布的aar中如果有依赖内网mave…
Java 代理模式与 AOP
本文首发于 https://jaychen.cc 作者 jaychen 最近在学 Spring,研究了下 AOP 和代理模式,写点心得和大家分享下。 AOP 先说下AOP,AOP 全称 Aspect Oriented Programming,面向切面编程,和 OOP 一样也是一…