×
Copy
Open
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
The open source optimizer for Java bytecode @soulesidibe Proguard
Slide 2
Slide 2 text
• Proguard, quèsaco? • Proguard on Android • Why should we use Proguard? Agenda
Slide 3
Slide 3 text
Proguard, quèsaco?
Slide 4
Slide 4 text
Proguard • By Guard Square • First release 2002 • Written in… java • For Java based app(Java *E, Android, etc)
Slide 5
Slide 5 text
Proguard • Last version !-> 6.0 • ./gradlew buildEnvironment | grep proguard • Source code is on sourceforge.
Slide 6
Slide 6 text
Proguard. Quèsaco? Input Jars Output Jars Shrink Optimize Obfuscate Preverify
Slide 7
Slide 7 text
Proguard. Quèsaco? Input Jars Output Jars Shrink Optimize Obfuscate Preverify • Looks at all possible entry points • Calculates the map of reachable code • Remove dead code
Slide 8
Slide 8 text
Proguard. Quèsaco? Input Jars Output Jars Shrink Optimize Obfuscate Preverify
Slide 9
Slide 9 text
Proguard. Quèsaco? Input Jars Output Jars Shrink Optimize Obfuscate Preverify proguard.optimize.Optimizer.java
Slide 10
Slide 10 text
Proguard. Quèsaco? Input Jars Output Jars Shrink Optimize Obfuscate Preverify • Renames classes and members that are not entry points
Slide 11
Slide 11 text
Proguard. Quèsaco? Input Jars Output Jars Shrink Optimize Obfuscate Preverify • I don’t know ☹ • Generate mapping files
Slide 12
Slide 12 text
Proguard on Android
Slide 13
Slide 13 text
Proguard on Android build.gradle
Slide 14
Slide 14 text
Proguard on Android • dump.txt • mapping.txt • seeds.txt • usage.txt
Slide 15
Slide 15 text
Proguard errors
Slide 16
Slide 16 text
Proguard errors -dontwarn com.google.errorprone.annotations.* -dontwarn org.codehaus.mojo.animal_sniffer.*
Slide 17
Slide 17 text
Proguard errors • ClassNotFoundException • MethodNotFoundException
Slide 18
Slide 18 text
Proguard errors • ClassNotFoundException • MethodNotFoundException
Slide 19
Slide 19 text
Proguard on Android Démo
Slide 20
Slide 20 text
Why should we use Proguard?
Slide 21
Slide 21 text
Why should we use Proguard? • More compact code
Slide 22
Slide 22 text
Why should we use Proguard? • More compact code • The obfuscation
Slide 23
Slide 23 text
Why should we use Proguard? • More compact code • The obfuscation • Smaller app
Slide 24
Slide 24 text
Why should we use Proguard? • More compact code • The obfuscation • Smaller app • Avoid 64k methods limit
Slide 25
Slide 25 text
That’s it! @soulesidibe