рдХреИрд╕реЗ рд░реЛрдХреЗрдВ рдкреНрд░реЛрдЧреНрд░реЗрд╕ рд╕реЗ рдбрд░рдирд╛ рдФрд░ рд░рд╣рдирд╛ рд╢реБрд░реВ


рд╣реИрд▓реЛ, рдореИрдВ рдПрдХ Android рдбреЗрд╡рд▓рдкрд░ рд╣реВрдВ рдФрд░ рдореИрдВ рдЕрдм ProGuard рд╕реЗ рдбрд░рддрд╛ рдирд╣реАрдВ рд╣реВрдВ ...


рдЖрдорддреМрд░ рдкрд░, рдЗрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рдХреЛ рддрдм рдпрд╛рдж рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рджрд▓рд┐рдд рдбреЗрдХреНрд╕-рд▓рд┐рдорд┐рдЯ рдЗрд╢реНрдпреВ рдХреЗ рд╕рд╛рде рдпрд╛ рдЖрд╡реЗрджрди рд╕реБрд░рдХреНрд╖рд╛ рдореЗрдВ рд╕реБрдзрд╛рд░ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХреЛ рд╕рд╣реА рдврдВрдЧ рд╕реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдпрд╣ рдкрд╣рд▓реА рдмрд╛рд░ рд╕реЗ рдмрд╣реБрдд рджреВрд░ рд╣реИред рдореИрдВрдиреЗ рдЕрдХреНрд╕рд░ рджреЗрдЦрд╛ рдХрд┐ рдХрд┐рддрдиреЗ рдЯреВрдЯреЗ рд╣реБрдП рд╣реИрдВ, рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ рд╣реИ, рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХреЛ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдФрд░ рдореБрд▓рдбрд╛рдЗрдЯреЗрдХреНрд╕ рд╕рдкреЛрд░реНрдЯ рдЪрд╛рд▓реВ рдХрд░ рджрд┐рдпрд╛, рдФрд░ рд╣рд░ рдмрд╛рд░ рдореБрдЭреЗ рдЗрд╕ рдмрд╛рдд рдХрд╛ рдереЛрдбрд╝рд╛ рджреБрдЦ рд╣реБрдЖ, рдХреНрдпреЛрдВрдХрд┐ рдкреНрд░реЛрдЧрд╛рд░реНрдб рдЖрд╡реЗрджрди рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рдиреЗ рдФрд░ рдЗрд╕рдХреЗ рдкреНрд░рджрд░реНрд╢рди рдХреЛ рдмрдврд╝рд╛рдиреЗ рдореЗрдВ рджреЛрдиреЛрдВ рдХреА рдорджрдж рдХрд░рддрд╛ рд╣реИред


рдЕрдВрдд рдореЗрдВ, рдореИрдВрдиреЗ рдПрдХ рд▓реЗрдЦ рд▓рд┐рдЦрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХрд┐рдпрд╛, рдЬрд┐рд╕рдореЗрдВ рдореИрдВ рдЙрди рд╕рднреА рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░рд┐рдпреЛрдВ рдХреЛ рдбрд╛рд▓ рд╕рдХрддрд╛ рд╣реВрдБ рдЬреЛ рдореИрдВрдиреЗ рдХрдИ рд╡рд░реНрд╖реЛрдВ рддрдХ рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдореЗрдВ рд╕реАрдЦреАрдВ рдФрд░ рдЬреЛ рдкреВрд░реА рддрд░рд╣ рд╕реЗ рдирдП-рдирдП рдФрд░ рдЬреЛ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдХреБрдЫ рдЬрд╛рдирддреЗ рд╣реИрдВ, рджреЛрдиреЛрдВ рдХреА рдорджрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдпрд╣ рдХрд┐рд╕ рдмрд╛рд░реЗ рдореЗрдВ рд╣реИ


Proguard рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд░рдиреЗ рдФрд░ рдЙрд╕реЗ рдЖрдЧреЗ рдмрдврд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдПрдХ рдУрдкрди-рд╕реЛрд░реНрд╕ рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред рдпрд╣ рдЙрдкрдХрд░рдг рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЬрд╛рд╡рд╛ рдХреЛрдб рдХреЛ рд╕рдВрдХрд▓рд┐рдд рдХрд░рддрд╛ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕реЗ рдХрд┐рд╕реА рднреА JVM рднрд╛рд╖рд╛ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдПред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдкреНрд░рд╛рдЧрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП рднрд╛рд╖рд╛ рд╣реА рдЙрджрд╛рд╕реАрди рд╣реИ, рдХреЗрд╡рд▓ рдмрд╛рдпрдЯреЗрдХреЛрдб рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реИред рд╕рднреА рд░рдХреНрд╖рдХ рдЧрд╛рд░реНрдбреЗрдХрдЯреНрдпреВрдб рдЬреЛрдбрд╝рддреЛрдбрд╝ рдХреЛ 3 рдореБрдЦреНрдп рд╢реНрд░реЗрдгрд┐рдпреЛрдВ рдореЗрдВ рд╡рд┐рднрд╛рдЬрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ: рдХреЛрдб рд╕рд┐рдХреБрдбрд╝рдирд╛ , рдЕрдиреБрдХреВрд▓рди рдФрд░ рдУрдлрд╝реНрдлрд╝реНрдпреВрд╢рди ред


рдХреЛрдб рд╕рд┐рдХреБрдбрд╝ рд░рд╣рд╛ рд╣реИ


рд╣рд╛рдВ, рдпрд╣ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдФрд░ рдлрд┐рд░ рдЗрд╕реЗ рд╣рдЯрд╛рдиреЗ рдХрд╛ рдПрдХ рдЕрдЬреАрдм рд╕рд╛ рдЙрдкрдХреНрд░рдо рд╣реИ, рд▓реЗрдХрд┐рди рдпрд╣ Android рдХреЗ рд╡рд┐рдХрд╛рд╕ рдХреА рд╡рд╛рд╕реНрддрд╡рд┐рдХрддрд╛ рд╣реИред рдпрд╣, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рд╣рд╛рде рд╕реЗ рд▓рд┐рдЦреЗ рдЧрдП рдХреЛрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдирд╣реАрдВ рд╣реИ (рд╣рд╛рд▓рд╛рдВрдХрд┐ рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ), рд▓реЗрдХрд┐рди рд╕рднреА рдкреНрд░рдХрд╛рд░ рдХреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рджреНрд╡рд╛рд░рд╛ рд▓рд╛рдП рдЧрдП рдореГрдд рдХрд╛рд░реНрдЧреЛ рдХреЗ рдЯрди рдХреЗ рдмрд╛рд░реЗ рдореЗрдВред рдЕрдорд░реВрдж , рдЕрдкрд╛рдЪреЗ рдХреЙрдордиреНрд╕ , Google Play Services рдФрд░ рдЕрдиреНрдп рд▓реЛрдЧ рджрд╕рд┐рдпреЛрдВ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдХреЗ рдЬреЛрдбрд╝реЗ рд╕реЗ рдПрдкреАрдХреЗ рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЖрдХрд╛рд░ 500kb рддрдХ рдмрдврд╝рд╛ рд╕рдХрддреЗ рд╣реИрдВред рдХрднреА-рдХрднреА рдпрд╣ рдЗрддрдирд╛ рдЖрдЧреЗ рдмрдврд╝ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдПрдХ рдХрд╛рд░реНрдпрдХреНрд░рдо рджрд▓рд╡рд┐рдХ рддрд░реАрдХреЛрдВ рдХреА рд╕реАрдорд╛ рд╕реЗ рдЕрдзрд┐рдХ рд╣реЛрдиреЗ рдХреЗ рдХрд╛рд░рдг рд╕рдВрдХрд▓рди рдирд╣реАрдВ рдХрд░ рд╕рдХрддрд╛ рд╣реИ ред рдкреНрд░реЛрдЧрд╛рд░реНрдб рд╕рднреА рдЕрдкреНрд░рдпреБрдХреНрдд рдХреЛрдб рдХреЛ рд╣рдЯрд╛рдиреЗ рдореЗрдВ рдорджрдж рдХрд░реЗрдЧрд╛ рдФрд░ рдХреБрдЫ рдореЗрдЧрд╛рдмрд╛рдЗрдЯ рдкрд░ рд╡рд╛рдкрд╕ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдЖрдХрд╛рд░ рдХрдо рдХрд░реЗрдЧрд╛ред


рдЕрдиреБрдХреВрд▓рди


рдЕрдирд╛рд╡рд╢реНрдпрдХ рдХреЛрдб рд╣рдЯрд╛рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЛрдЧрд╛рд░реНрдб рд╢реЗрд╖ рдХреЛрдб рдХрд╛ рдЕрдиреБрдХреВрд▓рди рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕рдХреЗ рд╢рд╕реНрддреНрд░рд╛рдЧрд╛рд░ рдореЗрдВ рдирд┐рдпрдВрддреНрд░рдг рдкреНрд░рд╡рд╛рд╣ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдбреЗрдЯрд╛-рдкреНрд░рд╡рд╛рд╣ рд╡рд┐рд╢реНрд▓реЗрд╖рдг, рдЖрдВрд╢рд┐рдХ рдореВрд▓реНрдпрд╛рдВрдХрди, рд╕реНрдЯреЗрдЯрд┐рдХ рд╕рд┐рдВрдЧрд▓ рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ, рдЧреНрд▓реЛрдмрд▓ рд╡реИрд▓реНрдпреВ рдирдВрдмрд░рд┐рдВрдЧ, рд▓реАрдирд┐рд╕ рд╡рд┐рд╢реНрд▓реЗрд╖рдг рд╢рд╛рдорд┐рд▓ рд╣реИрдВред рдЧрд╛рд░реНрдб рдкреАрдкрд╣реЛрд▓ рдЕрдиреБрдХреВрд▓рди рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдЪрд░ рдХреЗ рдЖрд╡рдВрдЯрди рдХреА рд╕рдВрдЦреНрдпрд╛ рдХрдо рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдкреВрдВрдЫ рдХреА рдкреБрдирд░рд╛рд╡реГрддреНрддрд┐ рдХреЛ рд╕рд░рд▓ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдмрд╣реБрдд рдХреБрдЫ ( рд╡рд┐рдХреА ) рдХрд░ рд╕рдХрддрд╛ рд╣реИред рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рд╛рдорд╛рдиреНрдп рдСрдкрд░реЗрд╢рди рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдкреНрд░реЛрдЧрд╛рд░реНрдб рдореЗрдВ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдПрдВрдбреНрд░реЙрдЗрдб рдкреНрд▓реЗрдЯрдлреЙрд░реНрдо рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рдЕрдиреБрдХреВрд▓рди рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдкреНрд░рд╡реЗрд╢ рдХреЗ рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЛ рд╣рдЯрд╛рддреЗ рд╣реБрдП, рдПрдВрдЯреНрд╕ рдХреЗ рд╕рд╛рде рдПрдирдо рд╡рд░реНрдЧреЛрдВ рдХреА рдЬрдЧрд╣ред


