Kotlin和Jetpack Compose环境为字节码插桩带来了额外的复杂性,需要特别关注三个方面。内联函数(inline):inline函数体在编译期被直接复制到调用处,可能改变最终方法布局与调用栈,因此插桩目标应是其内部调用的非内联方法而非inline函数本身。Jetpack Compose点击事件:Compose通常通过Modifier.clickable实现点击,与传统View的OnClickListener完全不同,需要在Compose Runtime层或特定包装函数处插桩,或在UI Toolkit层提供可选的轻量扩展。Lambda表达式的实现差异:Lambda的字节码实现方式不唯一,为兼容低版本Android编译器可能将其脱糖(Desugar)为匿名内部类而非invokedynamic实现,两种模式生成的方法签名完全不同,插桩方案必须兼容这两种情况以防因签名不匹配而失效。




