| # Copyright 2016 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| |
| # Contains flags that we'd like all Chromium .apks to use. |
| |
| # Not needed for Android and saves a bit of processing time. |
| -dontpreverify |
| |
| # Keep line number information, useful for stack traces. |
| -keepattributes SourceFile,LineNumberTable |
| |
| # Keep all CREATOR fields within Parcelable that are kept. |
| -keepclassmembers class * implements android.os.Parcelable { |
| public static *** CREATOR; |
| } |
| |
| # Don't obfuscate Parcelables as they might be marshalled outside Chrome. |
| # If we annotated all Parcelables that get put into Bundles other than |
| # for saveInstanceState (e.g. PendingIntents), then we could actually keep the |
| # names of just those ones. For now, we'll just keep them all. |
| -keepnames class * implements android.os.Parcelable |
| |
| # Keep all enum values and valueOf methods. See |
| # http://proguard.sourceforge.net/index.html#manual/examples.html |
| # for the reason for this. Also, see http://crbug.com/248037. |
| -keepclassmembers enum * { |
| public static **[] values(); |
| } |
| |
| # Keep classes implementing ParameterProvider -- these will be instantiated |
| # via reflection. |
| -keep class * implements org.chromium.base.test.params.ParameterProvider |
| |
| # Allows Proguard freedom in removing these log related calls. We ask for debug |
| # and verbose logs to be stripped out in base.Log, so we are just ensuring we |
| # get rid of all other debug/verbose logs. |
| -assumenosideeffects class android.util.Log { |
| static *** d(...); |
| static *** v(...); |
| static *** isLoggable(...); |
| } |
| |
| # The following chart was created on July 20, 2016, to decide on 3 optimization |
| # passes for Chrome. |
| # optimization passes | time | .dex size | dirty memory per process |
| # ----------------------------------------------------------------- |
| # 1 | 0:48 | 5805676 | 488972 |
| # 2 | 1:07 | 5777376 | 487092 |
| # 3 | 1:24 | 5772192 | 486596 |
| # 4 | 1:42 | 5771124 | 486484 |
| # 5 | 1:56 | 5770504 | 486432 |
| -optimizationpasses 3 |
| |
| # Horizontal class merging marginally increases dex size (as of Mar 2018). |
| -optimizations !class/merging/horizontal |
| |
| # Allowing Proguard to change modifiers. This change shrinks the .dex size by |
| # ~1%, and reduces the method count by ~4%. |
| -allowaccessmodification |
| |
| # The support library contains references to newer platform versions. |
| # Don't warn about those in case this app is linking against an older |
| # platform version. We know about them, and they are safe. |
| -dontwarn android.support.** |