рдХрд╣рд╛рдирд┐рдпреЛ


рдЕрдВрдд рдореЗрдВ, Proguard рдЖрдкрдХреЗ рд╕рднреА рдХреЛрдб рдХреЛ рд╕рднреА рд╡рд░реНрдЧреЛрдВ, рд╡рд┐рдзрд┐рдпреЛрдВ рдФрд░ рдлрд╝реАрд▓реНрдб рдХреЛ рдпрд╛рджреГрдЪреНрдЫрд┐рдХ (рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХрд╛рдлреА рдпрд╛рджреГрдЪреНрдЫрд┐рдХ рдирд╣реАрдВ) рдЕрдХреНрд╖рд░реЛрдВ рдХреЗ рд╕реЗрдЯ рдореЗрдВ рдмрджрд▓рдХрд░ рдПрдХ рдЕрдкрдардиреАрдп рдЧрдбрд╝рдмрдбрд╝ рдореЗрдВ рдмрджрд▓ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рдПрдХ рдмрд╣реБрдд рд╣реА рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рднреА рдЖрдкрдХреА рдПрдкреАрдХреЗ рдлрд╝рд╛рдЗрд▓ рдХреЛ рд╡рд┐рдШрдЯрд┐рдд рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рдФрд░ рд╣рд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЕрд╕реНрдкрд╖реНрдЯ рдХреЛрдб рдХреЛ рд╕рдордЭрдиреЗ рдХрд╛ рдзреИрд░реНрдп рдирд╣реАрдВ рд╣реИред


рдХрд╛рд░реНрдп рд╕рд┐рджреНрдзрд╛рдВрдд


рдкреНрд░реВрдлрд╝ рдКрдкрд░ рд╡рд░реНрдгрд┐рдд рдЕрдиреБрдХреНрд░рдо рдореЗрдВ 3 рдЪрд░рдгреЛрдВ рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ: рдХреЛрдб рд╕рд┐рдХреБрдбрд╝рдирд╛ тЖТ рдЕрдиреБрдХреВрд▓рди тЖТ рдУрдлрд╝реНрдлрд╝рдХреЗрд╢рди ред рдкреНрд░рддреНрдпреЗрдХ рдЪрд░рдг рд╡реИрдХрд▓реНрдкрд┐рдХ рд╣реИред


рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдЪрд░рдг рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдмрдВрдж рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред


рдХрд╛рд░реНрдп рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЧрд╛рд░реНрдб рдХреЗ рд▓рд┐рдП, рдЖрдкрдХреЛ 3 рдШрдЯрдХ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рд╣реЛрдВрдЧреЗ:


  • рдЖрдкрдХрд╛ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреА рд╕рднреА рдлрд╝рд╛рдЗрд▓реЛрдВ рдФрд░ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рдиреЗ рд╡рд╛рд▓реА рд╕рднреА рд▓рд╛рдЗрдмреНрд░реЗрд░реА (рдЬрд╛рд░, рдПрдкреАрдЖрд░, рдПрдкреАрдХреЗ, рдпреБрджреНрдз, рдЬрд╝рд┐рдк, рдЖрджрд┐) рдХреЗ рд╕рд╛рде рдПрдХ рд╕рдВрдЧреНрд░рд╣ рд╣реИред рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХреЗрд╡рд▓ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрдХрд▓рд┐рдд рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддрд╛ рд╣реИ рдФрд░ рдЗрд╕рдХрд╛ рд╕реНрд░реЛрдд рд╕реЗ рдХреЛрдИ рд▓реЗрдирд╛-рджреЗрдирд╛ рдирд╣реАрдВ рд╣реИред
  • рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ (рдУрдВ) - рдлрд╝рд╛рдЗрд▓ (рдУрдВ) рдЬрд┐рд╕рдореЗрдВ рд╕рднреА рдирд┐рдпрдо, рд╡рд┐рдХрд▓реНрдк рдФрд░ рд╕реЗрдЯрд┐рдВрдЧреНрд╕ рд╣реИрдВ рдЬрд┐рдирдХреЗ рд╕рд╛рде рдЖрдк рдкреНрд░рд╕рдВрд╕реНрдХрд░рдг рд╢реБрд░реВ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред
  • рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдЬрд╛рд░ (рдЖрд░рд╛, рдПрдкреНрд╕, ...) - рдЙрд╕ рдордВрдЪ рдХреА рдХрдХреНрд╖рд╛рдПрдВ рдЬрд┐рд╕ рдкрд░ рдЖрдкрдХрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдЪрд▓рддрд╛ рд╣реИред Android рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпрд╣ android.jar ред рдпреЗ рдЕрднрд┐рд▓реЗрдЦрд╛рдЧрд╛рд░ рдХреЗрд╡рд▓ рдЖрдкрдХреЗ рдХреЛрдб рдХреЗ рд╕рд╣реА рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рд╣реИрдВ, рдЗрдиреНрд╣реЗрдВ рд╕рдВрд╢реЛрдзрд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ (рдЗрд╕рдХрд╛ рдХреЛрдИ рдорддрд▓рдм рдирд╣реАрдВ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ android.jar "рдлреЛрди рдкрд░" рд╣реИ, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрд╕рдХреА рдкрд╣реБрдВрдЪ рдирд╣реАрдВ рд╣реИ)ред

рдЬреЗрдм рдЦреЛрдЬ рдЖрд╡реЗрджрди рд╕реЗ рдЫрд╡рд┐, рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реВрдЪреА
(рдЬреЗрдм рд╡реЗрдпрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рдЫрд╡рд┐, рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ)


рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреНрд▓рд╛рд╕реЗрд╕ рдФрд░ рдЖрдкрдХреА рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓реНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП, рдкреНрд░реЛрдЧрд╛рд░реНрдб рдЖрдкрдХреЗ рдкреНрд░реЛрдЧреНрд░рд╛рдо ( рдмреАрдЬ ) рдХреЗ рд╕рднреА рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИред рджреВрд╕рд░реЗ рд╢рдмреНрджреЛрдВ рдореЗрдВ, рдпрд╣ рдЙрди рд╡рд░реНрдЧреЛрдВ рдФрд░ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рддрд╛ рд╣реИ рдЬрд┐рдиреНрд╣реЗрдВ рдмрд╛рд╣рд░ рд╕реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЬрд┐рдиреНрд╣реЗрдВ рдЫреБрдЖ рдирд╣реАрдВ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдлрд┐рд░, рдЦреЛрдЬреЗ рдЧрдП рдмреАрдЬреЛрдВ рдХреЗ рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рдкрд░, рдкреНрд░реЛрдЧрд╛рд░реНрдб рдЖрдкрдХреЗ рд╕рднреА рдХреЛрдб рдХреЛ рдкреБрди: рдЦреЛрдЬрддрд╛ рд╣реИ, рдЬреЛ "рдкрд╣реБрдВрдЪ" рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИред рдЕрдиреНрдп рд╕рднреА рдХреЛрдб рд╣рдЯрд╛ рджрд┐рдП рдЬрд╛рдПрдВрдЧреЗред рдЖрдкрдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдореЗрдВ рдХрдо рд╕реЗ рдХрдо рдПрдХ рдкреНрд░рд╡рд┐рд╖реНрдЯрд┐ рдмрд┐рдВрджреБ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рдПрдХ рдорд╛рдирдХ рдЬрд╛рд╡рд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд▓рд┐рдП, рдпрд╣ main рдХрд╛рд░реНрдп рд╣реИред рдПрдВрдбреНрд░реЙрдЗрдб рдореЗрдВ, рдкреНрд░реЛрдЧреНрд░рд╛рдо рдореЗрдВ рдХреЛрдИ рдПрдХрд▓ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБ рдирд╣реАрдВ рд╣реИ, рдЗрд╕рдХреЗ рдмрдЬрд╛рдп, рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдорд╛рдирдХ рдШрдЯрдХ (рдЧрддрд┐рд╡рд┐рдзрд┐, рд╕реЗрд╡рд╛, рдЖрджрд┐) рд╣реИрдВ рдЬреЛ рд╕рд┐рд╕реНрдЯрдо рджреНрд╡рд╛рд░рд╛ рдмрдирд╛рдП рдФрд░ рдмреБрд▓рд╛рдП рдЧрдП рд╣реИрдВред рд╕реМрднрд╛рдЧреНрдп рд╕реЗ, рд╣рдореЗрдВ рдЕрдкрдиреЗ рджрдо рдкрд░ рдпрд╣рд╛рдВ рдХреБрдЫ рднреА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рд╣рдорд╛рд░реЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдПрдЧрд╛ред


рд╕рд╛рдереА рдХреА рдлрд╛рдЗрд▓реЗрдВ


рд╕рднреА рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдХрд╛ рдкрддрд╛ рд▓рдЧрд╛рдиреЗ рдХреЗ рдмрд╛рдж, Proguard рдЙрдиреНрд╣реЗрдВ seeds.txt рдлрд╛рдЗрд▓ рдкрд░ seeds.txt ред


