首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
AOP
订阅
枫y
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
一文应用 AOP | 最全选型考量 + 边剖析经典开源库边实践,美滋滋
本文将详细展示选型种种考量维度,更是砍掉 2 个经典开源库的枝节,取其主干细细体会 AOP 的应用思想和关键流程。一边实践 AOP 一边还能掌握开源库,岂不快哉! 在上文 最全面 AOP 方法探讨 中,我们分析对比了最热门的几种 AOP 方法。那么,在实际情况和业务需求中,我们…
字节码插桩--你也可以轻松掌握
听到关于“插桩”的词语,第一眼觉得会很高深,那到底什么是插桩呢?用通俗的话来讲,插桩就是将一段代码通过某种策略插入到另一段代码,或替换另一段代码。这里的代码可以分为源码和字节码,而我们所说的插桩一般指字节码插桩。 图1是Android开发者常见的一张图,我们编写的源码(.jav…
Java动态追踪技术探究
“Debug一下吧。” “线上机器,没开Debug端口。” “那段代码没打印日志。” “改代码,加日志,重新发布一次。” “怀疑是线程池的问题,重启会破坏现场。” 长达几十秒的沉默之后:“据说,排查问题的最高境界,就是只通过Review代码来发现问题。” 比几十秒长几十倍的沉默…
告别.xml文件,用AOP方式实现shape,selector
用AOP方式实现shape,selector
滴滴开源 DroidAssist : 轻量级 Android 字节码编辑插件
▍前言 近日,滴滴发布的开源项目 DroidAssist ,提供了一种简单易用、无侵入、配置化、轻量级的 Java 字节码操作方式,只需要在 XML 配置中添加简单的 Java 代码即可实现编译期对 Class 文件的动态修改。 DroidAssist 和其他 AOP 方案不同…
Gradle 插件与ASM入门
需要了解一点gradle知识,一点groovy语言,简单的ASM知识,这个插件的功能只是用ASM在编译期间插入代码,做简单的方法执行时间统计。 我们这次要干的就是在.class文件转为Dex之前做代码插入,来达到编译时插入代码。 注:这里面懒的去找asm的依赖,就直接用的and…
ASM简单入门笔记
1. 前言 2. 介绍 3. 前期准备
Android编译期插桩,让程序自己写代码(一)
近些年,编译期插桩技术在Android圈越来越普遍。无论是可以生成JAVA源码的ButterKnief、Dagger,还是操作字节码的VirtualAPK,甚至是新兴的语言Kotlin都用到了编译期插桩技术。学习这门技术对我们理解这些框架的原理十分有帮助。另外,我们通过这种技术…
可代替 ASM,使用 AnnotationProcessor 做代码插桩
1. 前言 说到代码插桩,你可能会想到 AspectJ、Transfrom Api + ASM 等等。 代码插桩的用处自不必说,可以做埋点、热修复、组件化路由等等。 然而,AspectJ感觉不好用,ASM 比较复杂,需要自定义 gradle 插件。好在前段时间,我遇到了新的方法…
Android 字节码插桩
我们都知道JAVA是面向对象(继承、封装、多态),而插桩的意义在于面向切面(AOP),可想而知单方面的面向对象开发有许多的局限性,而结合面向切面编程可以说补足了我们的这种局限性。举个例子:在onClick中一般都要做防抖动操作,这样是为了避免多次打开页面的问题。一般实现的话是在…