首页
AI Coding
数据标注
NEW
沸点
课程
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
asm
订阅
没错我就是赵大胆
更多收藏集
微信扫码分享
微信
新浪微博
QQ
8篇文章 · 0订阅
Android 自定义插件-- 彻底解决method not found 问题
大家都知道 android在打包的时候 如果一个aar 有不同的版本存在,那么默认总是引用版本号最高的版本。 这个时候就会出现一个问题了: 基础库在迭代升级的时候 很可能要对某些方法进行修改,比如修改方法的返回值 ,修改方法的参数,甚至于要删除方法等等,但是如果你碰到上述的场景…
自定义Gradle插件检测函数耗时
上一篇文章讲解了Gralde的入门知识,其中讲到了如何自定义Gralde插件,本文就通过Asm和Transfrom来自定义一个简单的Gradle插件,这个Gradle插件它可以统计方法的耗时,并当方法的耗时超过阀值时,通过Log打印在控制台上,然后我们通过Log可以定位到耗时方…
手把手教大家用Transform API和ASM实现一个防快速点击案例
0. 前言 在Android Gradle Plugin中,有一个叫Transform API(从1.5.0版本才有的)的东西.利用这个Transform API咱可以在.class文件转换成dex文件之前,对.class文件进行处理.比如监控,埋点之类的. 而对.class文…
和我一起用 ASM 实现编译期字节码织入
这两天摸鱼的时候,突然发现 Jake Wharton 大神写的 Hugo 非常有意思,通过这个库可以实现对方法调用的一些相关数据进行记录。比如它可以通过在方法前加上 DebugLog 注解使得该方法执行时在 Logcat 中打印这个方法的入参、耗时时间、返回值等等。 这个库的设…
一起用Gradle Transform API + ASM完成代码织入呀~
最近的工作内容主要其实并不是说主攻插桩,但是这一次使用Lancet插桩给项目本来带来了极大的收益,这和工程的设计相关,当初的设计就是在对抖音中一个原有组件尽可能小的修改情况下,完成我新功能的接入,方案从SPI --> 主工程Lancet --> Lancet下沉到一个自定义组件…
Gradle Transform + ASM 探索
使用 Gradle Transform + ASM 实现代码插桩的使用已经非常普遍。本文试图探索如何更加快速简洁的利用 Transform 实现代码插桩,并尝试实现 ...... 简单来说就是利用 AGP 提供的 Transform 接口,在应用打包的流程中,对 java/ko…
App流畅度优化:利用字节码插桩实现一个快速排查高耗时方法的工具
我们产线的主流程页面中有几个比较复杂的页面在版本迭代中流畅度频繁出现反复,经常由于开发的不注意导致变卡,主要是对流畅度缺少必要的监控和可持续的优化手段,这个系列是对上半年实践App流畅度监控、优化过程中的一点总结,希望可以给需要的同学一点小参考。 平常我们用来排查Android…
从 Java 字节码到 ASM 实践
1. 概述 AOP 是一种编程思想,但是它的实现方式有很多,比如:Spring、AspectJ、JavaAssist、ASM 等。由于我是做 Android 开发的,所以会用 Android 中的一些例子。 二. Java 字节码 & 虚拟机 从上图中,我们可以看到,.clas…