рд╕рднреА рдХреЛрдб рдЬреЛ рдХрд┐ рдЕрдирд╛рд╡рд╢реНрдпрдХ рдкрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ, usage.txt рдЙрдкрдпреЛрдЧ. usage.txt рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рд▓рд┐рдЦрд╛ рдЧрдпрд╛ рд╣реИред рд░рд┐рдореЛрдЯ рдХреЛрдб рд╡рд╛рд▓реА рдлрд╝рд╛рдЗрд▓ рдХреЗ рд▓рд┐рдП рдпрд╣ рдПрдХ рдЕрдЬреАрдм рдирд╛рдо рд╣реИ, рдЗрд╕реЗ рдЗрд╕реЗ рдлреЛрди рдХрд░рдирд╛ рд╕рд╣реА рд╣реЛрдЧрд╛ред рдЗрд╕реЗ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдХреНрдпрд╛ рд╣реИ, рдмрд╕ рдЗрд╕реЗ рдпрд╛рдж рд░рдЦреЗрдВред


mapping.txt рдЪрд░рдг рдкрд░, рдПрдХ mapping.txt рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рдИ рдЬрд╛рдПрдЧреА рдЬрд┐рд╕рдореЗрдВ рдЬреЛрдбрд╝реЗ рд╣реЛрдВрдЧреЗ <рдореВрд▓ рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо | рдлрд╝реАрд▓реНрдб> ->> <obfuscated рд╡рд░реНрдЧ рдХрд╛ рдирд╛рдо | рд╡рд┐рдзрд┐ | рдХреНрд╖реЗрддреНрд░> | рдпрд╣ рдлрд╝рд╛рдЗрд▓ рддрдм рдЙрдкрдпреЛрдЧреА рд╣реЛрддреА рд╣реИ рдЬрдм рдЖрдкрдХреЛ рдХрд┐рд╕реА рдкреНрд░реЛрдЧреНрд░рд╛рдо рдХреЛ рдбреАрдмреЙрдлрд╕реЗрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рд╕реНрдЯреИрдХрдЯреНрд░реЗрд╕ рдкрдврд╝реЗрдВред рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рдореИрдк рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдореЗрдВ рдорджрдж рдХреЗ рд▓рд┐рдП proguardui рдФрд░ proguardui рдЙрдкрдпреЛрдЧрд┐рддрд╛рдУрдВ рд╣реИрдВред рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдпрджрд┐ рдЖрдк рдлреИрдмреНрд░рд┐рдХ рдХреНрд░реИрд╢рд▓рд╛рдИрдЯрд┐рдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЙрдирдХреЗ рдЧреНрд░реЗрдбрд▓ рдкреНрд▓рдЧрдЗрди рд╕реНрд╡рддрдВрддреНрд░ рд░реВрдк рд╕реЗ рдЗрд╕ рдлрд╛рдЗрд▓ рдХреЛ рдХрдВрд╕реЛрд▓ рдореЗрдВ рдЦреЛрдЬ рдФрд░ рд▓реЛрдб рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЗрд╕рд▓рд┐рдП рдЖрдкрдХреЛ рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдЪрд┐рдВрддрд╛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИред


рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ, рдпреЗ рдлрд╛рдЗрд▓реЗрдВ рдЖрдорддреМрд░ рдкрд░ app/build/output/mapping/<product-flavor-name>/ ред


Proguard рднреА рдПрдХ dump.txt рдлрд╝рд╛рдЗрд▓ рдмрдирд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реЛрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧрд╛рд░реНрдб рдЕрдВрддрд┐рдо рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рд░рдЦрддрд╛ рд╣реИред рд╡рд╣ рдореЗрд░реЗ рд▓рд┐рдП рдХрднреА рдХрд╛рдо рдирд╣реАрдВ рдЖрдпрд╛, рд▓реЗрдХрд┐рди рд╢рд╛рдпрдж рдпрд╣ рдХрд┐рд╕реА рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧреА рд╣реЛрдЧрд╛ред


рдПрдВрдбреНрд░реЙрдЗрдб рдкрд░ рдЪреАрдЬреЗрдВ рдХреИрд╕реЗ рдЪрд▓ рд░рд╣реА рд╣реИрдВ


рдПрдВрдбреНрд░реЙрдЗрдб рдЧреНрд░реИрдбрд▓ рдкреНрд▓рдЧрд┐рди рдЕрдкрдиреЗ рджрдо рдкрд░ рдкреНрд░реЛрдЧрд╛рд░реНрдб рдЪрд▓рд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдмрд╕ рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рд╣реИ рдФрд░ рдХреЙрдиреНрдлрд┐рдЧ рдлрд╛рдЗрд▓реЛрдВ рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдирд╛ рд╣реИред


 buildTypes { <...> release { minifyEnabled true proguardFiles 'proguard-rules.pro', getDefaultProguardFile('proguard-android.txt') } } 

minifyEnabled true - рдмрд┐рд▓реНрдб рд╕рдордп рдкрд░ Proguard рдХреЛ рд╕рдХреНрд╖рдо рдХрд░реЗрдВ


proguardFiles - рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреА рдПрдХ рд╕реВрдЪреАред рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдлрд╝рд╛рдЗрд▓реЛрдВ рдХреЗ рдирд┐рдпрдо рд╕рд╛рдорд╛рдиреНрдп рд╕реВрдЪреА рдореЗрдВ рдЙрдирдХреЗ рджреНрд╡рд╛рд░рд╛ рджрд┐рдЦрд╛рдИ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдХреНрд░рдо рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЬрд╛рдПрдВрдЧреЗред


proguard-rules.pro рдкреНрд░реЛрдЬреЗрдХреНрдЯ-рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд┐рдпрдореЛрдВ рдХреЗ рд╕рд╛рде рд╣рдорд╛рд░реА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╝рд╛рдЗрд▓ рд╣реИ


getDefaultProguardFile('proguard-android.txt') - рдПрдХ рдлрд╝рдВрдХреНрд╢рди рдЬреЛ рдПрдВрдбреНрд░реЙрдЗрдб рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЗ рд▓рд┐рдП рдорд╛рдирдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдлрд╝рд╛рдЗрд▓ рд▓реМрдЯрд╛рддрд╛ рд╣реИред рдпрд╣ AndroidSDK/tools/proguard рдореЗрдВ рдирд┐рд╣рд┐рдд рд╣реИ


рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ, рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рдХреЗ рдкрд╛рд╕ рджреЛ proguard-android.txt : proguard-android.txt рдФрд░ proguard-android-optimize.txt ред рдкрд╣рд▓реЗ рд╡рд╛рд▓реЗ рдХреЗ рдкрд╛рд╕ -dontoptimize рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЬреЛ рд╕рднреА рдЕрдиреБрдХреВрд▓рди рдмрдВрдж рдХрд░ рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдЖрдк рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рджреВрд╕рд░реЗ рдХреЙрдиреНрдлрд┐рдЧрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред


рдЗрди рдорд╛рдирдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рдиреЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, Android SDK (aapt) рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рд╕рдВрд╕рд╛рдзрдиреЛрдВ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдореЛрдВ рдХрд╛ рдПрдХ рд╕реЗрдЯ рдЙрддреНрдкрдиреНрди рдХрд░рддрд╛ рд╣реИ: aapt рд╕рднреА рдЧрддрд┐рд╡рд┐рдзрд┐, рд╕реЗрд╡рд╛рдУрдВ, рд╡рд┐рдЪрд╛рд░реЛрдВ рдЖрджрд┐ рдХреЛ рдЦреЛрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рд╕рднреА xml рдлрд╝рд╛рдЗрд▓реЛрдВ (рдкреНрд░рдХрдЯ рд╕рд╣рд┐рдд) рдХреА рдЬрд╛рдБрдЪ рдХрд░рддрд╛ рд╣реИред рдФрд░ рдЙрдирдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдирд┐рдпрдо рдЙрддреНрдкрдиреНрди рдХрд░реЗрдВред рдЙрддреНрдкрдиреНрди рдирд┐рдпрдореЛрдВ рдХреЛ app/build/intermediates/proguard-rules/<flavor>/aapt_rules.txt рдореЗрдВ рдкрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдЖрдкрдХреЛ рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдПрдВрдбреНрд░реЙрдЗрдб рдЧреНрд░реИрдбрд▓ рдкреНрд▓рдЧрд┐рди рдЗрди рдирд┐рдпрдореЛрдВ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдЬреЛрдбрд╝ рджреЗрдЧрд╛ред


рдЬреЗрдм рдЦреЛрдЬ рдЖрд╡реЗрджрди рд╕реЗ рдЫрд╡рд┐, рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд╕реВрдЪреА
(рдЬреЗрдм рд╡реЗрдпрд░ рдкреНрд░рд╕реНрддреБрддрд┐ рд╕реЗ рдЫрд╡рд┐, рд▓реЗрдЦ рдХреЗ рдЕрдВрдд рдореЗрдВ рд▓рд┐рдВрдХ)


рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди


рдкреНрд░реЛрдЧрд╛рд░реНрдб рд╕реНрдерд╛рдкрд┐рдд рдХрд░рдирд╛ рдЗрд╕рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рд╕рдмрд╕реЗ рдмреБрдирд┐рдпрд╛рджреА рд╣рд┐рд╕реНрд╕рд╛ рд╣реИ рдФрд░ рд╕рд╛рде рд╣реА рд╕рдмрд╕реЗ рдХрдард┐рди рднреАред рдПрдХ рдЧрд▓рдд рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдЖрд╕рд╛рдиреА рд╕реЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рд╕рдВрдХрд▓рди рдФрд░ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХреЛ рд░рдирдЯрд╛рдЗрдо рдореЗрдВ рдЖрд╕рд╛рдиреА рд╕реЗ рддреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рд╕рднреА рдЙрдкрд▓рдмреНрдз рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреЛ рдмрдВрдж рдкрд░ рд╡рд┐рд╕реНрддрд╛рд░ рд╕реЗ рдкреНрд░рд▓реЗрдЦрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рд╡реЗрдмрд╕рд╛рдЗрдЯред


