5

私は最近、いくつかのスマリコードを掘り下げており、それを学びたいと思っています. dalvik バイトコード リファレンスを確認しましたが、これらをいつ/どのように使用するかに関する構造リファレンスが見つかりませんでした

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

smali 構造の詳細を説明する他のリソースを知っていますか?

4

1 に答える 1

3

これらのほとんどは、.locals、.registers、および .annotation を除いて、メソッドの一部として保存されるデバッグ情報の一部です。これらの詳細については、 dex-formatドキュメントの debug_info_item セクションを参照してください。

.locals および .registers ディレクティブの場合、メソッドで使用できるレジスタの数を指定する 2 つの異なる方法があります (つまり、dex 形式のドキュメントによると、code_item の register_size フィールド)。2 つの違いの詳細については、smali googlecode サイトのRegisters wiki ページを参照してください。

最後に、.annotation ディレクティブで注釈を定義します。詳細については、dex 形式のドキュメントを参照してください。具体的には、次の項目を確認する必要があります。

  • annotations_directory_item: クラスのすべてのクラス、メソッド、フィールド、およびパラメーターの注釈への参照が含まれています
  • annotation_set_ref_list: メソッドのパラメータに関連付けられた注釈への参照が含まれています
  • annotation_set_item: メソッド、フィールド、またはクラスに関連付けることができる注釈のリストが含まれています
  • encoded_annotation: 単一の注釈を保管します
于 2013-09-03T06:58:36.573 に答える