небольшая структура методов и классов

Недавно я копался в небольшом коде и хотел бы изучить его. Я проверил ссылку на байт-код dalvik, но не смог найти ссылку на структуру относительно того, когда и как их использовать.

.locals
.local
.registers
.prologue
.line
.annotation
.parameter

Знаете ли вы другие ресурсы, чтобы объяснить больше о структуре smali?


person Aivan Monceller    schedule 03.09.2013    source источник


Ответы (1)


Большинство из них, за исключением .locals, .registers и .annotation, являются частью отладочной информации, которая хранится как часть метода. Дополнительную информацию об этом можно найти в разделе debug_info_item в dex-format документ.

Для директив .locals и .registers это два разных способа указать количество регистров, доступных в методе (т. android.com/tech/dalvik/dex-format.html" rel="nofollow">dex-format). Дополнительную информацию о различиях между ними можно найти на вики-странице регистров на сайте smali. сайт гуглкод.

И, наконец, директива .annotation определяет аннотацию. Дополнительную информацию можно найти в документе dex-format. В частности, вам следует обратить внимание на следующие элементы:

  • annotations_directory_item: содержит ссылки на все аннотации классов, методов, полей и параметров для класса.
  • annotation_set_ref_list: содержит ссылки на аннотации, связанные с параметрами метода.
  • annotation_set_item: содержит список аннотаций, которые могут быть связаны с методом, полем или классом.
  • encoded_annotation: сохраняет одну аннотацию
person JesusFreke    schedule 03.09.2013
comment
Привет Бен, спасибо! Я знал, что ты будешь первым, кто ответит на эти вопросы. Я надеюсь, что вы сможете ответить на вопросы, поскольку я продолжаю публиковать их здесь. - person Aivan Monceller; 03.09.2013