рд╕рднреА рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ, рдореИрдВ 3 рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╕рдореВрд╣реЛрдВ рдХреЛ рдПрдХрд▓ рдХрд░реВрдБрдЧрд╛:


  • рдирд┐рдпрдо рд░рдЦреЗрдВ - рдХрд╛рд░реНрдпрдХреНрд░рдо рдХреЗ рд╕рднреА рд╕рдВрднрд╛рд╡рд┐рдд рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБред рдпрд╣ рдмрддрд╛рдиреЗ рдХрд╛ рдирд┐рдпрдо рдХрд┐ рдХреМрди рд╕реЗ рд╡рд░реНрдЧ рдпрд╛ рдХреМрди рд╕реЗ рд╡рд░реНрдЧ рдЕрдкрд░рд┐рд╡рд░реНрддрд┐рдд рд░рд╣рддреЗ рд╣реИрдВ рдпрд╛ рдХреМрди рд╕реЗ рд╕рдВрд╢реЛрдзрди рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдорд╛рдиреНрдп рд╣реИрдВред
  • рдЕрдиреБрдХреВрд▓рди рдЯреНрдпреВрдирд┐рдВрдЧ - рдЗрдВрдЧрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдХреМрди рд╕реА рдЕрдиреБрдХреВрд▓рди рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИрдВ, рдХрд┐рддрдиреЗ рдЕрдиреБрдХреВрд▓рди рдЪрдХреНрд░реЛрдВ рдХреЛ рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред
  • рдЪреЗрддрд╛рд╡рдирд┐рдпреЛрдВ, рддреНрд░реБрдЯрд┐рдпреЛрдВ рдФрд░ рдбрд┐рдмрдЧрд┐рдВрдЧ рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░реЗрдВ

рдирд┐рдпрдо рдмрдирд╛рдП рд░рдЦреЗрдВ


рдпрд╣ рдЖрдкрдХреЗ рдХреЛрдб рдХреЛ рдирд┐рд░реНрджрдпреА рд░рдХреНрд╖рдХ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдбрд┐рдЬрд╝рд╛рдЗрди рдХрд┐рдП рдЧрдП рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдПрдХ рд╕рдореВрд╣ рд╣реИред рдЕрдкрдиреЗ рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд░реВрдк рдореЗрдВ, рдпрд╣ рдирд┐рдпрдо рдЗрд╕ рддрд░рд╣ рджрд┐рдЦрддрд╛ рд╣реИ:


 -keep [,modifier,...] class_specification 

keep рдЗрди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рд╕реЗ рд╕рдмрд╕реЗ рдЖрдо рд╣реИ (рдЕрдиреНрдп рднреА рд╣реИрдВ), рдкреНрд░реЛрдЧрд░реНрдб рдХреЛ рдЦреБрдж рдХреЛ рдФрд░ рдЙрд╕рдХреЗ рд╕рднреА рд╡рд░реНрдЧ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣ рд░рд╣рд╛ рд╣реИ: рдлрд╝реАрд▓реНрдб рдФрд░ рд╡рд┐рдзрд┐рдпрд╛рдБред


class_specification - рд╡рд░реНрдЧ (рдиреЛрдВ) рдпрд╛ рдЙрд╕рдХреЗ рднрд╛рдЧреЛрдВ (рд╡рд░реНрдЧ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ) рдХреА рдУрд░ рдЗрд╢рд╛рд░рд╛ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЯреЗрдореНрдкрд▓реЗрдЯред рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рд╕рд╛рдорд╛рдиреНрдп рджреГрд╢реНрдп рдмрд╣реБрдд рдмрдбрд╝рд╛ рд╣реИ, рдЗрд╕реЗ рдмрдВрдж рджреЗрдЦрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рд▓реЗрдЦрди ред рдЖрдк рдЙрд╕рд╕реЗ рд╕рдВрдкрд░реНрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рд╕рд╛рдорд╛рдиреНрдп рддреМрд░ рдкрд░, рдЖрдк рдмрд╕ рдпрд╣ рдпрд╛рдж рд░рдЦ рд╕рдХрддреЗ рд╣реИрдВ рдХрд┐ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рдЗрди рдШрдЯрдХреЛрдВ рдХрд╛ рдЦрд╛рдХрд╛ рддреИрдпрд╛рд░ рдХрд░рдиреЗ рдХрд╛ рдЕрд╡рд╕рд░ рд╣реИ:


  • рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо, рдкреИрдХреЗрдЬ рдХреЗ рд╕рд╛рде рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
  • рдЙрди рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ рдЬреЛ рдХреБрдЫ рд╡рд░реНрдЧреЛрдВ / рдЗрдВрдЯрд░рдлреЗрд╕реЛрдВ рдХреЛ рдЗрдирд╣реЗрд░рд┐рдЯ / рд▓рд╛рдЧреВ рдХрд░рддреЗ рд╣реИрдВ
  • рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕рдВрд╢реЛрдзрдХ рдФрд░ / рдпрд╛ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдПрдиреЛрдЯреЗрд╢рди рд╡рд╛рд▓реЗ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
  • рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо, рд╕рдВрд╢реЛрдзрдХ, рддрд░реНрдХ рдФрд░ рд╡рд╛рдкрд╕реА рдореВрд▓реНрдп рдХреЗ рд╕рд╛рде рд╕рднреА рддрд░реАрдХреЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ
  • рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкреНрд░рдХрд╛рд░ рдХреЗ рдПрдХ рд╡рд┐рд╢рд┐рд╖реНрдЯ рдирд╛рдо, рд╕рдВрд╢реЛрдзрдХ рдХреЗ рд╕рд╛рде рд╕рднреА рдХреНрд╖реЗрддреНрд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред
  • рд╡рд╛рдЗрд▓реНрдбрдХрд╛рд░реНрдб рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ


    рдПрдХ рдмрд╛рд░ рдлрд┐рд░, рдпрд╣ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХрд╛ рд╕рдЦреНрдд рд╡рд┐рд╡рд░рдг рдирд╣реАрдВ рд╣реИ, рдмрд▓реНрдХрд┐ рдпрд╣ рдЙрди рд╡рд┐рд╢реЗрд╖рддрд╛рдУрдВ рдХреА рдПрдХ рд╕реВрдЪреА рд╣реИ рдЬреЛ рд╣рдорд╛рд░реЗ рдкрд╛рд╕ рд╣реИрдВред рдпрд╣рд╛рдБ рдХреБрдЫ рдЙрджрд╛рд╣рд░рдг рд╣реИрдВ:



-keep public class com.example.MyActivity
рд╕рд╣реЗрдЬреЗрдВ рд╡рд░реНрдЧ com.example.MyActivity


-keep public class * extends android.app.Activity
android.app.Activity рд╡рд┐рд░рд╛рд╕рдд рдореЗрдВ рдорд┐рд▓реА рд╕рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдмрдЪрд╛рдПрдВ


 -keep public class * extends android.view.View { public <init>(android.content.Context); public <init>(android.content.Context, android.util.AttributeSet); public <init>(android.content.Context, android.util.AttributeSet, int); public void set*(...); } 

рд╕рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдХреНрд▓рд╛рд╕реЗрд╕ рдвреВрдВрдвреЗрдВ рдЬреЛ android.view.View рдЗрдирд╣реЗрд░рд┐рдЯ рдХрд░рддреА рд╣реИрдВ рдФрд░ 3 рдХрдВрд╕реНрдЯреНрд░рдХреНрдЯрд░реЛрдВ рдХреЛ рдЙрдирдореЗрдВ рдХреБрдЫ рдирд┐рд╢реНрдЪрд┐рдд рдорд╛рдкрджрдВрдбреЛрдВ рдХреЗ рд╕рд╛рде рд╕рд╣реЗрдЬрддреА рд╣реИрдВ + рд╕рднреА рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рд╡рд┐рдзрд┐рдпрд╛рдБ, void рд╕рдВрд╢реЛрдзрдХ, рдХрд┐рд╕реА рднреА рддрд░реНрдХ рдФрд░ set рд╕рд╛рде рд╢реБрд░реВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдирд╛рдо рдХреЗ рд╕рд╛рдеред рдХрдХреНрд╖рд╛ рдХреЗ рдЕрдиреНрдп рд╕рднреА рднрд╛рдЧреЛрдВ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред


-keep class com.habr.** { *; }
com.habr рдкреИрдХреЗрдЬ рдореЗрдВ рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдФрд░ рдЙрдирдХреА рд╕рднреА рд╕рд╛рдордЧреНрд░рд┐рдпреЛрдВ рдХреЛ com.habr


modifiers - рдЗрд╕рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдирд┐рдпрдо:


  • includedescriptorclasses / рд╡рд░реНрдЧ / рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЖрдкрдХреЛ рдЙрди рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рдмрдЪрд╛рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИ рдЬреЛ рдЙрдирдХреЗ рд╡рд┐рд╡рд░рдгрдХреЛрдВ рдореЗрдВ рдкрд╛рдП рдЬрд╛рддреЗ рд╣реИрдВред
  • includecode - рдЗрд╕ рд╡рд┐рд╢реЗрд╖ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдмрддрд╛рдИ рдЧрдИ рд╡рд┐рдзрд┐ рдХреА рд╕рд╛рдордЧреНрд░реА рдХреЛ рднреА рдирд╣реАрдВ рдЫреБрдЖ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • allowshrinking - рдЗрд╕ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рдХрдХреНрд╖рд╛рдПрдВ рдмреАрдЬ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдХреЗрд╡рд▓ рдЕрдЧрд░ рд╡реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╣реА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЕрдЧрд░ рдХреЛрдбреЗрд╢реНрд░рд┐рдВрдХ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж рдпрд╣ рдХреЛрдб рдмрдирд╛ рд░рд╣рддрд╛ рд╣реИ (рдЗрд╕ рддрдереНрдп рдХреЗ рдХрд╛рд░рдг рдХрд┐ рдХреЛрдИ рд╡реНрдпрдХреНрддрд┐ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ), рддреЛ рдЗрд╕ рдХреЛрдб рдХреЛ рдЕрдиреБрдХреВрд▓рд┐рдд / рдмрд╛рдзрд┐рдд рдХрд░рдирд╛ рдЕрд╕рдВрднрд╡ рд╣реИред
  • allowoptimization - рдЗрд╕ рдирд┐рдпрдо рдХреЗ рджреНрд╡рд╛рд░рд╛ рд╕рдВрджрд░реНрднрд┐рдд рд╡рд░реНрдЧреЛрдВ рдХреЛ рдХреЗрд╡рд▓ рдЕрдиреБрдХреВрд▓рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╣рдЯрд╛рдпрд╛ рдпрд╛ allowoptimization рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред
  • allowobfuscation - рдЗрд╕ рдирд┐рдпрдо рджреНрд╡рд╛рд░рд╛ рдЗрдВрдЧрд┐рдд рдХреА рдЧрдИ рдХрдХреНрд╖рд╛рдПрдВ рдХреЗрд╡рд▓ allowobfuscation рдЬрд╛ рд╕рдХрддреА рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЙрдиреНрд╣реЗрдВ рд╣рдЯрд╛рдпрд╛ рдпрд╛ рдЕрдиреБрдХреВрд▓рд┐рдд рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред

