Get method signature

In the classes directory, the studio corresponds to the directory app\build\intermediates\classes and execute: javap -s full class name

 

The characters in "()" represent parameters, and the following ones represent the return value. For example "()V" means void Func(); 

"(II)V" 表示 void Func(int, int);

 

"(Ljava/lang/String;Ljava/lang/String;)V" character Java type C type

V void void
Z jboolean boolean
I jint int
J jlong ​​long
D jdouble double
F jfloat float
B jbyte byte
C jchar char
S jshort short
array Then start with "[", and use two characters to represent [I jintArray int[]
[F jfloatArray float[]
[B jbyteArray byte[]
[C jcharArray char[]
[S jshortArray short[]
[D jdoubleArray double[]
[J jlongArray long[]
[Z jbooleanArray boolean[]

The above are all basic types. If the parameter of the Java function is class, it starts with "L" and ends with ";" and the package and class names separated by "/". The parameter of the corresponding C function name is jobject. An exception is the String class, whose corresponding class is jstring
Ljava/lang/String; String jstring
Ljava/net/Socket; Socket jobject
If the JAVA function is located in an embedded class, then Use $ as the delimiter between class names.
For example "(Ljava/lang/String;Landroid/os/FileUtils$FileStatus;)Z"

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326572171&siteId=291194637