我用ida打开classes.dex,显示
CODE:00189570 invoke-virtual {v0, v1, menu}, <void MenuInflater.inflate(int, ref) imp. @ _def_MenuInflater_inflate@VIL>
我不明白行尾的@VIL,它是什么? 完整代码
//MainActivity.java
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
完整的ida View
public boolean ro.rotry.MainActivity.onCreateOptionsMenu(
CODE:00189564 android.view.Menu menu)
CODE:00189564 this = v2
CODE:00189564 menu = v3
CODE:00189564 .prologue_end
CODE:00189564 .line 34
CODE:00189564 invoke-virtual {this}, <ref MainActivity.getMenuInflater() imp. @ _def_MainActivity_getMenuInflater@L>
CODE:0018956A move-result-object v0
CODE:0018956C const/high16 v1, 0x7F0D0000
CODE:00189570 invoke-virtual {v0, v1, menu}, <void MenuInflater.inflate(int, ref) imp. @ _def_MenuInflater_inflate@VIL>
CODE:00189576 .line 35
CODE:00189576 const/4 v0, 1
CODE:00189578
CODE:00189578 locret:
CODE:00189578 return v0
CODE:00189578 Method End
更新
这是我的 [完整的安卓应用程序代码,https://github.com/roroco/try_the_complex/tree/understand-@VIL]
最佳答案
我发现classes.dex中的所有方法都有/@[VIZL]+/
,我觉得很像[罗马数字(https://en.wikipedia.org/wiki/Roman_numerals),我猜@VIL的意思是“在V( 5)I(1)L(50)地址”,在ida函数窗口中,存在@ZL,其中“Z”表示0
关于android - 如何理解 dalvik 字节码中的@VIL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36203155/