【问题标题】:What does "L", "[" and ";" mean in smali code? [duplicate]“L”、“[”和“;”是什么意思?在smali代码中是什么意思? [复制]
【发布时间】:2013-10-06 13:12:47
【问题描述】:

我正在尝试深入了解 smali 语言。我在网上找到了一个讨论操作码的页面,但从来没有讨论过这些特殊符号,即L;[,例如

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

那么,这些符号在这里是什么意思?例如[Ljava/lang/Object;Ljava/lang/String;

【问题讨论】:

  • @sᴜʀᴇsʜᴀᴛᴛᴀ酷字体
  • 当我问这个问题时,我发现很难找到重复的问题。由于前海报做java,我做RE
  • 这种 dex 类型的格式在 s.android.com/tech/dalvik/dex-format.html 文档中定义。

标签: java android smali


【解决方案1】:

[Ljava.lang.Object; 是从 Object#String 返回的字符串,用于 Object 数组类,与 String 类似

[ 表示一个数组

L 表示一个类或接口

; 是类型的结尾

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

【讨论】:

  • 谢谢 Reimeus,两个连续的对象是什么意思?例如format(Ljava/lang/String;[Ljava/lang/Object;)
  • 这意味着你有 2 个数组
  • 哦,我明白了,作为参数传入的两个对象之间没有分隔符
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-10-27
  • 2015-07-15
  • 2018-07-17
  • 2012-08-13
  • 2015-03-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多