2013-09-30 7 views
0

J'essaie d'avoir une compréhension profonde de la langue smali. J'ai trouvé une page parlant de opcodes en ligne, mais il ne parle jamais de ces symboles spéciaux, ce qui est L, ; et [, par exemple Que signifie "L", "[" et ";" signifie dans le code smali?

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

Alors, qu'est-ce que signifient ces symboles ici? par exemple [Ljava/lang/Object; et Ljava/lang/String;

+0

@ sᴜʀᴇsʜᴀᴛᴛᴀ police fraîche – daisy

+0

Et je trouve qu'il est difficile de localiser la question dupliquées lorsque je leur ai demandé. Puisque l'ancien poster fait java et que je fais RE – daisy

+0

Ce format pour les types dex est défini dans le document http://s.android.com/tech/dalvik/dex-format.html. – JesusFreke

Répondre

4

[Ljava.lang.Object; est la chaîne de retour de Object#String pour une classe de réseau Object, de manière similaire pour String

[ signifie un groupement

L signifie une classe ou interface

; est fin tapez

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 
+0

Merci Reimeus, et que signifie deux objets consécutifs? par exemple 'format (Ljava/lang/String; [Ljava/lang/Object;)' – daisy

+0

Cela signifie que vous avez 2 tableaux – Reimeus

+0

Oh, je comprends, il n'y a pas de séparateur entre deux objets qui passent en arguments – daisy