Android JVM TI机制详解(内含福利彩蛋)
孙鹏飞

你好,我是孙鹏飞。
JVM TI 机制究竟是什么?它为什么如此的强大?怎么样将它应用到我们的工作中?今天我们一起来解开它神秘的面纱。
JVM TI 介绍
JVM TI 全名是Java Virtual Machine Tool Interface,是开发虚拟机监控工具使用的编程接口,它可以监控 JVM 内部事件的执行,也可以控制 JVM 的某些行为,可以实现调试、监控、线程分析、覆盖率分析工具等。
JVM TI 属于Java Platform Debugger Architecture中的一员,在 Debugger Architecture 上 JVM TI 可以算作一个 back-end,通过 JDWP 和 front-end JDI 去做交互。需要注意的是,Android 内的 JDWP 并不是基于 JVM TI 开发的。
从 Java SE 5 开始,Java 平台调试体系就使用 JVM TI 替代了之前的 JVMPI 和 JVMDI。如果你对这部分背景还不熟悉,强烈推荐先阅读下面这几篇文章:
公开
同步至部落
取消
完成
0/2000
笔记
复制
AI
- 深入了解
- 翻译
- 解释
- 总结
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Android 开发高手课》,新⼈⾸单¥59
《Android 开发高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(7)
- 最新
- 精选
- 功夫熊猫方法执行这段里的FileAccess 这个是不是写错了,应该是FieldAccess https://docs.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#FieldAccess
作者回复: 这里写错了,应该是FieldAccess
2 - 程序员小跃完了,第一次听说这个JVM TI 很认真的看了,还是有点不大明白,需要更好的消化下
作者回复: JVMTI这个机制很重要,后面Android很多工具都会使用到它
2 - bonan今天看到Matrix 开源了,老师有计划介绍一下嘛?8
- GEEK_jahen运行Sample还是有闪退现象归属地:中国香港
- 珞小飞dexmaker貌似只能生成字节码,没办法修改已有字节码?
- hbl刚才看到Android 8.0 以后可以使用 apply change 这个功能通过 Android Studio 3.5 能够实现代码的动态加载,并且不需要重启,稍微了解了下原理,发现正是使用 JVM TI 的方式实现的
- Eric 老乌龟确实不太了解这块,先Mark下,用到了来学😂
收起评论