Нет, требуется только один аргумент, который является длинным. Однако длина передается с использованием двух регистровv2
и v3
. Это связано с тем, что long
является 64-битным значением и поэтому его необходимо представить двумя регистрами на Dalvik, который считает регистры шириной 32 бит. Техническое руководство Dalvik VM упоминает об этом в bytecode format guide:
При использовании для битовых значений (например, целых чисел и чисел с плавающей точкой), регистры считается 32 бита. Смежные пары регистров используются для 64-битных значений. Для пар регистров не требуется выравнивание.
Вы можете сказать, что статический метод принимает аргумент long
из подписи метода. Значение (J)V
означает, что это метод, который принимает параметр long
(J
) и возвращает void (V
).
Чтобы узнать больше о методе дескрипторы посмотреть на спецификации JVM, в частности section-4.3.3 и section-4.3.2
Вот соответствующая информация Dalvik-конкретны: http://s.android.com/tech/dalvik/dex-format .html – JesusFreke