smali结构的方法和类

时间:2013-09-03 04:52:44

标签: java android dalvik dex smali

我最近挖了一些小代码,很想学习它。我检查了dalvik字节码参考,但我找不到关于何时/如何使用这些

的结构参考
.locals
.local
.registers
.prologue
.line
.annotation
.parameter

你知道其他资源来解释更多的smali结构吗?

1 个答案:

答案 0 :(得分:3)

除了.locals,.registers和.annotation之外,其中大多数都是作为方法的一部分存储的调试信息的一部分。您可以在dex-format文档的debug_info_item部分中找到有关这些内容的更多信息。

对于.locals和.registers指令,这两种方法可以指定方法中可用的寄存器数量(即code_item的registers_size字段,根据dex-format文档)。您可以在smali googlecode网站上的Registers wiki page上找到有关两者之间差异的更多信息。

最后,.annotation指令定义了一个注释。您可以在dex-format文档中找到更多信息。具体来说,您需要查看以下内容:

  • annotations_directory_item:包含对类的所有类,方法,字段和参数注释的引用
  • annotation_set_ref_list:包含对与方法参数关联的注释的引用
  • annotation_set_item:包含可与方法,字段或类关联的注释列表
  • encoded_annotation:存储单个注释