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 ofcom.google.android.providers.AbstractGDataSyncAdapter.ClientDiffTypeI 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.