Android 开发高手课
张绍文
前微信高级工程师,Tinker 负责人
52202 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 62 讲
导读 (1讲)
模块一 高质量开发 (25讲)
Android 开发高手课
15
15
1.0x
00:00/00:00
登录|注册

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

你好,我是孙鹏飞。
在专栏卡顿优化的分析中,绍文提到可以利用 JVM TI 机制获得更加非常丰富的顿现场信息,包括内存申请、线程创建、类加载、GC 信息等。
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
立即购买
登录 后留言

全部留言(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下,用到了来学😂
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部