Android JVM TI机制详解(内含福利彩蛋)
孙鹏飞
![](https://static001.geekbang.org/resource/image/1b/54/1b80c61edfc52448ff9db3e51d85dc54.jpg)
该思维导图由 AI 生成,仅供参考
你好,我是孙鹏飞。
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
- 深入了解
- 翻译
- 解释
- 总结
![](https://static001.geekbang.org/resource/image/d0/e4/d0880927e2a522a038be2d04bf19dfe4.png)
本文深入介绍了Android JVM TI机制,该机制是一种用于监控JVM内部事件执行并控制JVM行为的编程接口。文章详细介绍了JVM TI的功能,包括监控线程、类加载、异常、调试、方法执行、GC、对象事件等多个方面,并指出了其在性能监控、数据采集、行为修改等方面的应用。作者还解释了JVM TI的实现原理,以VmObjectAlloc事件为例,详细阐述了JVM TI Agent的启动和事件监听的实现过程。此外,文章提到了一些使用了JVM TI技术的工具,如Android Studio的Profilo工具和Linkedin的工具,展示了JVM TI的强大功能和实际应用。整体而言,本文通过深入浅出的方式,全面介绍了Android JVM TI机制的原理和功能,对于想要深入了解该技术的读者具有很高的参考价值。文章还指出了JVM TI的未来发展趋势,认为它将成为本地自动化测试和线上远程诊断的重要工具。文章结尾还提到了一些相关资料和福利彩蛋,鼓励读者参与学习和讨论。
仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《Android 开发高手课》,新⼈⾸单¥59
《Android 开发高手课》,新⼈⾸单¥59
立即购买
© 版权归极客邦科技所有,未经许可不得传播售卖。 页面已增加防盗追踪,如有侵权极客邦将依法追究其法律责任。
登录 后留言
全部留言(7)
- 最新
- 精选
- 功夫熊猫方法执行这段里的FileAccess 这个是不是写错了,应该是FieldAccess https://docs.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#FieldAccess
作者回复: 这里写错了,应该是FieldAccess
2018-12-262 - 程序员小跃完了,第一次听说这个JVM TI 很认真的看了,还是有点不大明白,需要更好的消化下
作者回复: JVMTI这个机制很重要,后面Android很多工具都会使用到它
2019-03-132 - bonan今天看到Matrix 开源了,老师有计划介绍一下嘛?2018-12-258
- GEEK_jahen运行Sample还是有闪退现象2022-10-26归属地:中国香港
- 珞小飞dexmaker貌似只能生成字节码,没办法修改已有字节码?2020-06-01
- hbl刚才看到Android 8.0 以后可以使用 apply change 这个功能通过 Android Studio 3.5 能够实现代码的动态加载,并且不需要重启,稍微了解了下原理,发现正是使用 JVM TI 的方式实现的2019-08-15
- Eric 老乌龟确实不太了解这块,先Mark下,用到了来学😂2019-01-08
收起评论