android - 如何理解 dalvik 字节码中的@VIL

标签 android dalvik ida

我用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/

相关文章:

android - 如何更新本地 aar 包源

android - 究竟是什么导致 Android 出现 'spin on suspend' 错误?

android - Android 是否计划支持 Java7?

WinDBG-如何设置所有要传递到应用程序的异常?

graph - IDA Pro 5.0 - 图形太大,超过 1000 个节点)无法显示在屏幕上

assembly - 汇编器: Calculating a memory address with register base

android - 如何在不使用中间服务器的情况下使 android 点对点?

Java应用程序设计问题

android - 微调器中的默认文本填充是什么

java - 在java中打印logback日志或stacktrace中的对象ID