首页
AI Coding
NEW
沸点
课程
直播
活动
AI刷题
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
会员
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
插桩
订阅
萌娃瑜宝爸比
更多收藏集
微信扫码分享
微信
新浪微博
QQ
9篇文章 · 0订阅
字节码插桩(三): ASM 字节码插桩
在 Android 中,你可能经常听某位中台大佬说 无痕埋点 , Hook ,apm监控,编译器动态修改代码等名词,小伙伴通常都知道 AspectJ 可以通过切面织入相关代码,但殊不知 就连小小的 Lambada 语法在自定义 Plugin 都无法实现。 更何况其他兼容问题,有…
ASM 实战统计方法耗时
实际业务开发中有很多需要不改变原业务代码,而需额外增加一些包括各种统计的需求,如 APM、无数据埋点等,也就是耳熟能详的 AOP,本文以统计方法耗时为例,不使用 Aspectj,采用原生态的方式进行实践。
Android ASM流程全打通
首先需要熟悉APK打包流程,字节码知识,Gradle,才有可能把下面的内容看懂。 学习ASM没有什么技巧,就是看API,使用一些插件方便查看字节码,多练习,然后你才能入门,最后达到精通。 Tree API将class的结构读取到内存,构建一个树形结构,然后需要处理Method、…
Android ASM框架详解
在上篇文章中,我们以AspectJ为引子介绍了AOP及其设计思想,传送门Android AspectJ详解,我们用AspectJ可以方便的实现一些简单的代码织入,而不需要关心底层字节码的实现,而ASM则偏向底层一些,ASM提供的API完全是面向Java字节码编程,如果你对Jav…
Gradle 插件 + ASM 实战 - 监控图片加载告警
gradle 插件 + asm 字节码基础讲完了,我们就要开始实战环节了,这次我们来做一个图片加载监控,本文虽然只讲一个实例,但是很多场景以及很多开源框架都会用到 Gradle 插件 + ASM 技术,比如像方法耗时监控、代码覆盖率统计、自动埋点等等,因此大家一定要熟练掌握这套…
Android Transform + ASM 初探
随着项目中对 APM (Application Performance Management) 越来越关注,诸如像 Debug 日志,运行耗时监控等都会陆陆续续加入到源码中,随着功能的增多,这些监控日志代码在某种程度上会影响甚至是干扰业务代码的阅读,笔者于是查阅有没有一些可以自…
手把手教大家用Transform API和ASM实现一个防快速点击案例
0. 前言 在Android Gradle Plugin中,有一个叫Transform API(从1.5.0版本才有的)的东西.利用这个Transform API咱可以在.class文件转换成dex文件之前,对.class文件进行处理.比如监控,埋点之类的. 而对.class文…
一起用Gradle Transform API + ASM完成代码织入呀~
最近的工作内容主要其实并不是说主攻插桩,但是这一次使用Lancet插桩给项目本来带来了极大的收益,这和工程的设计相关,当初的设计就是在对抖音中一个原有组件尽可能小的修改情况下,完成我新功能的接入,方案从SPI --> 主工程Lancet --> Lancet下沉到一个自定义组件…
AOP 利器 ASM 基础入门
1. ASM 介绍 ASM 是一个 Java 字节码操作框架,它能用来动态生成类或者增强既有类的功能。ASM 可以直接生成二进制 class 文件,也可以在类被加载到 Java 虚拟机之前动态改变类行为。ASM 框架中提供了常见的字节码分析和生成工具,可以快速进行类的生成或分析…