keep рдЕрд▓рд╛рд╡рд╛, рдХреБрдЫ рдФрд░ рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ:


-keepclassmembers - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рд╡рд░реНрдЧ рдХреЗ рд╕рджрд╕реНрдпреЛрдВ рдХреЛ рдмрдЪрд╛рдпрд╛ рдЬрд╛рдирд╛ рдЪрд╛рд╣рд┐рдП рдпрджрд┐ рдХреЛрдб рд╕рд┐рдХреБрдбрд╝рдиреЗ рдХреЗ рдмрд╛рдж рд╕реНрд╡рдпрдВ рдХрдХреНрд╖рд╛ рд╕рдВрд░рдХреНрд╖рд┐рдд рд╣реИред


-keepclasseswithmembers - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЙрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рд╕рд╣реЗрдЬрдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рдЬрд┐рдирдХреА рд╕рд╛рдордЧреНрд░реА рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдЯреЗрдореНрдкрд▓реЗрдЯ рдХреЗ рдЕрдВрддрд░реНрдЧрдд рдЖрддреА рд╣реИред рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, -keepclasseswithmembers class * { public <init>(android.content.Context); } -keepclasseswithmembers class * { public <init>(android.content.Context); } - рдЙрди рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ рдЬрд┐рдирдХреЗ рдкрд╛рд╕ рдПрдХ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдПрдХ Context рд╕рд╛рде рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдирд┐рд░реНрдорд╛рддрд╛ рд╣реИред


-keepnames - рд╢реЙрд░реНрдЯ рдлреЙрд░- -keep,allowshrinking ред


-keepclassmembernames - рд╢реЙрд░реНрдЯрд╣реИрдВрдб for -keepclassmembers,allowshrinking ред


keepclasseswithmembernames - рд▓рдШреБ- -keepclasseswithmembers,allowshrinking ред


рдЕрдиреБрдХреВрд▓рди рдЯреНрдпреВрдирд┐рдВрдЧ


рдпрд╣рд╛рдВ рд╕рдмрд╕реЗ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рдХрд▓реНрдк -dontoptimize рдзреНрд╡рдЬ рд╣реИред рдпрджрд┐ рдпрд╣ рдореМрдЬреВрдж рд╣реИ, рддреЛ рдХреЛрдИ рдЕрдиреБрдХреВрд▓рди рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдФрд░ рдЕрдиреНрдп рд╕рднреА рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдЕрдирджреЗрдЦреА рдХреА рдЬрд╛рдПрдЧреАред


рдХрдИ рдЕрдиреБрдХреВрд▓рди рд╡рд┐рдХрд▓реНрдк рд╣реИрдВ, рд▓реЗрдХрд┐рди рдирд┐рдореНрдирд▓рд┐рдЦрд┐рдд рдореЗрд░реЗ рд▓рд┐рдП рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рд╣реИрдВ:


-optimizations optimization_filter - рдЙрди рд╕рднреА рддрд░реАрдХреЛрдВ рдХреЛ рд╕реВрдЪреАрдмрджреНрдз рдХрд░рдирд╛ рдЬреЛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВред proguard-android-optimize.txt рдпрд╛ рдЗрд╕рдХреЗ рд╕рдмрд╕реЗрдЯ рдореЗрдВ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рд╕реЗрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рд╕рднреА рдЕрдиреБрдХреВрд▓рди рдХреА рд╕реВрдЪреА рдпрд╣рд╛рдВ рдкрд╛рдИ рдЬрд╛ рд╕рдХрддреА рд╣реИ ред


-optimizationpasses n - рдЕрдиреБрдХреВрд▓рди рдЪрдХреНрд░реЛрдВ рдХреА рд╕рдВрдЦреНрдпрд╛ред рдХрдИ рдЪрдХреНрд░ рдкрд░рд┐рдгрд╛рдо рдореЗрдВ рд╕реБрдзрд╛рд░ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рдЙрд╕реА рд╕рдордп, рдкреНрд░реЛрдЧрд╛рд░реНрдб рдЪрдХреНрд░реЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рд╕реНрдорд╛рд░реНрдЯ рд╣реИ рдЕрдЧрд░ рдпрд╣ рджреЗрдЦрддрд╛ рд╣реИ рдХрд┐ рдкрд░рд┐рдгрд╛рдо рдкрд┐рдЫрд▓реА рдмрд╛рд░ рд╕реЗ рд╕реБрдзрд╛рд░ рдирд╣реАрдВ рд╣реБрдЖ рд╣реИред


-assumenosideeffects class_specification - рдЗрдВрдЧрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕ рдкрджреНрдзрддрд┐ рдХрд╛ рдХреЛрдИ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдирд╣реАрдВ рд╣реИ рдФрд░ рдХреЗрд╡рд▓ рдХреБрдЫ рдореВрд▓реНрдп рджреЗрддрд╛ рд╣реИред рдпрджрд┐ рдпрд╣ рдкрддрд╛ рд▓рдЧрд╛рддрд╛ рд╣реИ рдХрд┐ рд░рд┐рдЬрд▓реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЧрд╛рд░реНрдб рдЗрд╕ рд╡рд┐рдзрд┐ рд╕реЗ рдХреЙрд▓ рд╣рдЯрд╛ рджреЗрдЧрд╛ред рд╢рд╛рдпрдж рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХрд╛ рд╕рдмрд╕реЗ рдЖрдо рдЙрдкрдпреЛрдЧ рд╕рднреА рдбрд┐рдмрдЧ рд▓реЙрдЧ рдХреЛ рд╣рдЯрд╛рдирд╛ рд╣реИ: -assumenosideeffects class android.util.Log { public static int d(...); } -assumenosideeffects class android.util.Log { public static int d(...); }


-allowaccessmodification - рд╡рд╣ рд╕рдм рдХреБрдЫ рд╣реИ рдЬреЛ рдЫрд┐рдкрд╛ рд╣реБрдЖ рд╣реИ :) рдПрдХ рдмрдврд╝рд┐рдпрд╛ рд╡рд┐рдХрд▓реНрдк рдЬреЛ рдЖрдкрдХреЛ рдиреЗрд╕реНрдЯреЗрдб рд╡рд░реНрдЧреЛрдВ рдХреЗ рд▓рд┐рдП рдХреГрддреНрд░рд┐рдо рдЧреМрдг рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЗ рдПрдХ рд╕рдореВрд╣ рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред рдХреЗрд╡рд▓ -repackageclasses рдХреЗ рд╕рд╛рде рд╕рдВрдпреЛрдЬрди рдХреЗ рд░реВрдк рдореЗрдВ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ


-repackageclasses - -repackageclasses рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдХреЛ рдПрдХ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдкреИрдХреЗрдЬ рдореЗрдВ рд▓реЗ рдЬрд╛рдиреЗ рдХреА -repackageclasses ред рдпрд╣ рдУрдлрд╝реНрдлрд╝реНрдпреВрд╢рди рдкрд░ рдЕрдзрд┐рдХ рд▓рд╛рдЧреВ рд╣реЛрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рдЕрдиреБрдХреВрд▓рди рдореЗрдВ рдЕрдЪреНрдЫреЗ рдкрд░рд┐рдгрд╛рдо рджреЗрддрд╛ рд╣реИред


рдЕрдиреНрдп рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк


-dontwarn рдФрд░ -dontnote


Proguard рдмрд╣реБрдд рд╕реНрдорд╛рд░реНрдЯ рд╣реИ рдФрд░ рд╣рдореЗрд╢рд╛ рдХреЛрдб рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдХреЗ рджреМрд░рд╛рди рд╕рдВрджрд┐рдЧреНрдз рд╕реНрдерд╛рдиреЛрдВ рдХреА рд░рд┐рдкреЛрд░реНрдЯ рдХрд░рддрд╛ рд╣реИ, рдХрднреА-рдХрднреА рдпреЗ рдиреЛрдЯ рд╣реЛрддреЗ рд╣реИрдВ, рдХрднреА-рдХрднреА рдЪреЗрддрд╛рд╡рдиреАред рдпрджрд┐ рдЖрдкрдХрд╛ рдмрд┐рд▓реНрдб рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХреЗ рд╕рд╛рде рдирд╣реАрдВ рдЪрд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВ рдХрд┐ рдЬреЛ рднреА рдЙрддреНрдкрд╛рджрди рдХрд░рддрд╛ рд╣реИ, рдЙрд╕реЗ рдкрдврд╝реЗрдВ, рдпрд╣ рд▓рд┐рдЦреЗрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЧрд▓рдд рд╣реБрдЖ рдФрд░ рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдпрд╣рд╛рдВ рддрдХ тАЛтАЛрдХрд┐ рдпрд╣ рднреА рдмрддрд╛рддрд╛ рд╣реИ рдХрд┐ рдЗрд╕реЗ рдХреИрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЬрд╛рдПред рд╕рднреА рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдкрдврд╝рдиреЗ рдХреЗ рдмрд╛рдж, рдЖрдк рдпрд╛ рддреЛ рд╕рдорд╕реНрдпрд╛ рдХреЛ рдареАрдХ рдХрд░рддреЗ рд╣реИрдВ рдпрд╛ рдЗрдирдореЗрдВ рд╕реЗ рдХрд┐рд╕реА рдПрдХ рд╡рд┐рдХрд▓реНрдк рдХреЗ рд╕рдВрджреЗрд╢ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рддреЗ рд╣реИрдВ рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдХреЛрдИ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реИред


рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП, рдРрд╕рд╛ рд╣реЛрддрд╛ рд╣реИ рдХрд┐ рдХреБрдЫ рдЬрд╛рд╡рд╛ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдкреНрд▓реЗрдЯрдлрд╝реЙрд░реНрдо рдХрдХреНрд╖рд╛рдУрдВ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреА рд╣реИ рдЬреЛ android.jar рдореЗрдВ рдирд╣реАрдВ рд╣реИрдВ рдФрд░ рдкреНрд░реЛрдЧрд╛рд░реНрдб рдЗрд╕ рдмрд╛рд░реЗ рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗрдВрдЧреЗред рдпрджрд┐ рдЖрдк рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рд╣реИрдВ рдХрд┐ рдпрд╣ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдПрдВрдбреНрд░реЙрдЗрдб рд╡рд╛рддрд╛рд╡рд░рдг рдореЗрдВ рдареАрдХ рдХрд╛рдо рдХрд░рддреА рд╣реИ, рддреЛ рдЖрдк рдЗрд╕ рдЪреЗрддрд╛рд╡рдиреА рдХреЛ рдмрдВрдж рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ -dontwarn java.lang.management.**


-whyareyoukeeping class_specification рдПрдХ рдЙрдкрдпреЛрдЧреА рд╡рд┐рдХрд▓реНрдк рд╣реИ рдЬреЛ рдЗрд╕ рдХрд╛рд░рдг рдХреЛ рдЫрд╛рдкреЗрдЧрд╛ рдХрд┐ рдкреНрд░рд╛рдЧрд╛рд░реНрдб рдиреЗ рдЗрд╕ рд╡рд░реНрдЧ рдпрд╛ рдкрджреНрдзрддрд┐ рдХреЛ рдЫреВрдиреЗ рдХрд╛ рдлреИрд╕рд▓рд╛ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд┐рдпрд╛ред


-verbose - рдЕрдзрд┐рдХ рд╡рд┐рд╕реНрддреГрдд рд▓реЙрдЧ рдФрд░ рдЕрдкрд╡рд╛рдж рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ


-printconfiguration - рдЙрдкрдпреЛрдЧ рдХреА рдЧрдИ рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧ рдлрд╛рдЗрд▓реЛрдВ рд╕реЗ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХреА рдПрдХ рдкреВрд░реА рд╕реВрдЪреА рдкреНрд░рд┐рдВрдЯ рдХрд░реЗрдВ, рдЬрд┐рд╕рдореЗрдВ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рд╕реЗ рдирд┐рдпрдо рд╢рд╛рдорд┐рд▓ рд╣реИрдВ рдФрд░ aapt рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЙрддреНрдкрдиреНрди рд╣реБрдП рд╣реИрдВред


-keepattributes SourceFile, LineNumberTable - рдЖрдИрдбреАрдИ рдореЗрдВ рдХреЛрдб рдХреЛ рдбреАрдмрдЧ рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реЛрдиреЗ рдХреЗ рд▓рд┐рдП рдореЗрдЯрд╛-рд╕реВрдЪрдирд╛ (рдлрд╝рд╛рдЗрд▓ рдирд╛рдо, рд▓рд╛рдЗрди рдирдВрдмрд░рд┐рдВрдЧ) рдХреЛ рдмрдЪрд╛рддрд╛ рд╣реИ рдФрд░ рд╕рд╛рд░реНрдердХ рд╕реНрдЯреИрдЪреНрд░реЗрд╕ рдкреНрд░рд╛рдкреНрдд рдХрд░рддрд╛ рд╣реИред рдЗрд╕ рд╡рд┐рдХрд▓реНрдк рдХреЛ рдЬреЛрдбрд╝рдирд╛ рд╕реБрдирд┐рд╢реНрдЪрд┐рдд рдХрд░реЗрдВред


рдЕрднреНрдпрд╛рд╕


рдпрд╣ рдЖрдорддреМрд░ рдкрд░ рд╣реЛрддрд╛ рд╣реИ: рдкреНрд░реЛрдЧрд╛рд░реНрдб рдЪрд╛рд▓реВ рдХрд░реЗрдВ рдФрд░ рдпрд╣ рдЖрдкрдХреЛ рдПрдХ рдЯрди рддреНрд░реБрдЯрд┐рдпрд╛рдВ рджреЗрдиреЗ рд╡рд╛рд▓реА рдкреВрд░реА рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЛ рддреЛрдбрд╝ рджреЗрддрд╛ рд╣реИред рдЗрд╕ рдХрджрдо рдкрд░ рдХрдИ рд▓реЛрдЧ рдЧрд╛рд░реНрдб рдХреЛ рдмрдВрдж рдХрд░ рджреЗрддреЗ рд╣реИрдВ рдФрд░ рдХреЛрд╢рд┐рд╢ рдХрд░рддреЗ рд╣реИрдВ рдХрд┐ рд╡рд╣ рд╡рд╛рдкрд╕ рди рд▓реМрдЯреЗред рдореИрдВ рдЗрд╕ рд╕рдВрдХреНрд░рдордг рдкреНрд░рдХреНрд░рд┐рдпрд╛ рдХреЛ рдЖрд╕рд╛рди рдмрдирд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХрд░реВрдВрдЧрд╛ред


рдкреНрд░рд╛рд░рдВрднрд┐рдХ рдкреНрд░рд╡реЗрд╢ рдмрд┐рдВрджреБрдУрдВ рдкрд░ рдирд┐рд░реНрдгрдп рд▓реЗрдВ


рдпрджрд┐ рдЖрдк рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рдбреЗрд╡рд▓рдкрд░ рд╣реИрдВ, рддреЛ рд╕рдм рдХреБрдЫ рдмреЗрд╣рдж рдкреНрд░рд╛рдердорд┐рдХ рд╣реИ - рдмрд╕ рдПрдВрдбреНрд░реЙрдЗрдб рдПрд╕рдбреАрдХреЗ рд╕реЗ рджреЛ рдорд╛рдирдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВ: proguard-android-optimize.txt рдпрд╛ proguard-android-optimize.txt ред рд╡реЗ рдЙрди рд╕рднреА рдЪреАрдЬреЛрдВ рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВрдЧреЗ рдЬреЛ рдЕрдЫреВрддреА рд░рд╣рдиреА рдЪрд╛рд╣рд┐рдПред


рд╕рднреА рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ


рд╣рд╛рд▓ рд╣реА рдореЗрдВ, рдЕрдзрд┐рдХ рд╕реЗ рдЕрдзрд┐рдХ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЛ рддреИрдпрд╛рд░ рдХрд┐рдП рдЧрдП рдкреНрд░реЛрдЧрд╛рд░реНрдб-рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЗ рд╕рд╛рде рд╡рд┐рддрд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИред рдЧрд╛рд░реНрдб рд╕рдВрдЧреНрд░рд╣ рдХреЗ рдЕрдВрджрд░ рджреЗрдЦ рд╕рдХрддрд╛ рд╣реИ, рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЙрдиреНрдлрд┐рдЧрд░ рдвреВрдВрдв рд╕рдХрддрд╛ рд╣реИ рдФрд░ рдЗрд╕реЗ рдЕрдиреНрдп рд╡рд┐рдХрд▓реНрдкреЛрдВ рдореЗрдВ рдЬреЛрдбрд╝ рд╕рдХрддрд╛ рд╣реИред рдкреНрд░рддреНрдпреЗрдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреА рдЬрд╛рдБрдЪ рдХрд░реЗрдВ рдЬреЛ рдЖрдк рдЗрд╕ рддрд░рд╣ рдХреЗ рдПрдХ рд╡рд┐рдиреНрдпрд╛рд╕ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред


(рдиреЛрдЯреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рдЕрдирд╛рд░ рдлрд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА)
(рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдореЗрдВ рд╕реЗ рдПрдХ рдХреА рдЕрдирд╛рд░ рдлрд╛рдЗрд▓ рдХреА рд╕рд╛рдордЧреНрд░реА)


рдпрджрд┐ рдЖрдк Google Play Services рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ com.google.gms.google-services рдкреНрд▓рдЧрдЗрди рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХрд╛ рдЪрдпрди рдХрд░реЗрдЧрд╛ред


рдпрджрд┐ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд▓реЗрдЦрдХ рд╕рдВрдЧреНрд░рд╣ рдореЗрдВ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдкреИрдХ рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рд╢рд╛рдпрдж рдЙрдиреНрд╣реЛрдВрдиреЗ рдзреНрдпрд╛рди рд░рдЦрд╛ рдФрд░ рдЕрдкрдиреА рд╡реЗрдмрд╕рд╛рдЗрдЯ рдкрд░, рд░рд┐рдкреЙрдЬрд┐рдЯрд░реА рдкреЗрдЬ рдкрд░ рдпрд╛ рдЖрд░рдИрдПрдбреАрдПрдордИ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдирд┐рдпрдореЛрдВ рдХреЛ рд▓рд┐рдЦрд╛ред рдЙрд╕ рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЗ рд╕рдВрд╕реНрдХрд░рдг рдХреЗ рд▓рд┐рдП рд╕реНрд╡рдпрдВ рдХреЛ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ рдЬрд┐рд╕рдХрд╛ рдЖрдк рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣реЗ рд╣реИрдВред


рдпрджрд┐ рдЖрдкрдХреЛ рдХрд╣реАрдВ рднреА рдХреЛрдИ рднреА рддреИрдпрд╛рд░ рдирд┐рдпрдо рдирд╣реАрдВ рдорд┐рд▓ рд░рд╣рд╛ рд╣реИ, рддреЛ рдЖрдкрдХреЛ рд▓реЙрдЧ рдХреЛ рдкрдврд╝рдирд╛ рд╣реЛрдЧрд╛ рдФрд░ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╡реНрдпрдХреНрддрд┐рдЧрдд рд░реВрдк рд╕реЗ рд╣рд▓ рдХрд░рдирд╛ рд╣реЛрдЧрд╛ред рд╕рдмрд╕реЗ рдЕрдзрд┐рдХ рд╕рдВрднрд╛рд╡рдирд╛ рд╣реИ, рдЖрдкрдХреЛ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛрдб рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рдмрдирд╛рдП рд░рдЦрдирд╛ рд╣реЛрдЧрд╛ рдЬреЛ рдЯреВрдЯ рдЧрдпрд╛ рд╣реИред рдпрд╛ рддреНрд░реБрдЯрд┐рдпреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░реЗрдВ рдпрджрд┐ рд╡реЗ рдХрд╛рд░реНрдпрдХреНрд░рдо рдореЗрдВ рд╣рд╕реНрддрдХреНрд╖реЗрдк рдирд╣реАрдВ рдХрд░рддреЗ рд╣реИрдВред


