# Copyright 2022 The Chromium Authors # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # Remove Log.d(), Log.v(), and corresponding isLoggable() calls. # Log.DEBUG = 3, Log.VERBOSE = 2. # https://stackoverflow.com/questions/73876633/what-does-the-r8-maximumremovedandroidloglevel-option -maximumremovedandroidloglevel 3 # Makes try-with-resources less inefficient. Saved 3.8kb when added. -assumenosideeffects class java.lang.Throwable { void addSuppressed(...); } # Remove all logging calls via JDK Loggers. They are generally from # unused parts of third-party libraries. -assumenosideeffects class java.util.logging.Logger { void finest(...); void finer(...); void fine(...); void info(...); void warning(...); void severe(...); void throwing(...); void log(...); void logp(...); static java.util.logging.Logger getLogger(...) return _NONNULL_; boolean isLoggable(...) return false; } # Remove accesses to Level. that go unused. -assumenosideeffects class java.util.logging.Level { ; # Flogger uses Level objects, so do not set a return value for intValue(). int intValue(); } # Remove fields of type Logger. -assumenosideeffects class * { java.util.logging.Logger * return _NONNULL_; }