рд░рд┐рд╡рд░реНрд╕ рдЗрдВрдЬреАрдирд┐рдпрд░рд┐рдВрдЧ рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреА рд╕реБрд░рдХреНрд╖рд╛ - рдкреНрд░реЛрдЧрд╛рд░реНрдб

ProGuard рдХреЛрдб рдХреЛ рдХрдо рдХрд░рдиреЗ, рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ, рдФрд░ obfuscating рдХреЗ рд▓рд┐рдП рдПрдХ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред рдирддреАрдЬрддрди, рдЖрдкрдХреЛ рдПрдХ рдЫреЛрдЯрд╛ * .apk рдорд┐рд▓рддрд╛ рд╣реИ, рдЬреЛ рдХрд┐ рд░реЗрдВрдЧрдиреЗ рд╡рд╛рд▓реЗ рдХреЗ рд▓рд┐рдП рдЕрдзрд┐рдХ рдХрдард┐рди рд╣реЛрддрд╛ рд╣реИред Developer.android.com рдкрд░ рд▓рд┐рдЦрд╛ рд╣реИ рдХрд┐ ProGuard рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рдмрд┐рд▓реНрдб рд╕рд┐рд╕реНрдЯрдо рдореЗрдВ рдПрдореНрдмреЗрдбреЗрдб рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдореИрдВрдиреЗ рджреЗрдЦрд╛ рдХрд┐ рдпрд╣ рдЙрдкрдпреЛрдЧрд┐рддрд╛ r9 рдореЗрдВ рдЕрдкрдЧреНрд░реЗрдб рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рд╣реА рдореЗрд░реЗ SDK рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рджрд┐рдЦрд╛рдИ рджреА рдереАред



ProGuard рдХреЗрд╡рд▓ рддрдм рд╢реБрд░реВ рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдЖрдк рдмрд┐рд▓реНрдб рдХреЛ "рд░рд┐рд▓реАрдЬрд╝" рдореЛрдб рдореЗрдВ рдЪрд▓рд╛рддреЗ рд╣реИрдВред рдЬреЛ рд▓реЛрдЧ рдпрд╣ рдирд╣реАрдВ рдЬрд╛рдирддреЗ рдХрд┐ рдпрд╣ рдХреИрд╕реЗ рдХрд░рдирд╛ рд╣реИ (рдЧреНрд░рд╣рдг рдореЗрдВ): рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдиреВ рдкрд░ рд░рд╛рдЗрдЯ-рдХреНрд▓рд┐рдХ рдХрд░реЗрдВ, рдлрд┐рд░ рдирд┐рд░реНрдпрд╛рдд рдХрд░реЗрдВ -> Android -> рдирд┐рд░реНрдпрд╛рдд Android рдПрдкреНрд▓рд┐рдХреЗрд╢рди ред рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреНрд░рдХрдЯ рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдк рдПрдХ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдмрдирд╛рддреЗ рд╣реИрдВ, рдЗрд╕рдХреА рдЬрдбрд╝ рдореЗрдВ, proguard.cfg рдирд╛рдо рдХреЗ рддрд╣рддред рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдпрд╣ рдирд╣реАрдВ рд╣реИ, рддреЛ рдЕрдкрдиреЗ рдПрд╕рдбреАрдХреЗ рдХреЗ рд╕рд╛рде рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреА рдЬрд╛рдВрдЪ рдХрд░реЗрдВред

рдЕрдЧрд▓рд╛, рдЕрд╕реЗрдВрдмрд▓реА рд╕реЗ рдкрд╣рд▓реЗ рдЦреБрдж рдХреЛ рдУрдлрд╝реНрдлрд╝реБрд╕реЗрдЯ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ рдкреНрд░рдкрддреНрд░ proguard.config = / path / proguard.cfg рдХреА рдПрдХ рдкрдВрдХреНрддрд┐ рдХреЛ /root_of_your_project/default.properties рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ , рдЬрд╣рд╛рдБ рдкрде рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдкрде рд╣реИред рдЗрд╕ рдкреНрд░рдХрд╛рд░, рдЖрдк рдкрд░рд┐рдпреЛрдЬрдирд╛рдУрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рдХреЗ рд▓рд┐рдП рдПрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред



рдЗрд╕рд▓рд┐рдП, рдЕрд╕реЗрдВрдмрд▓реА рдХреА "рд░рд┐рд▓реАрдЬрд╝" рдХреЗ рдмрд╛рдж, ProGuard рдХреЛ рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдереЛрдбрд╝рд╛ рдЧрдВрджрд╛ рдорд┐рд▓реЗрдЧрд╛:



рдлрд╝рд╛рдЗрд▓реЗрдВ рдмрдирд╛рдИ рдЬрд╛рддреА рд╣реИрдВ:





Developer.android.com рдкрд░ рднреА рд╡реЗ рдЪреЗрддрд╛рд╡рдиреА рджреЗрддреЗ рд╣реИрдВ рдХрд┐ ProGuard рдХреЛрдб рдХреЛ рд╕рдВрд╕рд╛рдзрд┐рдд рдХрд░рддреЗ рд╕рдордп, ClassNotFoundException рдХреЗ рд░реВрдк рдореЗрдВ рдЬрдЯрд┐рд▓рддрд╛рдПрдБ рд╣реЛ рд╕рдХрддреА рд╣реИрдВред рдЗрд╕рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП, рдЖрдк рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдПрдХ рдкрдВрдХреНрддрд┐ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:

-keep public class <MyClass>
      
      





рдХреЙрдиреНрдлрд┐рдЧ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдпрд╣рд╛рдБ рдкрдврд╝реЗрдВред рджрд░рдЕрд╕рд▓, рд╡рд╣рд╛рдВ рдЖрдкрдХреЛ рдХреБрдЫ рдирдореВрдиреЗ рдорд┐рд▓ рд╕рдХрддреЗ рд╣реИрдВред



рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, / path_to_your_SDK / tools / proguard / bin рдлрд╝реЛрд▓реНрдбрд░ рдореЗрдВ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реНрдХреНрд░рд┐рдкреНрдЯ рд╣реЛрддреА рд╣реИ, рдЬрд┐рд╕реЗ cry.bat (Linux / Mac OS X рдХреЗ рд▓рд┐рдП cry.sh ) рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИред рдпрд╣ рдЖрдкрдХреЛ рдЙрдкрд░реЛрдХреНрдд рдореИрдкрд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ obfuscated рдХреЛ рдкрдардиреАрдп рдореЗрдВ рдмрджрд▓рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред

рдЙрдкрдпреЛрдЧ рд╕рд┐рдВрдЯреИрдХреНрд╕:

 retrace.bat|retrace.sh [-verbose] mapping.txt [<stacktrace_file>]
      
      





рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:

 retrace.bat -verbose mapping.txt obfuscated_trace.txt
      
      





рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдорд╛рдирдХ рдореИрдиреБрдЕрд▓ рдкрд╛рда рдЗрдирдкреБрдЯ рдХреЛ рднреА рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдпрджрд┐ рдЖрдк <stacktrace_file> рдХрд╛ рдкрде рд▓рд┐рдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╣реБрдд рдЖрд▓рд╕реА рд╣реИрдВред

рдпрджрд┐ рдЖрдк рдкрд╣рд▓реА рдмрд╛рд░ ProGuard рдХреЗ рд╕рд╛рде "рд░рд┐рд▓реАрдЬрд╝" рдореЛрдб рдореЗрдВ рдЗрд╕реЗ рд▓реЙрдиреНрдЪ рдХрд░рддреЗ рд╣реИрдВ (рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рдХреЗ рд╕рд╛рде), рдПрдХ рддреНрд░реБрдЯрд┐ рдХреЛрдб 1 рдЙрдбрд╝рддрд╛ рд╣реИ, рддреЛ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ рдХрд┐ рдЖрдкрдХреЗ SDK рдХреЗ рдорд╛рд░реНрдЧ рдореЗрдВ рд░рд┐рдХреНрдд рд╕реНрдерд╛рди рд╣реИрдВ - рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛ рджреЗрдВ рдФрд░ рдпрд╣ рдХрд╛рдо рдХрд░реЗрдЧрд╛ред



рдЕрдкрдиреЗ рдореЛрдЯрд╛рдкреЗ рдХрд╛ рдЖрдирдВрдж рд▓реЗрдВ!



All Articles