рдЕрдкрдиреЗ рдХреЛрдб рдХрд╛ рдирд┐рд░реАрдХреНрд╖рдг рдХрд░реЗрдВ


рдЖрдк рдмреЗрд╣рддрд░ рдЬрд╛рдирддреЗ рд╣реИрдВ рдХрд┐ рдЖрдк рдЪрд╛рдХреВ рдХреЗ рдиреАрдЪреЗ рдХреМрди рд╕рд╛ рдХреЛрдб рднреЗрдЬ рд╕рдХрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЖрдкрдХреЛ рдЙрди рд╕рднреА рд╕реНрдерд╛рдиреЛрдВ рдХреЛ рдзреНрдпрд╛рди рд╕реЗ рджреЗрдЦрдирд╛ рдЪрд╛рд╣рд┐рдП, рдЬрд╣рд╛рдБ рдкреНрд░рддрд┐рдмрд┐рдВрдм рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ:


  • Class.forName (...) (рдкреНрд░рд▓реЗрдЦрди рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреНрд░рд╛рдЧрд╛рд░реНрдб рдРрд╕реЗ рдХреЛрдб рдХреЛ рдкрд░рд┐рднрд╛рд╖рд┐рдд рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдРрд╕реЗ рдорд╛рдорд▓реЗ рд╣реИрдВ, рдпрд╣ рдЬрд╛рдВрдЪ рдХреЗ рд▓рд╛рдпрдХ рд╣реИ)
  • рдореЙрдбрд▓ / рдирд┐рдХрд╛рдп-рд╡рд░реНрдЧ рдЬрд┐рдирдХрд╛ рдЙрдкрдпреЛрдЧ рдХреНрд░рдорд╛рдВрдХрди, рдорд╛рдирдЪрд┐рддреНрд░рдг рдореЗрдВ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рд╕рднреА рд╡рд░реНрдЧреЛрдВ рдЬрд┐рдирдХреЗ рдХреНрд╖реЗрддреНрд░ рдХреЗ рдирд╛рдо (рдХрднреА-рдХрднреА рд╕реНрд╡рдпрдВ рдХрдХреНрд╖рд╛рдПрдВ) рдХреЛ рд░рдЦрдирд╛ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╣реЛрддрд╛ рд╣реИ (Gson, RealmIO, рдЖрджрд┐)
  • рдЬреЗрдПрдирдЖрдИ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рджреЗрд╢реА рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЙрд▓

рдкрд░реАрдХреНрд╖рдг


рдпрджрд┐ рдХреЛрдИ рдХреНрд▓рд╛рд╕ / рд╡рд┐рдзрд┐ рдХреЗрд╡рд▓ рдкрд░реАрдХреНрд╖рдгреЛрдВ рдореЗрдВ рдФрд░ рдХрд╣реАрдВ рдФрд░ рдЙрдкрдпреЛрдЧ рдХреА рдЬрд╛рддреА рд╣реИ, рддреЛ Proguard рдЗрд╕ рдХреЛрдб рдХреЛ рд╣рдЯрд╛ рджреЗрдЧрд╛ред рдпрд╣ рдПрдХ рд╕рд╛рдорд╛рдиреНрдп рд╕реНрдерд┐рддрд┐ рд╣реИ рдпрджрд┐ рдЖрдкрдХреЗ рдкрд╛рд╕ рдЯреАрдбреАрдбреА :) рд╣реИ, рддреЛ рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рдореЗрд░реЗ рдкрд╛рд╕ рдПрдХ рдЕрд▓рдЧ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рд╣реИ, рдЬрд╣рд╛рдВ рдореИрдВ рдЙрди рдХрдХреНрд╖рд╛рдУрдВ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реВрдВ рдЬреЛ рдЕрднреА рддрдХ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдореЗрдВ рдПрдХреАрдХреГрдд рдирд╣реАрдВ рд╣реИрдВ, рдХрд╣реАрдВ рднреА рдЙрдкрдпреЛрдЧ рдирд╣реАрдВ рдХрд┐рдП рдЬрд╛рддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЬрд┐рдиреНрд╣реЗрдВ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реИред


рдПрдВрдбреНрд░реЙрдЗрдб рдЧреНрд░реИрдбрд▓ рдкреНрд▓рдЧрд┐рди рдореЗрдВ, testProguardFiles рдирд┐рд░реНрджреЗрд╢реЛрдВ рдХреЗ рдЕрд▓рд╛рд╡рд╛, рдЕрднреА рднреА testProguardFiles ред рдЬрдм рдЖрдк рдЗрдВрд╕реНрдЯреНрд░реВрдореЗрдВрдЯреЗрд╢рди рдЯреЗрд╕реНрдЯ рдЪрд▓рд╛рддреЗ рд╣реИрдВ рддреЛ рдЖрдкрдХреЗ рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЙрддреНрдкрдиреНрди рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдкрд░реАрдХреНрд╖рдг рдПрдкреНрд▓рд┐рдХреЗрд╢рди рдкрд░ рд▓рд╛рдЧреВ рд╣реЛрдиреЗ рд╡рд╛рд▓реЗ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдХреЛ рдирд┐рд░реНрджрд┐рд╖реНрдЯ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЗрд╕ рдирд┐рд░реНрджреЗрд╢ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рд╣реЛрддреА рд╣реИред рдЖрдорддреМрд░ рдкрд░ рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдкреАрдХреЗ рдлрд╛рдЗрд▓ рдореЗрдВ рджреЛрдиреЛрдВ рдореЗрдВ рдПрдХ рд╣реА рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝реЗрд╢рди / рдСрдмреНрд╕рдлреИрдХреНрд╢рди рдХреЛ рдкреНрд░рд╛рдкреНрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рдЙрдирдХреЗ рдмреАрдЪ рдХреЛрдИ рдбрд┐рд╕рдЗрдВрдХ рди рд╣реЛред рд▓рд┐рдВрдХ ред


рдПрдкреАрдХреЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ


рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рдЗрддрдирд╛ рдмрдврд╝рд┐рдпрд╛ рдЯреВрд▓ рд╣реИред рдЖрдк рдЗрд╕реЗ рдлрд╛рдЗрдВрдб рдПрдХреНрд╢рди -> рдПрдирд╛рд▓рд╛рдЗрдЬ рдПрдкреАрдХреЗ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдпрд╛ рдПрдВрдбреНрд░реЙрдЗрдб рд╕реНрдЯреВрдбрд┐рдпреЛ рдореЗрдВ рд╣реА рдПрдкреАрдХреЗ рдлрд╛рдЗрд▓ рдЦреЛрд▓рдХрд░ рдЦреЛрд▓ рд╕рдХрддреЗ рд╣реИрдВред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдмрд╣реБрдд рдЙрдкрдпреЛрдЧреА рдЬрд╛рдирдХрд╛рд░реА рджрд┐рдЦрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЕрдм рд╣рдо рдХреЛрдб рдореЗрдВ рд░реБрдЪрд┐ рд░рдЦрддреЗ рд╣реИрдВред рдпрд╣ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рдЖрдЦрд┐рд░рдХрд╛рд░ рдПрдкреАрдХреЗ рдлрд╝рд╛рдЗрд▓ рдореЗрдВ рдХреНрдпрд╛ рдкреИрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛, рдЖрдкрдХреЛ classes.dex рдлрд╝рд╛рдЗрд▓ рдХрд╛ рдЪрдпрди рдХрд░рдирд╛ рд╣реЛрдЧрд╛



рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ, рдЖрдкрдХреЛ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдкрд░рд┐рдгрд╛рдореА рдХреЛрдб рджрд┐рдЦрд╛рдпрд╛ рдЬрд╛рдПрдЧрд╛ рдЬреЛ рд╕рд┐рдХреБрдбрд╝рдиреЗ рдФрд░ рдЕрдиреБрдХреВрд▓рди рдХреЗ рдЪрд░рдгреЛрдВ рдХреЛ рдкрд╛рд░ рдХрд░ рдЧрдпрд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдЖрдк рд▓реЛрдб рдкреНрд░реВрдлрд╝ рдореИрдкрд┐рдВрдЧ ... рдмрдЯрди рдкрд░ рдХреНрд▓рд┐рдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЬреЛ рд╣рдЯрд╛рдП рдЧрдП рдХреЛрдб рдХреЛ рджреЗрдЦрдиреЗ рдХреЗ рд▓рд┐рдП seeds.txt рдФрд░ usage.txt рдЬреЛрдбрд╝реЗрдВред



рдпрджрд┐ рдХрд┐рд╕реА рдХрд╛рд░рдг рд╕реЗ рдЧрд╛рд░реНрдб рдХреЛ рдЖрдкрдХреЗ рджреНрд╡рд╛рд░рд╛ рдЖрд╡рд╢реНрдпрдХ рдХреЛрдб рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ, рддреЛ рдЙрд╕реЗ рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдореЗрдВ рдЦреЛрдЬреЗрдВ рдФрд░ рдЖрд░рдПрдордмреА рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЬрдирд░реЗрдЯ рдкреНрд░реЛрд╕рд┐рдЬ рдХреАрдк рд░реВрд▓ рдЪреБрдиреЗрдВред рд╡рд┐рд╢реНрд▓реЗрд╖рдХ рдирд┐рдпрдореЛрдВ рдХреЗ рд▓рд┐рдП рдХрдИ рд╡рд┐рдХрд▓реНрдкреЛрдВ рдХрд╛ рдПрдХ рд╡рд┐рдХрд▓реНрдк рдЙрддреНрдкрдиреНрди рдХрд░реЗрдЧрд╛, рд╕рдмрд╕реЗ рд╕рд╛рдорд╛рдиреНрдп рд╕реЗ рд╕рдмрд╕реЗ рд╡рд┐рд╢рд┐рд╖реНрдЯ рддрдХ, рдЙрдирдореЗрдВ рд╕реЗ рдПрдХ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВред




рдкреБрд╕реНрддрдХрд╛рд▓рдп рд▓реЗрдЦрдХреЛрдВ рдХреЗ рд▓рд┐рдП


