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

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

JVM TI字节码增强
JVM TI事件监控
初始化操作
Agent_OnAttach方法
使用C/C++语言开发
Native方法绑定
监控内存分配
监控GC事件与时间
方法执行、退出、字段访问、字段修改
断点
步进事件
监控异常信息
监控类加载
监控线程创建堆栈、锁信息
获奖用户
学习加油礼包
源码是最好的资料
JVM TI官方文档
总结
JVM TI Agent开发
其他
对象事件
GC
方法执行
调试相关
异常事件
类加载准备事件
线程相关事件
实现调试、监控、线程分析、覆盖率分析工具等
控制JVM的某些行为
监控JVM内部事件的执行
开发虚拟机监控工具使用的编程接口
福利彩蛋
相关资料
JVM TI实现原理
JVM TI支持的功能
JVM TI介绍
Android JVM TI机制详解

该思维导图由 AI 生成,仅供参考

你好,我是孙鹏飞。
在专栏卡顿优化的分析中,绍文提到可以利用 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 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
立即购买
登录 后留言

全部留言(7)

  • 最新
  • 精选
  • 功夫熊猫
    方法执行这段里的FileAccess 这个是不是写错了,应该是FieldAccess https://docs.oracle.com/javase/7/docs/platform/jvmti/jvmti.html#FieldAccess

    作者回复: 这里写错了,应该是FieldAccess

    2018-12-26
    2
  • 程序员小跃
    完了,第一次听说这个JVM TI 很认真的看了,还是有点不大明白,需要更好的消化下

    作者回复: JVMTI这个机制很重要,后面Android很多工具都会使用到它

    2019-03-13
    2
  • bonan
    今天看到Matrix 开源了,老师有计划介绍一下嘛?
    2018-12-25
    8
  • 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
收起评论
显示
设置
留言
7
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部