Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does "L", "[" and ";" mean in smali code? [duplicate]

I'm trying to get a deep understanding of smali language. I found a page talking about opcodes online, but it never talks about these special symbols, which is L, ; and [, e.g

invoke-static {v2, v3}, Ljava/lang/String;->format(Ljava/lang/String;[Ljava/lang/Object;)Ljava/lang/String;

So, what does these symbols mean here? e.g [Ljava/lang/Object; and Ljava/lang/String;

like image 690
daisy Avatar asked Feb 16 '23 03:02

daisy


1 Answers

[Ljava.lang.Object; is the String returned from Object#String for an Object array class, similarly for String

[ signifies an array

L signifies a class or interface

; is end of type

Class#getName

Element Type         Encoding
boolean              Z
byte                 B
char                 C
class or interface   Lclassname;
double               D
float                F
int                  I
long                 J
short                S
like image 199
Reimeus Avatar answered Feb 17 '23 21:02

Reimeus