RoFF
RoFF

Reputation: 559

what is the number part in mapping.txt

A generated mapping.txt like following

com.abc.media.MediaAudioEncoder$AudioThread -> nq:
com.abc.media.MediaAudioEncoder this$0 -> a
100:100:void <init>(com.abc.media.MediaAudioEncoder) -> <init>
105:158:void run() -> run
100:100:void <init>

what does "100:100" "105:158" means ?

Upvotes: 1

Views: 314

Answers (1)

michal3377
michal3377

Reputation: 1462

These are line numbers which indicate range where method is defined.

So for each class, there is that structure: 1st line, without indentation, shows translation of class name.

com.example.myapp.MainActivity -> com.example.myapp.a:

Next, lines with indentation, shows translation of that class' fields and methods.

    int num -> a   //fields
    java.lang.String str -> b
    15:20:void <init>() -> <init>   //contructor, between 15th and 20th line
    27:54:void onCreate(android.os.Bundle) -> onCreate //not obfuscated method, between 27th and 54th line
    60:88:void foo() -> a   //obfuscated method
    90:93:void bar() -> b

Note that not every class/method/field will be obfuscated. Code which depends on reflections (calling methods by their name, as a string) won't work after obfuscation process. That's why sometimes you will want to exclude certain part of code from that process by editing your proguard-rules file.

Upvotes: 2

Related Questions