The following is snipcode disassembled using dedexer on a android market app, in the invoke-virtual
, I don't understand what can the original Java code be:
invoke-virtual {v0},[Lcom/google/android/providers/AbstractGDataSyncAdapter$ClientDiffType;/clone ; clone()Ljava/lang/Object;
The [
is supposed to be an array, then is it invoking the clone
method on element in the array of type com/google/android/providers/AbstractGDataSyncAdapter$ClientDiffType
?
Then why there is ;
between the class name and method name clone
? A bug in the dedexer itself?
Class names begin with an 'L' and end with a ';'. So [Lcom/google/android/providers/AbstractGDataSyncAdapter$ClientDiffType;
is an array of com.google.android.providers.AbstractGDataSyncAdapter.ClientDiffType
I don't know what the '/clone ;' syntax is though. It does seem like it might be a bug in dedexer. The clone() right after that is obviously the method.
"then is it invoking the clone method on element in the array" - this is incorrect. It is invoking the clone method on the whole array, not on an element in the array.