没有合适的资源?快使用搜索试试~ 我知道了~
深入理解java虚拟机第二版源码-MethodHook:钩子java方法
共40个文件
xml:11个
png:10个
java:5个
需积分: 30 0 下载量 136 浏览量
2021-06-07
01:31:23
上传
评论
收藏 140KB ZIP 举报
温馨提示
深入理解java虚拟机 第二版 源码 原文链接: 引言 目前国内大厂均开源了自己的 Android 热修复框架,阿里的《深入探索 Android 热修复技术原理》全面介绍了热修复技术的现状,原理与展望。一方面是阿里系为代表的底层方法替换,另一方面是以腾讯系为代表的类加载方案。前者支持立即生效,但是限制比较多;后者必须冷启动生效,相对较稳定,修复范围广。之前分析过微信的热修复框架 Tinker 即属于后者, 。本篇文章主要分析以 AndFix 为代表的底层方法替换方案,并且实现了《深入探索 Android 热修复技术原理》中提到的方法替换新方案。 方法替换是 AndFix 的热修复方案的关键,虚拟机在加载一个类的时候会将类中方法解析成 ArtMethod 结构体,结构体中保存着一些运行时的必要信息以及需要执行的指令指针地址。那么我们只要在 native 层将原方法的 ArtMethod 结构体替换成新方法的结构体,那么执行原方法的时候便会执行到新方法的指令,完成了方法替换。 Andfix 中的关键代码如下: public static void addReplaceMethod(Meth
资源推荐
资源详情
资源评论
收起资源包目录
MethodHook-master.zip (40个子文件)
MethodHook-master
.gitignore 761B
gradle
wrapper
gradle-wrapper.jar 52KB
gradle-wrapper.properties 230B
README.md 12KB
build.gradle 498B
gradlew.bat 2KB
gradlew 5KB
app
CMakeLists.txt 2KB
.gitignore 7B
build.gradle 1KB
proguard-rules.pro 929B
src
test
java
me
pqpo
methodhook
ExampleUnitTest.java 396B
main
AndroidManifest.xml 734B
java
me
pqpo
methodhook
MethodHook.java 1KB
HookManager.java 2KB
MainActivity.java 2KB
cpp
method-hook-lib.cpp 2KB
res
values
styles.xml 383B
colors.xml 208B
strings.xml 73B
mipmap-xxhdpi
ic_launcher_round.png 10KB
ic_launcher.png 8KB
layout
activity_main.xml 744B
mipmap-xhdpi
ic_launcher_round.png 6KB
ic_launcher.png 5KB
mipmap-hdpi
ic_launcher_round.png 4KB
ic_launcher.png 3KB
mipmap-mdpi
ic_launcher_round.png 2KB
ic_launcher.png 2KB
mipmap-xxxhdpi
ic_launcher_round.png 14KB
ic_launcher.png 10KB
androidTest
java
me
pqpo
methodhook
ExampleInstrumentedTest.java 743B
gradle.properties 851B
.idea
runConfigurations.xml 564B
misc.xml 2KB
modules.xml 357B
copyright
profiles_settings.xml 74B
compiler.xml 686B
gradle.xml 626B
settings.gradle 15B
共 40 条
- 1
资源评论
weixin_38529436
- 粉丝: 3
- 资源: 998
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功