【发布时间】:2019-06-03 13:21:57
【问题描述】:
我有一个 proguard 映射文件,其中包含以下内容:
androidx.versionedparcelable.ParcelImpl -> androidx.versionedparcelable.ParcelImpl:
androidx.versionedparcelable.VersionedParcelable mParcel -> a
1:1:void androidx.versionedparcelable.VersionedParcelParcel.<init>(android.os.Parcel):0:0 -> <init>
1:1:void <init>(android.os.Parcel):0 -> <init>
2:2:java.lang.String androidx.versionedparcelable.VersionedParcelParcel.readString():0:0 -> <init>
...
9:9:void androidx.versionedparcelable.VersionedParcel.writeVersionedParcelable(androidx.versionedparcelable.VersionedParcelable):0:0 -> writeToParcel
9:9:void writeToParcel(android.os.Parcel,int):0 -> writeToParcel
10:10:void androidx.versionedparcelable.VersionedParcel.writeToParcel(androidx.versionedparcelable.VersionedParcelable,androidx.versionedparcelable.VersionedParcel):0:0 -> writeToParcel
10:10:void androidx.versionedparcelable.VersionedParcel.writeVersionedParcelable(androidx.versionedparcelable.VersionedParcelable):0 -> writeToParcel
10:10:void writeToParcel(android.os.Parcel,int):0 -> writeToParcel
问题:
- 我找不到映射文件格式的文档。有吗?
- 1:1、2:2 等是什么意思?
- 最后几行似乎将该方法重命名为完全相同的名称。在某些情况下,它们甚至具有相同的签名。这怎么可能?
- 在函数名的末尾,在关闭 ) 之后,有时会有 :0:0 或 :0。这是什么意思?
【问题讨论】:
-
我猜它是一个类键;方法后面的数字似乎与方法参数匹配,
0看起来对应的是Android内置类,没有被混淆。 -
我不确定我是否理解:例如,“10:10”似乎与参数相关的任何内容都不匹配......我唯一理解的是所有 10:10或 9:9 方法使用相同的名称进行混淆。令人惊讶的映射文件格式似乎没有doc ...