Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <p><a href="http://proguard.sourceforge.net/index.html#/FAQ.html" rel="nofollow">ProGuard</a> (which the Android SDK for example ships with to reduce code size), can do all kinds of manipulation to shrink JAR files:</p> <ul> <li>Evaluate constant expressions.</li> <li>Remove unnecessary field accesses and method calls.</li> <li>Remove unnecessary branches.</li> <li>Remove unnecessary comparisons and instanceof tests.</li> <li>Remove unused code blocks.</li> <li>Merge identical code blocks. </li> <li>Reduce variable allocation.</li> <li>Remove write-only fields and unused method parameters.</li> <li>Inline constant fields, method parameters, and return values.</li> <li>Inline methods that are short or only called once.</li> <li>Simplify tail recursion calls.</li> <li>Merge classes and interfaces.</li> <li>Make methods private, static, and final when possible.</li> <li>Make classes static and final when possible.</li> <li>Replace interfaces that have single implementations.</li> <li>Perform over 200 peephole optimizations, like replacing ...*2 by ...&lt;&lt;1.</li> <li>Optionally remove logging code.</li> </ul> <p>They do not mention removing debug info in that list, but I guess they can also do that.</p> <p><strong>Update:</strong> Yes, indeed:</p> <blockquote> <p>By default, compiled bytecode still contains a lot of debugging information: source file names, line numbers, field names, method names, argument names, variable names, etc. This information makes it straightforward to decompile the bytecode and reverse-engineer entire programs. Sometimes, this is not desirable. Obfuscators such as ProGuard can remove the debugging information and replace all names by meaningless character sequences, making it much harder to reverse-engineer the code. It further compacts the code as a bonus. The program remains functionally equivalent, except for the class names, method names, and line numbers given in exception stack traces. </p> </blockquote>
    singulars
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. VO
      singulars
      1. This table or related slice is empty.
    2. VO
      singulars
      1. This table or related slice is empty.
    3. VO
      singulars
      1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload