數據類型
Java數據類型 | dalvik數據類型 |
int | I |
byte | B |
char | C |
double | D |
float | F |
long | J |
short | S |
void | V |
boolean | Z |
array | [ |
object | L |
最後的數據和對象數據類型舉例:
[I ---> int[]
Ljava/lang/String; ----> java.lang.String
即:L包名/對象名; 如果是內部類:LpackageName/objectName$subObjectName;
函數定義(語法)
1.賦值 move -wide、-object、-result、-result-wide、-result-object、-exception 、/from16 、/16
例如,在指令“move-wide/from16 vAA, vBBBB
”中:
- “
move
”爲基礎運算碼,表示這是基本運算(移動寄存器的值)。 - “
wide
”爲名稱後綴,表示指令對較寬(64 位)數據進行運算。 - “
from16
”爲運算碼後綴,表示具有 16 位寄存器引用源的變體。 - “
vAA
”爲目標寄存器(隱含在運算中;並且,規定目標參數始終在前),取值範圍爲v0
-v255
。 - “
vBBBB
”爲源寄存器,取值範圍爲v0
-v65535
。
2.返回 return -void、-wide、-object
例如,在指令“return-wide vAA”中:
- “return”爲方法返回。
- “wide”爲名稱後綴,表示指令對較寬(64 位)數據進行運算。
- “vAA”爲目標寄存器(隱含在運算中;並且,規定目標參數始終在前),取值範圍爲
v0
-v255
。
3.移值 const -wide、-string、-class、/jumbo、/high16、/32、/16、/high16、/4
例如,在指令“const-wide/16 vAA, #+BBBB”中:
- “const”將給定的字面值移到指定的寄存器對中。
- “wide”爲名稱後綴,表示指令對較寬(64 位)數據進行運算。
- “/16” 爲有符號整數(16 位)。
- “vAA”爲目標寄存器(隱含在運算中;並且,規定目標參數始終在前),取值範圍爲
v0
-v255
。 - “#+BBBB” 爲有符號整數(16 位)。
4.對象鎖 monitor -enter、-exit (獲取、釋放)
例如,在指令“monitor-exit vAA”中:
- 釋放指定對象的監視鎖。
5.