Dalvik字節碼的類型、方法與字段表示方法
1.類型
基本類型——》
引用類型——》對象與數組
Dalvik字節碼類型描述符
取第一個字母大寫,黃色爲特殊
語法 含義
V |
void |
Z |
Boolean |
B |
byte |
S |
string |
C |
char |
I |
int |
J |
long |
F |
float |
D |
double |
L |
Java類型組 |
[ |
數組類型 |
Dalvik寄存器32位大小
L類型表示任何類,如Ljava/lang/String; 相當於Java.lang.String;
[類可以表示所有的基本類型的數組 如 [I 表示 int[] [[I表示int[][] 維數最大爲255個
如[Ljava/lang/String/; 可以表示Java中的字符串數組
2.方法
方法格式如:
Lpackage/name/ObjectName;->MethodName(III)Z
Lpackage/name/ObjectName;理解爲一個類型,MethodName爲具體的方法名,(III)Z是方法的簽名部分,III爲方法的參數(此處爲三個整形參數)(連在一起直接寫的,讀時注意分開看) Z表示返回類型(boolean)
試試下面這個例子
(String - 》 Ljava/lang/StringObject -> Ljava/lang/Object)
Stringmethod(int , int[][] , int , String ,Object[])
method(I[[IILjava/lang/String;[Ljava/lang/Object;)Ljava/lang/String 是不是很簡單有套路
# virtual methods 表示一個虛方法 #direct method 表示只是一個直接得方法
3.字段
//不是很理解,暫時沒有遇到,以後補充吧
字段的格式如下:
Lpackage/name/ObjectName;->FileName:Ljava/lang/String;
字段由類型(L) 字段名()與字段類型()組成 冒號隔開:
#instance fields 實例字段 #static fields 靜態字段