题主问的是哪种“用来中转的汇编”?
======================
是这些compiler trampoline么?
https://android.googlesource.com/platform/art/+/master/compiler/trampolines/trampoline_compiler.cc如果是的话,这些是用来做调用约定适配(calling convention adaptation)用的。
ART编译生成的代码所用的调用约定与其要调用的目标的调用约定不一定完全匹配。上面那个http://trampoline_compiler.cc里的代码非常直观的说明了不同约定之间到底适配了什么,例如要通过JNI调用native函数的话就得把JNIEnv*加载到第一个参数的位置上。
======================
还是说是ART的native-bridge的trampoline?这个目前的主要场景是用于支持x86上模拟ARM。
可以现参考这篇文章:
用于Android ART虚拟机JNI调用的NativeBridge介绍这篇文章说NativeBridge的版本号必须是1,而现在最新的代码里其实已经有NativeBridge v2了(
https://android.googlesource.com/platform/art/+/540cc3d)
======================
最后放个通用传送门:
什么是桩代码(Stub)? - RednaxelaFX 的回答