рдпрджрд┐ рдЖрдк рдПрдХ рдПрдВрдбреНрд░реЙрдЗрдб рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдмрдирд╛ рд░рд╣реЗ рд╣реИрдВ, рддреЛ рдЖрдк рдЕрдкрдиреЗ рдХреНрд▓рд╛рдЗрдВрдЯ рдХреЗ рд▓рд┐рдП рдПрдХ рдкреНрд░реЙрдкрд░ рдХреЙрдиреНрдлрд┐рдЧрд░ рдЬреЛрдбрд╝ рд╕рдХрддреЗ рд╣реИрдВ:


 buildTypes { release { consumerProguardFiles 'proguard-rules.pro' } } 

рдореЗрд░реА рд░рд╛рдп рдореЗрдВ, рдЕрдкрдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЛ рдЙрддреНрд╕рд╛рд╣рдкреВрд░реНрд╡рдХ рдЕрдиреБрдХреВрд▓рд┐рдд рдФрд░ рдмрд╛рдзрд┐рдд рдирд╣реАрдВ рдХрд░рдирд╛, рдмрд▓реНрдХрд┐ рдЕрдкрдиреЗ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдпрд╣ рдЕрд╡рд╕рд░ рдкреНрд░рджрд╛рди рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИред рдПрдХ рдЕрдЪреНрдЫрд╛ рд╕реНрд╡рд░ рдпрд╣ рд╣реИ рдХрд┐ рдЧреНрд░рд╛рд╣рдХреЛрдВ рдХреЛ рдЬреЛрдбрдиреЗ рдХреЗ рд▓рд┐рдП рдЕрднреА рднреА рдЬреЛрдбрд╝рдирд╛ рд╣реЛрдЧрд╛ рдХрд┐ рдХреНрдпрд╛ рдЙрдиреНрд╣реЗрдВ рдкреНрд░реЛрдЧрд╛рд░реНрдб рд╢рд╛рдорд┐рд▓ рдХрд░рдирд╛ рд╣реИред рд╣рд╛рд▓рд╛рдБрдХрд┐, рдпрджрд┐ рдЖрдк рдЕрднреА рднреА рд╕реБрд░рдХреНрд╖рд╛ рдЬреЛрдбрд╝рдирд╛ рдЪрд╛рд╣рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рд╕реНрдкрд╖реНрдЯ рд╣реИ рдХрд┐ рдЖрдкрдХреЛ рдЕрдкрдиреЗ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдХреЗ рд╕рдВрдкреВрд░реНрдг рдкреБрд▓реА рдПрдкреАрдЖрдИ рдХреЛ рдкреНрд░реЛрдЯреЗрдХреНрдЯрд░ рд╕реЗ рдмрдЪрд╛рдиреЗ рдХреА рдЬрд░реВрд░рдд рд╣реИ, рдЬрд┐рд╕рдореЗрдВ рд╡рд┐рд╡рд░рдгрдХрд░реНрддрд╛ рдФрд░ рд╣рд╕реНрддрд╛рдХреНрд╖рд░ рд╢рд╛рдорд┐рд▓ рд╣реИрдВред


рдЖрд░ 8, рдбреЗрдХреНрд╕рдЧрд╛рд░реНрдб рдФрд░ рд░реЗрдбреЗрдХреНрд╕


R8, Google рдХрд╛ рдирдпрд╛ рдЯреВрд▓ рд╣реИ рдЬреЛ рд╡рд░реНрддрдорд╛рди рдкреНрд░реВрдлрд╝ рдХреЛ рдмрджрд▓рдиреЗ рдХреЗ рд▓рд┐рдП рд╣реИред рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░реЗрдВ, рдЖрдк рдЬреЛ рдХреБрдЫ рднреА рд▓реЗрдЦ рдореЗрдВ рдкрдврд╝рддреЗ рд╣реИрдВ, рдЙрд╕реЗ рднреВрд▓рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рди рдХрд░реЗрдВ, рдмрд╕ рдЗрд╕реЗ рдирдП рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХреА рддрд░рд╣ рдорд╛рдиреЗрдВред Google рд╕рдВрдкреВрд░реНрдг рд╕рд╛рд░реНрд╡рдЬрдирд┐рдХ рдПрдк рдХреЛ рд░рдЦрдиреЗ рдХрд╛ рд╡рд╛рджрд╛ рдХрд░рддрд╛ рд╣реИ, рддрд╛рдХрд┐ рд╕рднреА рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдкрд╣рд▓реЗ рдХреА рддрд░рд╣ рдХрд╛рдо рдХрд░реЗрдВред рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдЕрднреА рднреА рдмреАрдЯрд╛ рдореЗрдВ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрдк рдЗрд╕реЗ рд╕реНрд╡рдпрдВ рдЖрдЬрд╝рдорд╛ рд╕рдХрддреЗ рд╣реИрдВред


рдбреЗрдХреНрд╕рдЧрд╛рд░реНрдб рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХреЗ рдбреЗрд╡рд▓рдкрд░реНрд╕ рд╕реЗ рдПрдХ рднреБрдЧрддрд╛рди рдЙрдкрдпреЛрдЧрд┐рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдПрдХ рд╕рд╛рде рдпрд╛ рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХреЗ рдмрдЬрд╛рдп рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИред рдпрд╣ рддрд░реНрдХ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдбреЗрдХреНрд╕рдЧрд╛рд░реНрдб рд╡рд╣ рд╕рдм рдХреБрдЫ рдХрд░ рд╕рдХрддрд╛ рд╣реИ рдЬреЛ рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХрд░ рд╕рдХрддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдмреЗрд╣рддрд░ред рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ, рдореЗрд░реЗ рдкрд╛рд╕ рдЗрд╕реЗ рдЖрдЬрд╝рдорд╛рдиреЗ рдХрд╛ рдореМрдХрд╛ рдирд╣реАрдВ рдерд╛, рдЕрдЧрд░ рдХрд┐рд╕реА рдХреЗ рдкрд╛рд╕ рдЕрдиреБрднрд╡ рд╣реИ, рддреЛ рдХреГрдкрдпрд╛ рд╕рд╛рдЭрд╛ рдХрд░реЗрдВред


Redex рдлреЗрд╕рдмреБрдХ рд╕реЗ рдПрдХ рдФрд░ рдбреЗрдХреНрд╕ рдСрдкреНрдЯрд┐рдорд╛рдЗрдЬрд╝рд░ рд╣реИред рдпрд╣ рдмрддрд╛рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХрд┐ рдЗрд╕рдХреЗ рд╕рд╛рде рдЖрдк рдЙрддреНрдкрд╛рджрдХрддрд╛ рдореЗрдВ 25% рддрдХ рдХреА рд╡реГрджреНрдзрд┐ рд╣рд╛рд╕рд┐рд▓ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдкреНрд░реЛрдЧрд╛рд░реНрдб рджреНрд╡рд╛рд░рд╛ рдкрд╣рд▓реЗ рд╕реЗ рд╕рдВрд╕рд╛рдзрд┐рдд рдХреЛрдб рдореЗрдВ рдЯреВрд▓ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдХреЗ рдЖрд╡реЗрджрди рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред


рдПрдХ рдирд┐рд╖реНрдХрд░реНрд╖ рдХреЗ рдмрдЬрд╛рдп


Proguard рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рд╕реЗ рдбрд░реЛ рдордд, рдЖрд▓рд╕реА рдордд рдмрдиреЛ рдФрд░ рдХреБрдЫ рд╕рдордп рдмрд┐рддрд╛рдУред рдпрд╣ рдЕрдкрдиреЗ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛рдУрдВ рдХреА рд╡рдлрд╛рджрд╛рд░реА рдХреЛ рдЬреЛрдбрд╝рдиреЗ рдХреА рддреБрд▓рдирд╛ рдореЗрдВ, рдЗрд╕рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░реЗрдЧрд╛, рдХрд╛рдо рдХреА рдЧрддрд┐ рдмрдврд╝рд╛рдПрдЧрд╛ред рдЙрд╕реА рд╕рдордп, рдкреНрд░рднрд╛рд╡реА рдкреНрд░реЛрдЧрд╛рд░реНрдб рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░реЗрдВ, "рдХрд╛рд▓реАрди" рдирд┐рдпрдо рди рд▓рд┐рдЦреЗрдВ, рдЕрдиреНрдпрдерд╛ рдПрдХ рдирд╛рд░рд╛рдЬ рдЬреЗрдХ рд╡реНрд╣рд╛рд░реНрдЯрди рдЖрдкрдХреЗ рдкрд╛рд╕ рдЖрдПрдЧрд╛ рдФрд░ рдЖрдкрдХреЛ рдбрд╛рдВрдЯреЗрдЧрд╛ред



рд╕рд╛рдзрди


рдкреНрд░реВрдлрд╝ рд╡реЗрдмрд╕рд╛рдЗрдЯ ред рдбреЗрдХреНрд╕рдЧрд╛рд░реНрдб рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рднреА рдЬрд╛рдирдХрд╛рд░реА рд╣реИред
рд╡рд┐рднрд┐рдиреНрди рдЙрджрд╛рд╣рд░рдг рдирд┐рдпрдо
R8
рдХреИрд╕реЗ DroidCon рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рддрд╛ рд╣реИ рдХреА рдПрдХ рдкреНрд░рд╕реНрддреБрддрд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ
рдкреНрд░рднрд╛рд╡реА ProGuard рдЫреЛрдЯреЗ рдЕрдиреБрдкреНрд░рдпреЛрдЧреЛрдВ (Google I / O '18) рдХреА рдкреНрд░рд╕реНрддреБрддрд┐ рд░рд┐рдХреЙрд░реНрдбрд┐рдВрдЧ рдХреЗ рд▓рд┐рдП рдирд┐рдпрдо рд░рдЦрддрд╛ рд╣реИ
рдПрдВрдбреНрд░реЙрдЗрдб рдХреЗ рд▓рд┐рдП рдЧрд╛рд░реНрдб рдХреЛ рд╕рдХреНрд╖рдо рдХрд░рдиреЗ рдФрд░ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░ рдХрд░рдиреЗ рдХреЗ рдирд┐рд░реНрджреЗрд╢
рд╡рд┐рдХреА рдкреЗрдЬ
Redex

Source: https://habr.com/ru/post/hi415499/


All Articles