首页
沸点
课程
数据标注
HOT
AI Coding
更多
直播
活动
APP
插件
直播
活动
APP
插件
搜索历史
清空
创作者中心
写文章
发沸点
写笔记
写代码
草稿箱
创作灵感
查看更多
登录
注册
确定删除此收藏集吗
删除后此收藏集将被移除
取消
确定删除
确定删除此文章吗
删除后此文章将被从当前收藏集中移除
取消
确定删除
编辑收藏集
名称:
描述:
0
/100
公开
当其他人关注此收藏集后不可再更改为隐私
隐私
仅自己可见此收藏集
取消
确定
asm
订阅
lizhifengsky
更多收藏集
微信扫码分享
微信
新浪微博
QQ
10篇文章 · 0订阅
Android ASM 字节码插桩库,也许有你需要的
在最近的一年多时间里,我先后写过六篇关于 Android 字节码插桩的文章,一共对应四个功能点 ASM 字节码插桩:实现双击防抖 ASM 字节码插桩:进行线程整治 ASM 字节码插桩:
插桩之美
插桩 插桩是什么?你在开发中有用过插桩的技术吗? 所谓的插桩就是在代码编译期间修改已有的代码或者生成新代码。 插桩具体在编译的哪个流程介入呢? 插桩的作用与场景 代码生成 代码监控 代码修改 代码分析
Android 无所不能的 hook,让应用不再崩溃
之前推送了很多大厂分享,很多同学看完就觉得,大厂输出的理论知识居多,缺乏实践。 那这篇文章,我们将介绍一个大厂的库,这个库能够实打实的帮助大家解决一些问题。 今天的主角:初学者小张,资深研发老羊。 三
Android 进阶之路:ASM 修改字节码,这样学就对了!
恢复双休了,准备捡起来写博客这件事,会尝试写好每一篇博客,准备写一个「进阶之路」的系列,希望对你有用。 没错,看了很多 ASM 入门的文章,都感觉文章写的很轻松,站立的高度都太高了,我个人觉得想要能够
ViewModel源码研究之聊聊onSaveInstanceState和onRetainNonConfigurationInstance的区别
1. 前言 最近在研究ViewModel实现原理。ViewModel有两个特性。 当配置发生改变时(例如:旋转屏幕),重新创建的Activity能够通过ViewModel将数据还原回来, 当按返回键或
今日头条 Android '秒' 级编译速度优化
Android 项目一般使用 gradle 作为构建打包工具,而其执行速度慢也一直为人所诟病,对于今日头条 Android 项目这种千万行级别的大型工程来说,全量编译一次的时间可能高达六七分钟,在某些需要快速验证功能的场景,改动一行代码的增量编译甚至也需要等两三分钟,这般龟速严…
Gradle Transform + ASM 探索
使用 Gradle Transform + ASM 实现代码插桩的使用已经非常普遍。本文试图探索如何更加快速简洁的利用 Transform 实现代码插桩,并尝试实现 ...... 简单来说就是利用 AGP 提供的 Transform 接口,在应用打包的流程中,对 java/ko…
Android ASM框架详解
在上篇文章中,我们以AspectJ为引子介绍了AOP及其设计思想,传送门Android AspectJ详解,我们用AspectJ可以方便的实现一些简单的代码织入,而不需要关心底层字节码的实现,而ASM则偏向底层一些,ASM提供的API完全是面向Java字节码编程,如果你对Jav…
【Android】函数插桩(Gradle + ASM)
第一次看到插桩,是在Android开发高手课中。看完去查了一下:“咦!还有这东西,有点意思”。 本着不断学习和探索的精神,便走上学习函数插桩的“不归路”。 插桩:目标程序代码中某些位置插入或修改成一些代码,从而在目标程序运行过程中获取某些程序状态并加以分析。简单来说就是在代码中…
和我一起用 ASM 实现编译期字节码织入
这两天摸鱼的时候,突然发现 Jake Wharton 大神写的 Hugo 非常有意思,通过这个库可以实现对方法调用的一些相关数据进行记录。比如它可以通过在方法前加上 DebugLog 注解使得该方法执行时在 Logcat 中打印这个方法的入参、耗时时间、返回值等等。 这个库的设…